

Gecko choc
Gecko split keyboard
- Size
- 278.7 × 107.5 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 194
- Nets
- 160
- Pads
- 1,052
- Tracks, vias
- 3,425, 654
- Pours
- 696
- Routed
- Yes
- KiCad
- KiCad 8.0 (file 20240108)
- Created
- 16 Aug 2024
- Updated
- 24 Nov 2024
Overview
Gecko choc is an open-source printed circuit board by DaneEvans, from the DaneEvans/Gecko-keyboard repository on GitHub, published under the CC-BY-4.0 licence. It is a 2-layer board of 278.7 × 107.5 mm with 194 parts on 160 nets, routed with 3,425 tracks and 654 vias.
It is built around the RP2040, W25Q128JVSIQ and TS-1088R-02026, with the 1N4148WT, NCP1117LPST33T3G-MS and RB521S30T1G-DW among its other parts. Its parts include 48 diodes, 44 switches, 32 capacitors, 18 resistors and 8 connectors. It belongs with the keyboards and input boards and the RP2040 boards of this library.
Main components
8RP2040
LQFN-56(7x7)12bit 133MHz 30 LQFN-56(7x7) Microcontrollers (MCU/MPU/SOC) ROHSRaspberry PiMicrocontrollers (MCU/MPU/SOC)W25Q128JVSIQ
SOIC-8-208mil-40℃~+85℃ 100,000 cycles 120ms@(32KB) 128Mbit 133MHz 1uA 2.7V~3.6V 20 Years 3ms Power-on reset、Hardware write protection、Software write protection、Write enable latch、Absolute write protection SPI SOIC-8-208mil NOR FLASH ROHSWinbondNOR FLASHTS-1088R-02026
SMD,4x3mm100,000 cycles 12V 2.6N 2.93mm 2mm 3.9mm 50mA Black Round Button SMD(SMT) Tab SPST Surface Mount,Vertical Without Bracket SMD,4x3mm Tactile Switches ROHSXUNPUTactile Switches1N4148WT
SOD-523-55℃~+150℃ 1.25V@150mA 100V 150mA 150mW 1uA@75V 2A 4ns Independent SOD-523 Switching Diodes ROHShongjiachengSwitching DiodesNCP1117LPST33T3G-MS
SOT-223-20℃~+125℃@(Ta) 1 1.4V@(1A) 12mA 15V 1A 3.235V~3.365V Fixed Positive SOT-223 Voltage Regulators - Linear, Low Drop Out (LDO) Regulators ROHSMSKSEMIVoltage Regulators - Linear, Low Drop Out (LDO) RegulatorsRB521S30T1G-DW
SOD-5231 Independent 1A 200mA 30V 30uA@10V 500mV@200mA SOD-523 Schottky Diodes ROHSDOWOSchottky DiodesTPD4E05U06DQAR
USON-10-40℃~+125℃ 0.5pF 10nA 14V 2.5A@8/20us 40W@8/20us 5.5V 6.5V ESD Four channels IEC 61000-4-2、IEC 61000-4-5、IEC 61000-4-4 Unidirectional USON-10(1x2.5) ESD and Surge Protection (TVS/ESD) ROHSTexas InstrumentsESD Protection DevicesTYPE-C-31-M-13C
SMD-30℃~+80℃ 1 10,000 cycles 16P 20V 5A 6.5mm Female Laminated board Type-C SMD USB Connectors ROHSHRO ElectronicsUSB Connectors
README
README.mdGecko keyboard
Somewhere between the corne, and the sofle.
Adding several small thumbwheels, as full size encoders are too big.
The Gecko uses CRKBD as a base, Add a few extra keys to the bottom row, useful for mute / sleep etc, and find space one or more small wheel encoder.
Parts required
PCBAs
- These can be ordered through pcbway?
Based on the options available / cost, I went with back side only (only the USB is on the front), and missed both the Kailh Hotswap sockets, and the LEDs.
Parts list
Boards
- PCBA's, pair (see above)
- top plate, pair, 1.2mm
- Bottom plate, pair (or alternate case)
PCBA
- 2x USB Sockets (TYPE-C-31-M-13C)
- 2x audio sockets (PJ-398A-5A_PJ-399B-6A)
- 4x Scroll wheel encoders (EC05E) (optional)
- 46x LEDs (SK6812MINI-E) (optional)
- 2x OLED displays (optional)
Tools
- Soldering iron, fine tip, solder etc.
- Screwdriver for the bolts
Assembly
- M2 standoffs (min 8mm? ) x 10?
- M2 flat ended bolts, max length standoff height/2 x10
- 3 wire cable assembly(3.5mm male - 3.5mm male)
Keys
- 46 x Kailh hotswap sockets ()
- 46 x Choc V1 switches (any variety you like)
- 46 x Choc V1 keycaps (all singles is fine, or 2 x 1.5U)
Assembly instructions
Electrics
- Find parts
- Assemble PCBA's
- Bottom side
- install USB-C ports
- install TRS connectors
- install hotswap switch plates
- install Mini-E LED's (optional)
- Top side
- install encoders
- install OLED display
- Bottom side
Mechanics
- Take a top plate and attatch M2 standoffs to it's bottom surface. (I use loctite)
- place the corner switches into the top plate
- add the PCB (care of the pins)
- Add the rest of the switches
- If you plan to use the tenting kit, add standoffs to the bottom of the bottom plate in the additional holes.
- place the bottom plate on the assembly, and tighten the bolts.
Programming
Now test that everything is working
- Recognisable on USB.
- All key presses etc.
- encoders
- LED's
- OLEDs,
Get the QMK firmware from (here) this is the keymap () follow programming directions (here)
Once you know
Known Issues:
-
The encoder cutouts for the horizontal wheels aren't big enough - if you want to use them, you will need to modify the top plate.
-
Always unplug the USB before the 3.5mm connector - the 3.5mm has the potential to short out the board, and fry the mcu.
Troubleshooting
Odds are, any issues will be in the parts you soldered.
If you can't communicate with an MCU to program it, it's likely the USB-C
If the two halves won't communicate, it's the TRS connectors or cable.
The LED's are often very fiddly, and I won't offer any guidance on them, they do not effect the usage of the keyboard, and are a tedious job to get working.
Programming
Flashing
Flashing is simple drag and drop. The tagged release that I currrently use is here On Windows
- Plug the keyboard half in.
- Reset if needed (hardware button, or a key combination)
- It should initialise as a RPi storage device
- Drag the firmware file to it (*.uf2)
- The window will close and the keyboard will reboot with the new firmware.
Configuring Firmware
The firmware uses QMK, My fork is located here Use the keyboard/gecko branch, or a tagged release to base changes on.
To build on Windows
Use QMK WSL
- get the git repo https://github.com/DaneEvans/qmk_firmware
- use the keyboards/gecko branch.
qmk build -kb gecko -km devdev- Navigate to the /Linux/QMK/home/qmk/qmk_firmware directory (Where QMK WSL resides)
- Copy the keyboard_xxx.uf2 file to the keyboard halves.
Parts
194| Qty | Value | Footprint | References |
|---|---|---|---|
| 46 | YS-SK6812MINI-E | kbd:YS-SK6812MINI-E | LED1, LED2, LED10, LED11, LED12, LED13, LED14, LED15, LED16, LED17, LED18, LED19, LED20, LED21, LED22, LED23 +30 |
| 44 | SW_Push | kbd:keyswitch_choc12_hotswap_1u | SW2, SW3, SW10, SW11, SW12, SW13, SW14, SW15, SW16, SW17, SW18, SW19, SW20, SW21, SW22, SW23 +28 |
| 18 | 100n | Capacitor_SMD:C_0402_1005Metric | C3, C4, C7, C9, C10, C12, C13, C14, C15, rC3, rC4, rC10, rC12, rC13, rC14, rC15 +2 |
| 8 | Breakaway Tabs | kbd:Breakaway_Tabs | BT1, BT2, BT3, BT4, rBT1, rBT2, rBT3, rBT4 |
| 8 | EC05E | kbd:rotary_encoder_EC05E | RE1-2, RE1-3, RE2-2, RE2-3, rRE1-2, rRE1-3, rRE2-2, rRE2-3 |
| 6 | 1u | Capacitor_SMD:C_0402_1005Metric | C5, C8, C16, rC5, rC8, rC16 |
| 4 | 10u | Capacitor_SMD:C_0402_1005Metric | C6, C11, rC6, rC11 |
| 4 | 1k | Resistor_SMD:R_0402_1005Metric | R3, R6, rR3, rR6 |
| 4 | 27 | Resistor_SMD:R_0402_1005Metric | R4, R5, rR4, rR5 |
| 4 | 27p | Capacitor_SMD:C_0402_1005Metric | C1, C2, rC1, rC2 |
| 4 | 5.1k | Resistor_SMD:R_0402_1005Metric | R1, R2, rR1, rR2 |
| 4 | EC05E_vert | kbd:rotary_encoder_EC05E_Vert | RE1, RE2, rRE1, rRE2 |
| 4 | LOGO | kbd:gecko-copper_No_mask_small | G***, G***, G***, G*** |
| 4 | TS-1088R-02026 | kbd:TS-1088R-02026 | rSMDSW1, rSMDSW2, SMDSW1, SMDSW2 |
| 2 | 10K | Resistor_SMD:R_0402_1005Metric | R9, rR9 |
| 2 | 10k | Resistor_SMD:R_0402_1005Metric | R7, rR7 |
| 2 | 12MHz 18pF | Crystal:Crystal_SMD_3225-4Pin_3.2x2.5mm | rY1, Y1 |
| 2 | 1N4148WT | Diode_SMD:D_SOD-523 | D1, rD1 |
| 2 | 5.6k | Resistor_SMD:R_0402_1005Metric | R8, rR8 |
| 2 | Conn_01x03 | Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Vertical | J4, rJ4 |
| 2 | Conn_01x04 | kbd:OLED | J3, rJ3 |
| 2 | NCP1117LPST33T3G | Package_TO_SOT_SMD:SOT-223-3_TabPin2 | rU2, U2 |
| 2 | RB521S30T1G | Diode_SMD:D_SOD-523 | rZD1, ZD1 |
| 2 | RP2040 | Package_DFN_QFN:QFN-56-1EP_7x7mm_P0.4mm_EP3.2x3.2mm | rU1, U1 |
| 2 | SW_Push | kbd:keyswitch_choc12_hotswap_1.5u | rSW1, SW1 |
| 2 | SolderJumper_2_Open | Jumper:SolderJumper-2_P1.3mm_Open_RoundedPad1.0x1.5mm | JP2, JP3 |
| 2 | TPD4E05U06DQAR | Package_SON:USON-10_2.5x1.0mm_P0.5mm | rU3, U3 |
| 2 | TRS | kbd:PJ-398A-5A_PJ-399B-6A | J2, rJ2 |
| 2 | TYPE-C-31-M-13C | kbd:TYPE-C-31-M-13C | J1, rJ1 |
| 2 | W25Q128JVSIQ | Package_SO:SOIC-8_5.23x5.23mm_P1.27mm | rU4, U4 |
More from DaneEvans/Gecko-keyboard
1- 2 layers551.5 × 107.5 mm

Similar boards
- 2 layers277.2 × 107.5 mm

- 2 layers277.2 × 107.5 mm

- 2 layers277.2 × 107.5 mm

- 2 layers91 × 55 mm

- 4 layers277.2 × 107.5 mm

Katia
ikajdan/katia
A split keyboard with 6 by 3 column staggered keys and 3 thumb keys, based on the Crkbrd design
230 parts33CERN-OHL-P-2.0 - 2 layers149 × 224 mm

GDEK
GilDev/GDEK
Low-profile, compact, beginner-friendly, assembly-friendly 4×6 with 5-keys thumb cluster ergonomic keyboard with universal keyswitch support, per-key RGB LED, encoder and RP2040 controller. Phew, that’s a lot!
324 parts3CERN-OHL-S-2.0 - 4 layers213.7 × 140.6 mm

MSCKee
Creative-Difficulty/mSCKee
Split Keyboard for Hack Club Outpost with dual light sensors, per-key addressable backlighting, integrated RP2040 MCU
205 parts1 - 2 layers60 × 42 mm

MacroPad TestBoard
RyzenGatto/Ai-HDL-MacroPad
Application Specific Keyboard for the PRISM Lab at the University of Arizona
33 partsGPL-3.0
Questions
How big is the Gecko choc PCB?
It measures 278.7 × 107.5 mm and has 2 copper layers, 1.6 mm thick.
What parts does the Gecko choc use?
194 parts, built around the RP2040, W25Q128JVSIQ, TS-1088R-02026 and 1N4148WT. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
Where can I download the Gecko choc KiCad files?
From the DaneEvans/Gecko-keyboard repository on GitHub, at the commit this page was made from: the board is pcbs/Gecko_choc/Gecko_choc.kicad_pcb and its schematic pcbs/Gecko_choc/Gecko_choc.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Gecko choc design in my own project?
Its repository publishes it under the CC-BY-4.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).