
Proto frame
JacobBanghart/clickdeck
Custom Stream Deck-style USB controller: per-key images, micro switches, haptic knobs

Custom Stream Deck-style USB controller: per-key images, micro switches, haptic knobs
Driver bench is an open-source printed circuit board by JacobBanghart, from the JacobBanghart/clickdeck repository on GitHub, published under the MIT licence. It is a 2-layer board of 56 × 40 mm with 29 parts on 20 nets, routed with 516 tracks and 61 vias.
It is built around the RP2350B, DRV8311HRRWR and SS6343M-QF-TP. Its parts include 12 capacitors, 7 resistors, 4 connectors and 2 ICs. It belongs with the RP2350 boards of this library.
[!CAUTION] This is AI-generated and completely untested. Nothing here has been built, assembled, flashed or measured: not the CAD, not the PCBs, not the parts list, not the costs. It was produced by an AI assistant (Claude) during planning conversations, and it will contain mistakes. Treat every dimension, part number, price and claim as a guess until it's verified on real hardware. Don't order anything based on this without checking it yourself.
A custom USB macro controller: per-key images, real clicky micro switches, and motor-driven knobs that switch between clicky and smooth in software.
The knobs are modules (D23). Each of the five knob slots takes a haptic module (motor-driven), a cheaper lite module (a plain push encoder, detented or smooth as ordered) or a blank. Modules lift out from the top with the case closed, so you can start with one or two knobs and add more later.

What this adds:
Like the + XL, it can have a touch band under the knob displays for taps and swipes: an optional add-on, off by default (D24).
What the + XL does better: it's polished and ready today, has 36 keys and 6 dials, has a big plugin library (clickdeck has none; OpenDeck or Companion clients may come later), and it costs less (see below). Build this for the knobs and the switch feel; if those don't matter, buy the + XL.
| Build one (own 3D printer) | 100 ordered together | |
|---|---|---|
| Base device: display, keys, case, backplane, cables, no knobs | $320–505 | $110–140 |
| + haptic module, each | ~$18–25, plus ~$48–64 once per order | ~$11–16 |
| + lite module, each | ~$6–8, plus ~$39–50 once per order | ~$4–5 |
| + touch band (optional add-on) | ~$30 | ~$5–8 |
| First build: 2 haptic + 3 blanks | $405–620 | $135–175 |
| All 5 haptic | $460–695 | $165–215 |
| Stream Deck + XL (36 keys, 6 dials), for comparison | ~$350 | |
| Development (designer's): test kit, tools, Rev A and one board revision | ~$715–1,265 |
The owner's target is the full version at $250 retail at 100 units (D24). The 100 column assumes the production plan in docs/cost.md (factory motors, home-printed resin caps, bulk cables) and leaves out one-time costs (patent clearance, FCC testing, printers) and labor: with those spread over 100 units, $250 isn't reached; at 300–500 units it gets close.
A case ordered from JLC3DP adds ~$35–75 to a single build. Nothing is planned past one build until a device works. A single build costs more than a Stream Deck + XL. Cost isn't what this project optimizes, but the numbers try to be honest. They cover parts, PCBs (JLC's 5-board minimum and 2-board assembly minimum included), prints, ready-made internal cables, shipping and US import duty (the de minimis exemption is gone; JLC's DDP duty is about 35% typical), in two orders: JLC (the base boards in one panel, the module boards, prints) and AliExpress/Waveshare. Get a real JLC quote before ordering. No crimping, and the goal is no soldering: JLC fits every part, and every cable inside plugs in. The biggest costs are JLC's boards (fees and parts), the duty, the motors and the display board. Breakdown, with 5 and 25 units: docs/cost.md; every part: docs/bom.md.
| Exploded | Key profile (cap, tab, switch) |
|---|---|
![]() | ![]() |
Prototype (2 keys on the real 7B, a printed top plate on a laser-cut acrylic base, plus a printed knob test stand with bought breakouts):

Inside, with the panel removed: Waveshare's board at the back, the backplane and the knob slots across the front, the USB board (hub) in the back-left corner with the USB-C port in the back wall:

Cabling from above (display and top plate removed): one USB-C cable in, a hub on the USB board, a short USB-C cable to the display board and a latching JST-GH cable to the backplane. Every cable is bought and plugged in (docs/wiring.md):

Knob modules (D23), lifted out of their slots: haptic, lite and a blank. The backplane under the slots has 18 pogo pins per slot; they press gold pads under each module. A haptic module's motor sits on a hinged tongue cut into the module board; pressing the knob pushes an arm on the motor spacer onto a switch on the board's front border. Two screws through the cover hold each module. Both knob types sit at the same height (checked in the model):

cad/out/Status (2026-10-19): design stage, nothing built. Knobs are now modules in five slots (D23): haptic, lite (push encoders, D22) or blank. Cost target (D24): $250 retail at 100 units; the haptic module's driver is now the DRV8311H, tested first on a small driver bench board, and the touch band is an optional add-on. Done on paper: CAD for the full device and prototype (real Waveshare 7B dimensions), prototype frame PCB and driver bench board (generated, DRC clean), knob channel spec, wiring/power spec (internal USB hub, plug-in cables only), USB protocol draft, design review with the owner's decisions (docs/design-review.md). Prototype plan (2026-10-18): buy the final parts early (7B, motors, magnets), test the knob on bought breakouts and the keys on the rev C frame PCB, then build Rev A, the first build of our own boards. Next: order prototype parts (docs/parts.md), prototype firmware, the web configurator and the Rev A schematics. Open items: docs/open-questions.md; pass/fail criteria: docs/prototype-tests.md.
Nothing else we found combines clicky keys, per-key images and haptic knobs. These cover parts of it:
| Project | Keys | Per-key images | Knobs | What clickdeck takes from it |
|---|---|---|---|---|
| Open Deck (joshr120), MIT. Not the OpenDeck app | ✓ 4 keys, real switches | ✓ one 1.8" screen under acrylic caps | ✗ | Same key idea at small scale. Its acrylic caps (4.5 mm, or 1.5 + 3 mm layers glued with UV glue) are too loose in tolerance for clickdeck's key stack |
| eezbotfun 8-key macropad, case files CC BY-NC | ✓ mechanical | ✗ one 3.5" screen | ✗ | ESP32-S3 + HID reference |
| Super Make Something DIY Stream Deck | ✓ | ✓ LCD buttons | plain encoders | Reference for LCD keys |
| SmartKnob | ✗ | ✗ | ✓ haptic, one knob with a round screen | Haptic firmware: detents, end stops, click profiles |
| Elgato Stream Deck Module 6/15/32 | rubber pads | ✓ | ✗ | Commercial LCD-key component, for comparison |
| HAW Hamburg thesis (2026) | Stream Deck module | ✓ | potentiometers | Similar goal, no haptics |
Software it builds on: SimpleFOC (motor control), esptool-js (flashing the ESP32-S3 from the browser). The configurator follows the idea of VIA for keyboards.
cad/, PCB designs, and the
design docs in docs/): CERN-OHL-P-2.0| Qty | Value | Footprint | References |
|---|---|---|---|
| 7 | 10k | R_0603_1608Metric | R2, R3, R4, R5, R6, R7, R8 |
| 5 | 22uF 25V | C_0805_2012Metric | C1, C2, C7, C8, C12 |
| 4 | 100nF | C_0603_1608Metric | C3, C4, C6, C9 |
| 4 | M3 | MountingHole_3.2mm_M3 | H1, H2, H3, H4 |
| 2 | 1uF | C_0603_1608Metric | C5, C10 |
| 1 | 4.7uF | C_0603_1608Metric | C11 |
| 1 | 5V IN | PinHeader_1x02_P2.54mm_Vertical | J4 |
| 1 | DRV8311HRRWR | Texas_RRW0024A_WQFN-24-1EP_3x3mm_P0.4mm_EP1.9x1.9mm | U1 |
| 1 | MOTOR 1 | PinHeader_1x03_P2.54mm_Vertical | J2 |
| 1 | MOTOR 2 | PinHeader_1x03_P2.54mm_Vertical | J3 |
| 1 | RP2350B | PinHeader_1x10_P2.54mm_Vertical | J1 |
| 1 | SS6343M-QF-TP | QFN-24-1EP_3x4mm_P0.4mm_EP1.65x2.65mm | U2 |

JacobBanghart/clickdeck
Custom Stream Deck-style USB controller: per-key images, micro switches, haptic knobs


techy-robot/Mighty-Micro-Motors
Tiny drone motors with a high reduction gearbox, a precise mangetic encoder, and a FOC controller

HeyPCB/knuckle
35 mm round FOC driver for a GBM2804 gimbal motor that answers on the Open Duck Mini's servo bus as an STS3215. 6-layer KiCad 10 board plus printed standoff, cover and horn adapter.




sedlak477/owl-hardware
Hardware design files and build instructions for the OWL platform

techy-robot/CACKLE-Driver-DRV8311_Motor_Driver
This is a single brushless motor driver based on the DRV8311 Texas Instruments chip. It is capable of 5 amps current in a voltage range of 3 to 24 volts. It has integrated current sense amplifiers and protection logic.
It measures 56 × 40 mm and has 2 copper layers, 1.6 mm thick.
29 parts, built around the RP2350B, DRV8311HRRWR and SS6343M-QF-TP. 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 JacobBanghart/clickdeck repository on GitHub, at the commit this page was made from: the board is hardware/driver-bench/driver-bench.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.
Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).