Initial commit.
This commit is contained in:
commit
824f111ec5
9
.gitignore
vendored
Normal file
9
.gitignore
vendored
Normal file
|
@ -0,0 +1,9 @@
|
|||
.DS_Store
|
||||
*.bak
|
||||
*.swp
|
||||
|
||||
*.pdf
|
||||
*.zip
|
||||
|
||||
KiCad/*.kicad_pcb-bak
|
||||
KiCad/*.svg
|
4
.gitmodules
vendored
Normal file
4
.gitmodules
vendored
Normal file
|
@ -0,0 +1,4 @@
|
|||
[submodule "qmk_firmware"]
|
||||
path = qmk_firmware
|
||||
url = https://github.com/tomekwojcik/qmk_firmware.git
|
||||
branch = bthlabs_geekpad
|
BIN
Case 3D Models/GeekPad - Leg.stl
Normal file
BIN
Case 3D Models/GeekPad - Leg.stl
Normal file
Binary file not shown.
BIN
Case 3D Models/GeekPad - Plate.stl
Normal file
BIN
Case 3D Models/GeekPad - Plate.stl
Normal file
Binary file not shown.
195
KiCad/GeekPad.cmp
Normal file
195
KiCad/GeekPad.cmp
Normal file
|
@ -0,0 +1,195 @@
|
|||
Cmp-Mod V01 Created by PcbNew date = 2018 December 08, Saturday 11:39:52
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = 5C247A81
|
||||
Path =
|
||||
Reference = REF**;
|
||||
ValeurCmp = RESET;
|
||||
IdModule = Button_Switch_THT:Reset;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = 5C081AB8
|
||||
Path =
|
||||
Reference = ProMicro;
|
||||
ValeurCmp = [NoVal];
|
||||
IdModule = promicro:ProMicro;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = 5BF02D03
|
||||
Path =
|
||||
Reference = D8;
|
||||
ValeurCmp = [NoVal];
|
||||
IdModule = Diode_THT:D_5W_P10.16mm_Horizontal;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = 5BF02CE5
|
||||
Path =
|
||||
Reference = D7;
|
||||
ValeurCmp = [NoVal];
|
||||
IdModule = Diode_THT:D_5W_P10.16mm_Horizontal;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = 5BF02CCE
|
||||
Path =
|
||||
Reference = SW8;
|
||||
ValeurCmp = [NoVal];
|
||||
IdModule = Button_Switch_Keyboard:SW_Cherry_MX1A_1.00u_Plate;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = 5BF02CB7
|
||||
Path =
|
||||
Reference = SW7;
|
||||
ValeurCmp = [NoVal];
|
||||
IdModule = Button_Switch_Keyboard:SW_Cherry_MX1A_1.00u_Plate;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = 5BF02C99
|
||||
Path =
|
||||
Reference = D9;
|
||||
ValeurCmp = [NoVal];
|
||||
IdModule = Diode_THT:D_5W_P10.16mm_Horizontal;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = 5BF02C82
|
||||
Path =
|
||||
Reference = SW9;
|
||||
ValeurCmp = [NoVal];
|
||||
IdModule = Button_Switch_Keyboard:SW_Cherry_MX1A_1.00u_Plate;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = 5BF02D03
|
||||
Path =
|
||||
Reference = D5;
|
||||
ValeurCmp = [NoVal];
|
||||
IdModule = Diode_THT:D_5W_P10.16mm_Horizontal;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = 5BF02CE5
|
||||
Path =
|
||||
Reference = D4;
|
||||
ValeurCmp = [NoVal];
|
||||
IdModule = Diode_THT:D_5W_P10.16mm_Horizontal;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = 5BF02CCE
|
||||
Path =
|
||||
Reference = SW5;
|
||||
ValeurCmp = [NoVal];
|
||||
IdModule = Button_Switch_Keyboard:SW_Cherry_MX1A_1.00u_Plate;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = 5BF02CB7
|
||||
Path =
|
||||
Reference = SW4;
|
||||
ValeurCmp = [NoVal];
|
||||
IdModule = Button_Switch_Keyboard:SW_Cherry_MX1A_1.00u_Plate;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = 5BF02C99
|
||||
Path =
|
||||
Reference = D3;
|
||||
ValeurCmp = [NoVal];
|
||||
IdModule = Diode_THT:D_5W_P10.16mm_Horizontal;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = 5BF02C82
|
||||
Path =
|
||||
Reference = SW6;
|
||||
ValeurCmp = [NoVal];
|
||||
IdModule = Button_Switch_Keyboard:SW_Cherry_MX1A_1.00u_Plate;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = 5BF029FF
|
||||
Path =
|
||||
Reference = D3;
|
||||
ValeurCmp = [NoVal];
|
||||
IdModule = Diode_THT:D_5W_P10.16mm_Horizontal;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = 5BF029E8
|
||||
Path =
|
||||
Reference = SW3;
|
||||
ValeurCmp = [NoVal];
|
||||
IdModule = Button_Switch_Keyboard:SW_Cherry_MX1A_1.00u_Plate;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = 5BF029FF
|
||||
Path =
|
||||
Reference = D2;
|
||||
ValeurCmp = [NoVal];
|
||||
IdModule = Diode_THT:D_5W_P10.16mm_Horizontal;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = 5BF029E8
|
||||
Path =
|
||||
Reference = SW2;
|
||||
ValeurCmp = [NoVal];
|
||||
IdModule = Button_Switch_Keyboard:SW_Cherry_MX1A_1.00u_Plate;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = 5BF02667
|
||||
Path =
|
||||
Reference = SW1;
|
||||
ValeurCmp = [NoVal];
|
||||
IdModule = Button_Switch_Keyboard:SW_Cherry_MX1A_1.00u_Plate;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = 5BF028A1
|
||||
Path =
|
||||
Reference = D1;
|
||||
ValeurCmp = [NoVal];
|
||||
IdModule = Diode_THT:D_5W_P10.16mm_Horizontal;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = 5BFC8152
|
||||
Path =
|
||||
Reference = [NoRef];
|
||||
ValeurCmp = [NoVal];
|
||||
IdModule = MountingHole:MountingHole_3.2mm_M3;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = 5BFC81A4
|
||||
Path =
|
||||
Reference = [NoRef];
|
||||
ValeurCmp = [NoVal];
|
||||
IdModule = MountingHole:MountingHole_3.2mm_M3;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = 5BFC8248
|
||||
Path =
|
||||
Reference = [NoRef];
|
||||
ValeurCmp = [NoVal];
|
||||
IdModule = MountingHole:MountingHole_3.2mm_M3;
|
||||
EndCmp
|
||||
|
||||
BeginCmp
|
||||
TimeStamp = 5BFC8257
|
||||
Path =
|
||||
Reference = [NoRef];
|
||||
ValeurCmp = [NoVal];
|
||||
IdModule = MountingHole:MountingHole_3.2mm_M3;
|
||||
EndCmp
|
||||
|
||||
EndListe
|
1426
KiCad/GeekPad.kicad_pcb
Normal file
1426
KiCad/GeekPad.kicad_pcb
Normal file
File diff suppressed because it is too large
Load Diff
33
KiCad/GeekPad.pro
Normal file
33
KiCad/GeekPad.pro
Normal file
|
@ -0,0 +1,33 @@
|
|||
update=22/05/2015 07:44:53
|
||||
version=1
|
||||
last_client=kicad
|
||||
[general]
|
||||
version=1
|
||||
RootSch=
|
||||
BoardNm=
|
||||
[pcbnew]
|
||||
version=1
|
||||
LastNetListRead=
|
||||
UseCmpFile=1
|
||||
PadDrill=0.600000000000
|
||||
PadDrillOvalY=0.600000000000
|
||||
PadSizeH=1.500000000000
|
||||
PadSizeV=1.500000000000
|
||||
PcbTextSizeV=1.500000000000
|
||||
PcbTextSizeH=1.500000000000
|
||||
PcbTextThickness=0.300000000000
|
||||
ModuleTextSizeV=1.000000000000
|
||||
ModuleTextSizeH=1.000000000000
|
||||
ModuleTextSizeThickness=0.150000000000
|
||||
SolderMaskClearance=0.000000000000
|
||||
SolderMaskMinWidth=0.000000000000
|
||||
DrawSegmentWidth=0.200000000000
|
||||
BoardOutlineThickness=0.100000000000
|
||||
ModuleOutlineThickness=0.150000000000
|
||||
[cvpcb]
|
||||
version=1
|
||||
NetIExt=net
|
||||
[eeschema]
|
||||
version=1
|
||||
LibDir=
|
||||
[eeschema/libraries]
|
4
KiCad/GeekPad.sch
Normal file
4
KiCad/GeekPad.sch
Normal file
|
@ -0,0 +1,4 @@
|
|||
EESchema Schematic File Version 2
|
||||
EELAYER 25 0
|
||||
EELAYER END
|
||||
$EndSCHEMATC
|
46
KiCad/ProMicroV1.kicad_mod
Normal file
46
KiCad/ProMicroV1.kicad_mod
Normal file
|
@ -0,0 +1,46 @@
|
|||
(module ProMicroV1 (layer F.Cu) (tedit 5BEFE7B1)
|
||||
(descr "Pro Micro footprint")
|
||||
(tags "promicro ProMicro")
|
||||
(fp_text reference ProMicro (at 0 -10.16) (layer F.SilkS) hide
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(fp_text value "" (at 0 10.16) (layer F.Fab)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(fp_line (start 15.24 -8.89) (end 15.24 8.89) (layer F.SilkS) (width 0.15))
|
||||
(fp_line (start -15.24 -8.89) (end 15.24 -8.89) (layer F.SilkS) (width 0.15))
|
||||
(fp_line (start -15.24 -3.81) (end -15.24 -8.89) (layer F.SilkS) (width 0.15))
|
||||
(fp_line (start -15.24 8.89) (end -15.24 3.81) (layer F.SilkS) (width 0.15))
|
||||
(fp_line (start -15.24 8.89) (end 15.24 8.89) (layer F.SilkS) (width 0.15))
|
||||
(fp_line (start -15.24 -8.89) (end 15.24 -8.89) (layer B.SilkS) (width 0.15))
|
||||
(fp_line (start -15.24 -3.81) (end -15.24 -8.89) (layer B.SilkS) (width 0.15))
|
||||
(fp_line (start -15.24 8.89) (end -15.24 3.81) (layer B.SilkS) (width 0.15))
|
||||
(fp_line (start 15.24 8.89) (end -15.24 8.89) (layer B.SilkS) (width 0.15))
|
||||
(fp_line (start 15.24 -8.89) (end 15.24 8.89) (layer B.SilkS) (width 0.15))
|
||||
(fp_line (start -15.24 3.81) (end -15.24 -3.81) (layer F.SilkS) (width 0.15))
|
||||
(fp_line (start -15.24 -3.81) (end -15.24 3.81) (layer B.SilkS) (width 0.15))
|
||||
(pad 24 thru_hole circle (at -13.97 -7.62) (size 1.6 1.6) (drill 1.1) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 23 thru_hole circle (at -11.43 -7.62) (size 1.6 1.6) (drill 1.1) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 22 thru_hole circle (at -8.89 -7.62) (size 1.6 1.6) (drill 1.1) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 21 thru_hole circle (at -6.35 -7.62) (size 1.6 1.6) (drill 1.1) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 20 thru_hole circle (at -3.81 -7.62) (size 1.6 1.6) (drill 1.1) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 19 thru_hole circle (at -1.27 -7.62) (size 1.6 1.6) (drill 1.1) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 18 thru_hole circle (at 1.27 -7.62) (size 1.6 1.6) (drill 1.1) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 17 thru_hole circle (at 3.81 -7.62) (size 1.6 1.6) (drill 1.1) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 16 thru_hole circle (at 6.35 -7.62) (size 1.6 1.6) (drill 1.1) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 15 thru_hole circle (at 8.89 -7.62) (size 1.6 1.6) (drill 1.1) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 14 thru_hole circle (at 11.43 -7.62) (size 1.6 1.6) (drill 1.1) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 13 thru_hole circle (at 13.97 -7.62) (size 1.6 1.6) (drill 1.1) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 12 thru_hole circle (at 13.97 7.62) (size 1.6 1.6) (drill 1.1) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 11 thru_hole circle (at 11.43 7.62) (size 1.6 1.6) (drill 1.1) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 10 thru_hole circle (at 8.89 7.62) (size 1.6 1.6) (drill 1.1) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 9 thru_hole circle (at 6.35 7.62) (size 1.6 1.6) (drill 1.1) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 8 thru_hole circle (at 3.81 7.62) (size 1.6 1.6) (drill 1.1) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 7 thru_hole circle (at 1.27 7.62) (size 1.6 1.6) (drill 1.1) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 6 thru_hole circle (at -1.27 7.62) (size 1.6 1.6) (drill 1.1) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 5 thru_hole circle (at -3.81 7.62) (size 1.6 1.6) (drill 1.1) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 4 thru_hole circle (at -6.35 7.62) (size 1.6 1.6) (drill 1.1) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 3 thru_hole circle (at -8.89 7.62) (size 1.6 1.6) (drill 1.1) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 2 thru_hole circle (at -11.43 7.62) (size 1.6 1.6) (drill 1.1) (layers *.Cu *.Mask F.SilkS))
|
||||
(pad 1 thru_hole rect (at -13.97 7.62) (size 1.6 1.6) (drill 1.1) (layers *.Cu *.Mask F.SilkS))
|
||||
)
|
29
KiCad/Reset.kicad_mod
Normal file
29
KiCad/Reset.kicad_mod
Normal file
|
@ -0,0 +1,29 @@
|
|||
(module Button_Switch_THT:Reset (layer F.Cu) (tedit 5C0B9E3E)
|
||||
(descr https://www.omron.com/ecb/products/pdf/en-b3f.pdf)
|
||||
(tags "tact sw push 6mm")
|
||||
(fp_text reference REF** (at -2.30632 1.88976 90) (layer F.SilkS)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(fp_text value RESET (at 2.413 2.286 270) (layer F.Fab)
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
)
|
||||
(fp_line (start 1.524 -1.25) (end 1.524 5.75) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start -1.5 5.75) (end -1.5 -1.25) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start -1.25 -1.5) (end 1.2954 -1.4986) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start -1.5 6) (end -1.25 6) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start -1.5 5.75) (end -1.5 6) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start -1.5 -1.5) (end -1.25 -1.5) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start -1.5 -1.25) (end -1.5 -1.5) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start 1.524 -1.5) (end 1.524 -1.25) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start 1.27 -1.5) (end 1.52 -1.5) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start 1.524 6) (end 1.524 5.75) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start 1.27 6) (end 1.52 6) (layer F.CrtYd) (width 0.05))
|
||||
(fp_line (start -1.2446 5.99948) (end 1.26492 5.99948) (layer F.CrtYd) (width 0.05))
|
||||
(pad 1 thru_hole circle (at 0 0 90) (size 2 2) (drill 1.1) (layers *.Cu *.Mask))
|
||||
(pad 2 thru_hole circle (at 0 4.5 90) (size 2 2) (drill 1.1) (layers *.Cu *.Mask))
|
||||
(model ${KISYS3DMOD}/Button_Switch_THT.3dshapes/SW_PUSH_6mm.wrl
|
||||
(at (xyz 0 0 0))
|
||||
(scale (xyz 1 1 1))
|
||||
(rotate (xyz 0 0 0))
|
||||
)
|
||||
)
|
3
KiCad/fp-lib-table
Normal file
3
KiCad/fp-lib-table
Normal file
|
@ -0,0 +1,3 @@
|
|||
(fp_lib_table
|
||||
(lib (name GeekPadV1)(type KiCad)(uri .)(options "")(descr ""))
|
||||
)
|
7
LICENSE
Normal file
7
LICENSE
Normal file
|
@ -0,0 +1,7 @@
|
|||
GeekPad (c) by Tomek Wójcik
|
||||
|
||||
GeekPad is licensed under a
|
||||
Creative Commons Attribution-ShareAlike 4.0 International License.
|
||||
|
||||
You should have received a copy of the license along with this
|
||||
work. If not, see <https://creativecommons.org/licenses/by-sa/4.0/>.
|
17
NOTICE.txt
Normal file
17
NOTICE.txt
Normal file
|
@ -0,0 +1,17 @@
|
|||
GeekPad (c) by Tomek Wójcik
|
||||
|
||||
GeekPad is licensed under a
|
||||
Creative Commons Attribution-ShareAlike 4.0 International License.
|
||||
|
||||
You should have received a copy of the license along with this
|
||||
work. If not, see <https://creativecommons.org/licenses/by-sa/4.0/>.
|
||||
|
||||
---
|
||||
|
||||
GeekPad includes the follwoing third party software and resources
|
||||
|
||||
Pro Micro library for KiCAD
|
||||
Copyright (c) 2017 Biacco42
|
||||
Licensed under terms of MIT license
|
||||
https://opensource.org/licenses/mit-license.php
|
||||
With modifications
|
80
README.md
Normal file
80
README.md
Normal file
|
@ -0,0 +1,80 @@
|
|||
# GeekPad
|
||||
|
||||
A 3x3 custom mechanical macro pad.
|
||||
|
||||
![GeekPad](geekpad.jpg)
|
||||
|
||||
## Building your own
|
||||
|
||||
To build your own GeekPad, you'll need the following:
|
||||
|
||||
1. A 3D printer with at least 75x75x20mm of available workspace,
|
||||
1. Means of making the PCB,
|
||||
1. A computer capable of building the firmware and uploading it to the
|
||||
controller,
|
||||
1. A [SparkFun Pro Micro 5V/16Mhz] controller board (or a compatible clone),
|
||||
1. 9 plate mounted Cherry MX compatible switches of your choosing,
|
||||
1. 9 1N148 diodes,
|
||||
1. A two-pin tactile switch,
|
||||
1. 4 10mm standoffs,
|
||||
1. 8 M3 screws,
|
||||
1. 4 rubber or plastic feet,
|
||||
1. A soldering iron,
|
||||
1. Tinkerer's spirit ;).
|
||||
|
||||
This repository contains the *PCB Project*, *Case 3D Models* and the customized
|
||||
*QMK Firmware Code*.
|
||||
|
||||
### PCB Project
|
||||
|
||||
The *KiCad* directory contains the KiCad project with PCB source. You can use
|
||||
it to make or order a PCB.
|
||||
|
||||
The PCB project was created using KiCad v5.
|
||||
|
||||
### Case 3D Models
|
||||
|
||||
The *Case 3D Models* directory contains STL files for the case. You can use
|
||||
them to 3D print case parts.
|
||||
|
||||
The *GeekPad - Leg* file contains model of a "leg" - the side part. You'll need
|
||||
two of them. The *GeekPad - Plate* files contains model of the switch plate.
|
||||
|
||||
### QMK Firmware Code
|
||||
|
||||
The *qmk_firmware* directory contains source code for GeekPad's firmware. It's
|
||||
based on [QMK](https://qmk.fm/). Since the directory is actually a submodule,
|
||||
you'll need to fetch it prior to working with it.
|
||||
|
||||
If you're using the command line git client on a compatible OS, use the
|
||||
following commands to fetch the code:
|
||||
|
||||
```
|
||||
$ git submodule init
|
||||
$ git submodule update
|
||||
```
|
||||
|
||||
If you're using other git client, please refer to its docs to learn how to
|
||||
fetch the submodule.
|
||||
|
||||
GeekPad specific code lives in the `keyboards/bthlabs/geekpad` directory.
|
||||
|
||||
Please refer to [QMK docs](https://docs.qmk.fm/#/) for information on how to
|
||||
set up QMK, customize the keymap and build the firmware.
|
||||
|
||||
## Author
|
||||
|
||||
GeekPad is developed by [Tomek Wójcik](https://www.bthlabs.pl/).
|
||||
|
||||
## License
|
||||
|
||||
GeekPad is licensed under terms of Creative Commons Attribution-ShareAlike 4.0
|
||||
International (CC BY-SA 4.0) License.
|
||||
|
||||
GeekPad's QMK code is licensed under terms of GNU GPL v2 License.
|
||||
|
||||
## Credits
|
||||
|
||||
GeekPad includes modified version of
|
||||
[KiCad library of Pro Micro](https://github.com/Biacco42/ProMicroKiCad) by
|
||||
[Biacco24](https://github.com/Biacco42), licensed under terms of MIT Licese.
|
BIN
geekpad.jpg
Normal file
BIN
geekpad.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.9 MiB |
1
qmk_firmware
Submodule
1
qmk_firmware
Submodule
|
@ -0,0 +1 @@
|
|||
Subproject commit 48742539f554ec6219ac68c8abcc2a5185ce5fe7
|
Loading…
Reference in New Issue
Block a user