
Desk display
nepyope/Project-Homunculus
Project Homunculus is open-source, low-cost hardware for capturing human hand and arm motions. It has two parts.

SplitAnalogKeyboard is an open-source printed circuit board by LennartEd, from the LennartEd/Analog-Keyboard-kmk-PiPico-NormalSplit repository on GitHub. It is a 4-layer board of 153.8 × 106.1 mm with 188 parts on 79 nets, routed with 2,297 tracks and 252 vias.
It is built around the HX6659ISO-B, CD74HC4067M96 and RP2040-ZERO, with the EC11N1520401 among its other parts. Its parts include 90 capacitors, 44 diodes, 6 ICs, 3 switches and 1 connector. It belongs with the RP2040 boards of this library.
This is a fully analog keyboard using magnetic keys and hall sensors. I'm using a RP2040 but since it is KMK (circuitpython) based it should be compatible with other boards. I build a split keyboard, but any type form factor should work. This is my first experience with circuitpython so code might me wonky.
#TO-DO
!DONT USE THE PCB PROVIDED! The PCB provided has some flaws that make it hard to work with. I would recommend making your own PCB and using mine as a template. In the future i might create v2 template that fixes the flaws. Also as LCSC didn't have the LEDs in stock, I build mine without them. So there is no guaranty that I did the LED wiring correctly. I did however test the code with the onboard led of the RP2040, so the code should work.
| Description | Part | LCSC |
|---|---|---|
| Hall sensor | HX6659ISO-B | C495742 |
| Multiplexer | CD74HC4067M96 | C496123 |
| TRRS jack | PJ-3220-5A | C707251 |
| MCU | Waveshare RP2040-zero | -- |
| (LED) | sk6812 mini-e | C5149201 |
Hall sensor:
Multiplexer: Currently any 16to1 Multiplexer should work (giving you 64 keys). If you are not hand soldering i recommend choosing a smaller sized one. Larger (32to1) should also work.
MCU: Any circuitpython compatible board should work. You just have to change the footprint on the PCB (which you should do anyway. See "Flaws with v1"
TRRS jack:
Capacitor: Capacitors are not strictly necessary but improve resolution. I tried a few and found that 100uF worked the best. Use different sensor filters
The position of the magnet in the switch is red by the hall-effect sensor. Because the pi-pico only has 4 ADCs we need multiplexers to cycle between the sensors.
To install the code connect your board and install circuitpython. Then copy the content of the "code" folder into the board. For editing the code you can use Thonny or any text editor.
To make life easier by not having to use "board.GP.." all the time, create (if not already present) a python file in lib/kmk/quickpin. Then add all the pins (see the other files for reference). Now when imported with
from kmk.quickpin.<boardTypeFolder>.<boardPins> import pinout as pinsinto other files you can just use "pins[x]" to reference pins
Here you define most variables for you specific board.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 90 | C | Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolder | C1, C2, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19, C20, C21, C22, C23 +74 |
| 44 | HX6659ISO-B | footprints:SOT-23-3_L2.9-W1.6-P1.90-LS2.8-BR | H1, H2, H10, H11, H12, H13, H14, H15, H16, H17, H18, H19, H20, H21, H22, H23 +28 |
| 44 | SK6812MINI-E_C5149201 | footprints:LED-SMD_L3.2-W2.8-TR | LED1, LED2, LED10, LED11, LED12, LED13, LED14, LED15, LED16, LED17, LED18, LED19, LED20, LED21, LED22, LED23 +28 |
| 4 | CD74HC4067M96 | footprints:SOIC-24_L15.4-W7.5-P1.27-LS10.3-BL | U1, U2, U4, U5 |
| 2 | RP2040-Zero | footprints:RP2040-Zero-outer | U3, U6 |
| 2 | ~ | footprints:MouseEncoder | SW1, SW3 |
| 1 | EC11N1520401 | footprints:SW-TH_EC11NXXXX | SW2 |
| 1 | PJ-322 | footprints:AUDIO-TH_HOOYA_PJ-322 | CN1 |

nepyope/Project-Homunculus
Project Homunculus is open-source, low-cost hardware for capturing human hand and arm motions. It has two parts.


Eidon-AI/eidon-glove
A robust 16-DOF hand/finger tracking wearable standard Bluetooth Human Interface Device (BLE HID) designed for humanoid teleoperation and collecting embodied AI training datasets.


zademahi238/mission-mimosa
To answer this, we compare task-completion success rates with and without tactile sensing across different robot-learning policies.


Lyrux/DriftPad
Custom Hall-effect macropad with adjustable actuation and release points, analog magnetic key sensing, and an OLED display for real-time profiles, settings, and visual feedback.

MukeshSethy/micromouse-runner
This is my repo for the first version of full size micromouse development.
It measures 153.8 × 106.1 mm and has 4 copper layers, 1.6 mm thick.
188 parts, built around the HX6659ISO-B, CD74HC4067M96, RP2040-ZERO and EC11N1520401. 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.
From the LennartEd/Analog-Keyboard-kmk-PiPico-NormalSplit repository on GitHub, at the commit this page was made from: the board is Split/PCB/splitAnalogKeyboard.kicad_pcb and its schematic Split/PCB/splitAnalogKeyboard.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository states no licence, so its author keeps all rights: ask LennartEd before reusing the design.