ErgoSNM Rev 2.x
This document for the Rev 2.x
of the ErgoSNM keyboard, the latest is Rev 2.1
. Source files: GitHub.
My blog post: ErgoSNM——有軌跡球的分離式人體工學QMK鍵盤 (v2.1)
Features
- 64 keys in total, left half (with thumb cluster) 29+6 keys, right half (with trackball) 29 keys.
- Trackball for mouse cursor and scroll, powered by PMW3360 optical mouse sensor.
- USB Type-C receptacle connector, with ESD protection adn resettable fuse.
- Support Cherry MX style key switches and hot-swap sockets.
- Column-staggered layout.
- Top mount.
- Support Vial, edit keymap and configuring keyboard in real time.
- Uses the RP2040 ARM Cortex-M0+ MCU, with 16MB (128Mb) external flash.
- One user configurable monochrome LED.
- Either 3.5mm TRRS/TRS or USB Type-C can be selected for two halves communication cable connector.
- SWD and USB D+/- pads for debugging (left half only).
- JLCPCB's PCBA service available, no need to solder parts yourself.
Parts List
Item | Qty | Description | Link | |
---|---|---|---|---|
Left half | Main PCB | 1 | Include electronic parts and PCB | GH Release Page |
Top case | 1 | Choose one of the three holes type | ||
Bottom case | 1 | |||
Right half | Main PCB | 1 | Include electronic parts and PCB | |
Top case | 1 | Choose one of the three holes type | ||
Bottom case | 1 | |||
Foot (1) | 2 | |||
Main plate (1) | 2 | FR4 | ||
Thumb cluster plate | 1 | FR4 | ||
Thumb cluster PCB | 1 | |||
Trackball board | 1 | Include electronic parts and PCB | GH Release Page | |
40mm Trackball ball | 1 | Ref | ||
Ball transfer units (BTUs, Ball rollers) | 3 | MISUMI BCHJJ7 or CheNa BR869-7 or VCN321-7 | Ref1, Ref2 | |
3.5mm TRS/TRRS or USB Type-C cable | 1 | For connect two halves | Ref | |
FPC/FFC Cables (2) | 2 | 8 Pin, 0.5mm Pitch, Same side contacts | Ref | |
M2 threaded inserts | 21 | Outer Diameter: 3.5mm, Length: 3mm | Ref | |
M2 × 5mm screws | 21 | For PCB, case and plate | Ref | |
M2 × 8mm screws | 4 | For feet | Ref | |
M2 hex nuts | 4 | For feet | Ref |
- This part is reversible/symmetrical and can be used on both the left and right halves.
- For
v2.0
, use JST GH1.25 8P cable instead of FPC/FFC cable, please refer to the schematic for wiring sequence.
PCB and Electronic Parts
Here are listed all the electronic components in more detail for PCBs.
Left half main PCB | Right half main PCB | Thumb cluster | Trackball board |
---|---|---|---|
Main PCBs
Since the left and right PCB electronic parts are identical, the following table only lists the quantities required for one half. Please multiply by 2 when manufacturing both halves.
If you use PCBA service, you don't have to prepare and solder most or even all of the following parts yourself.
Qty | Value | Footprint | Designator | JLCPCB# | MFR. Part# | Basic Parts (1) |
---|---|---|---|---|---|---|
3 | 5.1k | 0402 (1005 Metric) | R1,R2,R4 | C25905 | 0402WGF5101TCE | ✔️ |
3 | 1k | 0402 (1005 Metric) | R3,R7,R9 | C11702 | 0402WGF1001TCE | ✔️ |
2 | 27 | 0603 (1608 Metric) | R5,R6 | C25190 | 0603WAF270JT5E | ✔️ |
2 | 10k | 0402 (1005 Metric) | R8,R10 | C25744 | 0402WGF1002TCE | ✔️ |
4 | 1uF | 0402 (1005 Metric) | C1,C2,C8,C16 | C52923 | CL05A105KA5NQNC | ✔️ |
10 | 100nF | 0402 (1005 Metric) | C3,C6,C7,C9~C15 | C307331 | CL05B104KB54PNC | ✔️ |
2 | 20pF | 0402 (1005 Metric) | C4,C5 | C1554 | 0402CG200J500NT | ✔️ |
1 | 500mA, 6V | 0805 (2012 Metric) | F1 | C269104 | SMD0805B050TF | ❌ |
1 | RT9013-33GB | SOT-23-5 | U1 | C47773 | RT9013-33GB | ❌ |
1 | SRV05-4 | SOT-23-6 | U2 | C85364 | SRV05-4-P-T7 | ✔️ |
1 | W25Q128JVS | SOIC-8 5.23x5.23mm P1.27mm | U3 | C97521 | W25Q128JVSIQ | ✔️ |
1 | RP2040 | QFN-56-1EP 7x7mm P0.4mm EP3.2x3.2mm | U4 | C2040 | RP2040 | ❌ |
1 | 12MHz | 3225 4Pin (3.2x2.5mm) | Y1 | C9002 | X322512MSB4SI | ✔️ |
29 | 1N4148 | SOD-123 | D1~D29 | C81598 | 1N4148W | ✔️ |
1 | Red LED | 0603 (1608 Metric) | LD1 | C2286 | KT-0603R | ✔️ |
2 | RESET & BOOT | SW_SPST_TL3342 | SW1,SW2 | C318884 | TS-1187A-B-A-B | ✔️ |
29 | Switch | Cherry MX style hot-swap socket | KEY1~KEY29 | C2803348 | CPG151101S11 | ❌ |
2 | USB Type-C 16P (2) | HRO TYPE-C-31-M-12 | J1,J2 | C165948 | TYPE-C-31-M-12 | ❌ |
1 | 3.5mm TRRS 8P (2) | PJ-393 8P TRRS | J3 | C668609 | PJ-393 8PJ | ❌ |
1 | Conn 01x08 | 0.5mm Pitch 8P FPC/FFC Connector (3) | J4 | C2856797 | FPC-05F-8PH20 | ❌ |
- Basic Part means no additional manual feeding charge for these parts when using JLCPCB's PCBA services. Parts that are not Basic are Extended.
- One of the 2 USBs is used for connecting to the computer, and the other one is used to connect the other half of the keyboard. To connect the two halves, you can choose either USB or TRRS/TRS connector:
- If you choose to use TRRS/TRS, then each half requires 1 USB and 1 TRRS/TRS.
- If you choose to use USB, then each half requires 2 USB and no TRRS/TRS.
- TRRS/TRS does not support hot plugging in practice.
- For
v2.0
,J4
is JST GH1.25 8P connector (Mfr. Part No: SM08B-GHS-TB(LF)(SN)), please refer to the schematic for wiring sequence. - If you want to save some money, you can consider not using PCBA service soldering
U1
,F1
andJ1
~J4
(all are Extended parts), there parts are not very difficult to solder by soldering iron, and cheap to buy separately. - I have never used JLCPCB's PCBA service to solder
U1
,F1
,J1
~J4
andKEY1
~KEY29
parts. Please check the PCBA files yourself, especially the CPL file, if you need to. - Please note that the above information is subject to change, so please refer to the current situation.
Thumb Cluster
I did not prepare the PCBA files (i.e. BOM and CPL) for thumb cluster, if you need, try Bouni/kicad-jlcpcb-tools.
Qty | Value | Footprint | Designator | JLCPCB# | MFR. Part# | Basic Parts |
---|---|---|---|---|---|---|
6 | 1N4148 | SOD-123 | D1~D6 | C81598 | 1N4148W | ✔️ |
6 | Switch (1) | Cherry MX style hot-swap socket | KEY1~KEY6 | C2803348 | CPG151101S11 | ❌ |
1 | Conn 01x08 | 0.5mm Pitch 8P FPC/FFC Connector (2) | J1 | C2856797 | FPC-05F-8PH20 | ❌ |
1 | Encoder (1) | Alps EC11E-Switch Vertical | EC1 | -- | -- | -- |
- If you want to use encoder, only 5 switches can be insert, encoder
EC1
andKEY3
share the same position. The two larger mounting pins on the encoder must be cliped. - For
v2.0
,J1
is JST GH1.25 8P connector (Mfr. Part No: SM08B-GHS-TB(LF)(SN)), please refer to the schematic for wiring sequence.
Trackball Board
For ErgoSNM v2.1
, ref to PMW3360 PCB V3.1
:
For ErgoSNM
v2.0
, ref to PMW3360 PCBv3.0
.
Build Guide
Steps summary:
Before you start, make sure the parts are available, PMW3360 and BTUs are more difficult parts to buy.
Some online electronic parts stores in my country will help find and purchase rare ICs (usually from Taobao), this is how i bought PMW3360. There are 3 different BTU models listed in the part list, and they are exact same size.
Approximate cost in USD:
- PCBA: $80
- 3D printing case: $46
- other parts: $32
Prepare Parts
Please refer to Parts List and prepare all the required pares.
The cases and feet can be produced using 3D printing (I use SLA Resin for cases, MJF Nylon for feet). The plates provides Gerber files, which are produced as PCBs.
Solder
If you use PCBA service, most of the parts should not need to solder by yourself, but there are still some parts that need to solder manually.
If you are not very familiar with soldering, please read the Soldering Guide first. The parts that need attention are diodes and switch hot-swap sockets.
It is recommended to solder the switches or hot-swap sockets after Test.
After soldering is completed, remember to use a multimeter to test for any short circuits between the power supply (5V, 3.3V, and GND) and USB D+/-.
Flash Firmware
There are two way to flash firmware:
- UF2 file
- CLI
- Download Pre-build
.uf2
firmware file from Releases page. - Enter DFU mode.
- Copy and paste
.uf2
file to theRPI-RP2
device.
If you want to build/compile .uf2
, follow the steps:
- Git clone firmware repo.
- Open QMK MSYS or your preferred terminal.
- Navigate to the cloned repo directory and checkout to
siderakb/main
branch. - Build via command
make siderakb/ergosnm/rev2:vial
. You may need to additionally install make.
- Git clone firmware repo
- Open QMK MSYS or your preferred terminal.
- Navigate to the cloned repo directory and checkout to
siderakb/main
branch. - Flash via command, e.g.
qmk flash -kb siderakb/ergosnm/rev2 -km vial
ormake siderakb/ergosnm/rev2:vial:flash
. - Enter DFU mode. If you have other keyboards, you can also enter DFU mode before executing the command (a keyboard in DFU mode will not be able to type).
Please note that TRRS/TRS does not support hot plugging in practice, please plug and unplug TRRS/TRS cable after unplugging the USB cable between keyboard and computer.
For more infomation, please refer to QMK: Flashing Firmware and QMK: Raspberry Pi RP2040 UF2.
Test
Onec the firmware is flashed, the keyboard is ready to work.
Before proceeding to the next setps, you can test whether the keyboard is working properly to detect PCBs defects early.
You can use a site like this or this to test the keybaord. Sine the switch may not be installed on keyboard at present, you can use tweezers to act as a switch.
Assemble
- Use soldering iron to installing threaded inserts in keyboard case.
The wall of the hole at the thumb cluster is very thin, so please be careful.
-
Connect the FPC/FFC cables between main board and thumb cluster/trackball board.
-
Screw main and thumb cluster plates to the case.
-
Insert switches into the plate and PCB, you can insert the corner switches first to fix.
Before inserting the switch into the hot-swap socket, check if the switch pins are bent. If you find any bent pins, please straighten them.
-
Screw bottom cover and foots.
-
Add your keycaps. Plugin the TRRS/TRS or USB cable to connect two halves.
Please note that TRRS/TRS does not support hot plugging in practice, please plug and unplug TRRS/TRS cable after unplugging the USB cable between keyboard and computer.
Edit Keymap
ErgoSNM support Vial, you can edit keymap in real time, please refer to Vial: User manual.
Complete
Congratulations on getting a new keyboard🎉