Skip to the content
2 layers56 × 40 mmDriver bench, the printed circuit board in 3D

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

Size
56 × 40 mm
Copper layers
2
Thickness
1.6 mm
Parts
29
Nets
20
Pads
120
Tracks, vias
516, 61
Pours
2
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
17 Oct 2026
Updated
19 Oct 2026

Overview

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.

Main components

3

README

README.md

clickdeck

[!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.

Full device

Why not just buy a Stream Deck + XL?

What this adds:

  • Programmable knobs. Each knob switches per function between clicky, smooth, a set number of clicks, or hard end stops, and can give a tick at a preset. They also press to click. Stream Deck dials have one fixed feel.
  • Clicky keys. Micro switches instead of soft rubber pads. Caps move straight up and down, guided by the plate.
  • Set up in the browser, works anywhere. A VIA-style web configurator (Chrome/Edge, over WebUSB) sets the key layout, shortcuts and macros, knob feel, images and firmware, and stores everything on the device. After that it works on any computer with no software installed. A small optional daemon adds live integrations: changing images, app state, scripts (docs/configurator.md).
  • Open and Linux-first. Open hardware, open USB protocol, your own firmware, and an easy way back to factory (docs/recovery.md).

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.

Cost (rough estimates)

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.

Design

ExplodedKey profile (cap, tab, switch)
ExplodedKey section

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):

Prototype

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:

Inside

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):

Cabling

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):

Knob modules

  • docs/assembly.md: assembly and service guide, with pictures and an animation (generated from the CAD)
  • docs/plan.md: goals, architecture, and the staged build plan
  • docs/parts.md: prototype parts list with links (final parts bought early + a throwaway test kit)
  • docs/cost.md: cost breakdown
  • docs/bom.md: bill of materials, base device and each module (generated from the CAD)
  • docs/lessons.md: lessons from related projects, so we don't relearn them
  • docs/wiring.md: power path, cables and connectors, strain relief, key matrix, pin budget
  • docs/knob-module.md: the knob modules (haptic, lite, blank): mechanics, netlist, parts and design notes
  • docs/configurator.md: web configurator, optional host daemon, Linux udev rule
  • docs/recovery.md: recovery and factory reset (start here if something's stuck)
  • docs/protocol.md: USB protocol draft (two USB devices behind a hub, WebUSB)
  • hardware/: KiCad boards generated by script (the rev C frame PCB from the CAD, and the driver bench board)
  • docs/open-questions.md: what's unverified, and how/when it gets answered
  • docs/prototype-tests.md: pass/fail tests for the prototype
  • docs/pcb.md: how the PCBs get designed and ordered
  • cad/: parametric CAD (build123d). STEP files for FreeCAD/Fusion 360 in 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.

Related projects

Nothing else we found combines clicky keys, per-key images and haptic knobs. These cover parts of it:

ProjectKeysPer-key imagesKnobsWhat 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 buttonsplain encodersReference for LCD keys
SmartKnob✗✗✓ haptic, one knob with a round screenHaptic firmware: detents, end stops, click profiles
Elgato Stream Deck Module 6/15/32rubber pads✓✗Commercial LCD-key component, for comparison
HAW Hamburg thesis (2026)Stream Deck module✓potentiometersSimilar 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.

License

  • Software (Python, scripts, firmware, host code): MIT
  • Hardware designs (CAD models and exports in cad/, PCB designs, and the design docs in docs/): CERN-OHL-P-2.0

Parts

29
QtyValueFootprintReferences
710kR_0603_1608MetricR2, R3, R4, R5, R6, R7, R8
522uF 25VC_0805_2012MetricC1, C2, C7, C8, C12
4100nFC_0603_1608MetricC3, C4, C6, C9
4M3MountingHole_3.2mm_M3H1, H2, H3, H4
21uFC_0603_1608MetricC5, C10
14.7uFC_0603_1608MetricC11
15V INPinHeader_1x02_P2.54mm_VerticalJ4
1DRV8311HRRWRTexas_RRW0024A_WQFN-24-1EP_3x3mm_P0.4mm_EP1.9x1.9mmU1
1MOTOR 1PinHeader_1x03_P2.54mm_VerticalJ2
1MOTOR 2PinHeader_1x03_P2.54mm_VerticalJ3
1RP2350BPinHeader_1x10_P2.54mm_VerticalJ1
1SS6343M-QF-TPQFN-24-1EP_3x4mm_P0.4mm_EP1.65x2.65mmU2

More from JacobBanghart/clickdeck

1
  • 2 layers58.3 × 30.7 mmProto frame, the printed circuit board in 3D

    Proto frame

    JacobBanghart/clickdeck

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

    15 parts1MIT

Similar boards

  • 4 layers50 × 69.5 mmRia, the printed circuit board in 3D

    Ria

    B44ken/ria

    ria is a small wheeled biped built for jumping and fast ground motion.

    107 parts
  • 4 layers8.3 × 5 mmDRV8311 on motor driver, the printed circuit board in 3D

    DRV8311 on motor driver

    techy-robot/Mighty-Micro-Motors

    Tiny drone motors with a high reduction gearbox, a precise mangetic encoder, and a FOC controller

    22 parts13CERN-OHL-S-2.0
  • 6 layers25.9 × 16.8 mmKnuckle, the printed circuit board in 3D

    Knuckle

    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.

    45 parts1CERN-OHL-S-2.0
  • 2 layers50 × 50 mmDrv8311, the printed circuit board in 3D

    Drv8311

    Ares-0425/PosDog_motor

    41 parts
  • 4 layers72.5 × 85.4 mmSbcb, the printed circuit board in 3D

    Sbcb

    jaguilar/sbcb

    112 parts
  • 2 layers50.8 × 34 mmBiym board, the printed circuit board in 3D

    Biym board

    peterpolidoro/biym-board

    PCB files for biym game.

    44 partsGPL-3.0
  • 4 layers38.9 × 23.3 mmOWL - Rotor v2, the printed circuit board in 3D

    OWL - Rotor v2

    sedlak477/owl-hardware

    Hardware design files and build instructions for the OWL platform

    118 partsCERN-OHL-P-2.0
  • 4 layers15 × 15 mmDRV8311 Motor Driver, the printed circuit board in 3D

    DRV8311 Motor Driver

    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.

    29 parts

Questions

How big is the Driver bench PCB?

It measures 56 × 40 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Driver bench use?

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.

Where can I download the Driver bench KiCad files?

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.

Can I use the Driver bench design in my own project?

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).