
24g2usb rp2350zero
joypad-ai/joypad-os
Universal controller firmware for building adapters, dongles, and custom controllers.

8-channel EMS/TENS intensity-modulation module: servo-driven attenuator controlled by a game controller. Research prototype, not a medical device.
Ad5254bo is an open-source printed circuit board by grantjohnson13, from the grantjohnson13/remote-control-human repository on GitHub. It is a 2-layer board of 20 × 24 mm with 4 parts on 16 nets, routed with 33 tracks and 6 vias.
Its parts include 2 connectors, 1 capacitor and 1 IC.
A custom breakout board that does what you were trying to build by hand (an AD5254 on a TSSOP adapter) — but designed to be factory-assembled by PCBWay so you never solder the fine-pitch chip, and shaped to plug into a breadboard like a fat DIP.
One board = 4 channels (the AD5254 is a quad digipot). Two boards (addresses 0x2C and 0x2D) = the full 8 channels on one I²C bus.
This is a logic-level, low-voltage board (3.3 V I²C). It carries no stim voltage — the wiper outputs run over to the daughtercards. So it's a simple, low-stakes first custom PCB.
Board laid out in KiCad 10 from generate.py, 0 DRC violations, 0
unconnected, rendered and visually verified. Ready to upload for a quote:
ad5254-breakout-gerbers.zip — Gerbers + drill (drop into PCBWay/JLCPCB).ad5254bo.kicad_pcb — editable board. render-top.png / render-bottom.png.generate.py — the script that builds it (re-run to tweak).Final board size: 20 × 24 mm, 2-layer.
Both AD0 and AD1 are tied to GND (→ 0x2C). For the 0x2D board, edit
generate.py (set pin 4 / AD0 to VDD instead of GND) and re-run — or add the
solder-jumper option. Two boards (0x2C + 0x2D) give the full 8 channels.
As actually built (verified against generate.py 2026-08-02). Pin 1 is the end marked by the square pad / silk triangle; the table runs pin 1 → pin 8.
| J1 / Row A (pin 1→8) | J2 / Row B (pin 1→8) |
|---|---|
| W0 (wiper 0) | VDD |
| B0 | W3 (wiper 3) |
| A0 | B3 |
| W1 (wiper 1) | A3 |
| B1 | SCL |
| A1 | W2 (wiper 2) |
| SDA | B2 |
| GND | A2 |
For basic use you need VDD (J2.1), GND (J1.8), SDA (J1.7), SCL (J2.5), and the four wipers W0 (J1.1), W1 (J1.4), W2 (J2.6), W3 (J2.2).
Each channel exposes its wiper W, plus the A and B terminals, so it drops straight into the openEMSstim daughtercard network (which uses A + W as a rheostat). For simple use you only need VDD, GND, SDA, SCL, and the four W pins.
Plug those into PCBWay's instant quote for the bare-board price; add the
BOM (bom.csv) + assembly for the assembled price. See "Getting a quote."
To make the second board answer at 0x2D instead of 0x2C, the only change is AD0 → VDD instead of GND. Two clean ways:
bom.csv for the
assembled adder. That's your cost, today.netlist.txt here —
I can walk you through it step by step, or PCBWay's own assembly/design
service can lay it out from this spec. Either way the design is fully defined
here; only the layout/export step remains.A pre-assembled board removes the soldering, not the checks: probe it on the
breadboard, run the firmware I²C scan (S command) to confirm it answers at
its address, and read a wiper back (d) — same bring-up we did on the bench.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 1 | 100nF | C_0603_1608Metric | C1 |
| 1 | AD5254 | TSSOP-20_4.4x6.5mm_P0.65mm | U1 |
| 1 | RowA | PinHeader_1x08_P2.54mm_Vertical | J1 |
| 1 | RowB | PinHeader_1x08_P2.54mm_Vertical | J2 |
It measures 20 × 24 mm and has 2 copper layers, 1.6 mm thick.
4 parts. 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 grantjohnson13/remote-control-human repository on GitHub, at the commit this page was made from: the board is old-plan/hardware/ad5254-breakout/ad5254bo.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.
Its repository states no licence, so its author keeps all rights: ask grantjohnson13 before reusing the design.

joypad-ai/joypad-os
Universal controller firmware for building adapters, dongles, and custom controllers.


hackclub/OnBoard
💡 Join 1,000 teenagers and make your first PCB with a $100 grant!

tardate/LittleArduinoProjects
a collection of "Little Electronic & Arduino Projects", most involving electronics or an Arduino in one way or another!

drandyhaas/KiCadRoutingTools
A set of Python/Rust tools to aid routing in KiCad

osy/XG_Mobile_Station
Open source eGPU dock for ROG Ally and ROG Flow

Luos-io/luos_engine
Open-source and real-time orchestrator for cyber-physical-systems, to easily design, test and deploy embedded applications and digital twins.

NVNTLabs/switch2-SDEX2M2
Micro SD Express to M.2 NVME Adapter for Nintendo Switch 2