Skip to content

Hardware Overview

A 2×3 of Waveshare ScreenKey modules (128×128 LCD + switch each) on an ESP32-S3 carrier, in a printed case. You fabricate the board, print the shells, and screw the modules on — sources are in hardware/.

Rev E is the current layout: dual SPI to the panels, IMU, ambient light, haptics, eight edge-glow LEDs, and a Qwiic port.

Rev E carrier

Assembled deck on the 25° stand

Specifications

Keys 6× Waveshare 0.85″ ScreenKey (SKU 34168) — LCD + mechanical switch in one module
Screens 128×128 IPS per key, ST7735, dual SPI (J1–J3 + SD on bus A, J4–J6 on bus B)
MCU ESP32-S3-WROOM-1-N16R8 (16 MB flash, 8 MB PSRAM) soldered on carrier
Carrier PCB 59.5 × 108.5 mm, 2-layer, ENIG, matte black
Sensors LSM6DS3TR-C IMU (pickup/tap), VEML7700 ambient light (auto-dim)
Feedback DRV2605L haptic driver + LRA jack, piezo, 8× SK6812MINI-E edge glow
Expansion Qwiic / StemmaQT on the shared I2C bus
Host link USB-C → HID keyboard (F13–F24) + CDC serial at 115200 baud
Media microSD for on-device icons/animations, or stream frames over USB
Enclosure v14: 64.9 × 113.9 × 28.2 mm flat deck + optional 25° stand; LED wall windows + ALS light-pipe
Fasteners 4× M2×25 corner screws through module nuts; 12× M2×5 module screws

Source files

All hardware sources live in the GitHub repo:

Component Location
Canonical pinout hardware/pinout.py
KiCad schematic + PCB hardware/pcb/
OpenSCAD enclosure hardware/enclosure/
Printable STLs hardware/enclosure/stl/
Fastener / assembly STEP hardware/3d/
Assembly BOM hardware/bom_assembly.csv

Order a PCB

  1. Generate fab outputs: ./scripts/build_hardware.sh
  2. Upload hardware/pcb/data_streamdeck_gerbers.zip to JLCPCB (~$15 for five boards)
  3. SMT assembly is recommended on Rev E — IMU, ALS, haptic driver, and eight 3535 LEDs are fiddly by hand. Component list in hardware/pcb/bom.csv

See the Fab Checklist for pre-order verification and bring-up tests.

Deep dives