Skip to the content
PCBKitNew board
2 layers59.5 × 108.5 mmData streamdeck, the printed circuit board in 3D

Per-key LCD macro pad: 6 screen-keys, ESP32-S3, IMU / ambient light / haptics / edge glow. Open hardware, open firmware, no subscription.

Size
59.5 × 108.5 mm
Copper layers
2
Thickness
1.6 mm
Parts
71
Nets
49
Pads
329
Tracks, vias
1,134, 231
Pours
2
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
4 Jul 2026
Updated
26 Aug 2026

Overview

Data streamdeck is an open-source printed circuit board by vcazan, from the vcazan/open-screen-deck repository on GitHub, published under the MIT licence. It is a 2-layer board of 59.5 × 108.5 mm with 71 parts on 49 nets, routed with 1,134 tracks and 231 vias.

It is built around the 74AHCT1G125SE, ESP32-S3-WROOM-1-N16R8 and DRV2605LDGS, with the VEML7700-TT, AMS1117-3.3 and LSM6DS3TR-C among its other parts. Its parts include 17 capacitors, 10 resistors, 10 connectors, 8 diodes and 7 ICs. It belongs with the ESP32 boards of this library.

Main components

9

README

README.md

Open Screen Deck

Six Waveshare ScreenKey modules (128×128 IPS + switch in each cap) on an ESP32-S3 carrier you have fabricated, in a case you print. This repo is the KiCad, Gerbers, OpenSCAD, STLs, firmware, and an optional desktop companion.

Build notes · Latest release (macOS/Windows app + firmware .bin) · Discord

Open Screen Deck

Build one

  1. Order — 6× Waveshare 34168 (about $66, longest lead time). Upload hardware/pcb/data_streamdeck_gerbers.zip to JLCPCB (about $15 for five boards). Full list: hardware/bom_assembly.csv
  2. Print while those ship — four STLs in hardware/enclosure/stl/, PETG or PLA+, no supports: deck_bottom_v14.stl, deck_top_v14.stl, corner_spacers_x4_v14.stl, optional deck_stand_v14.stl
  3. Assemble — guide, about 45 minutes
  4. Flash over USB-C — companion (Settings → Firmware) or Arduino / esptool. Same release has firmware-0.14.5.bin plus bootloader and partitions.

Parts land around $100. The six modules are most of that. v14 STLs match the Rev E board (59.5 × 108.5 mm); don’t mix with older v13 prints.

Keys6× Waveshare 0.85″ ScreenKey (SKU 34168)
BoardESP32-S3-WROOM-1-N16R8 on a 59.5 × 108.5 mm Rev E carrier
On boardIMU, VEML7700 ALS, DRV2605L haptics, piezo, 8× SK6812, Qwiic
DisplaysDual SPI (J1–J3 + SD / J4–J6), 40 MHz + DMA
Case64.9 × 113.9 × 28.2 mm printed deck + optional 25° stand
Firmware0.14.5 (protocol 14) — HID keyboard F13–F24 by default

Pinout lives in hardware/pinout.py. Generators refuse to run if firmware/config.h disagrees.

Firmware

Sources in firmware/. Out of the box it types F13–F24. Pages, labels, icons, microSD animations, auto-dim, glow LEDs, and haptics are configured over USB serial (protocol).

Prebuilt images are on Releases (firmware-0.14.5.bin, .bootloader.bin, .partitions.bin). The companion bundles the same files. To compile locally:

bash
./scripts/build_firmware.sh          # also copies bins into the app
./scripts/build_firmware.sh --flash  # then upload to a connected deck

Arduino: ESP32S3 Dev Module, USB CDC On Boot enabled, USB-OTG, OPI PSRAM, 16 MB flash (app3M_fat9M_16MB). Libraries: Adafruit GFX, ST7735, NeoPixel.

Companion app

Optional. The deck is a USB keyboard without it. Use the app to draw key faces, bind host actions, flash firmware, and (on Rev E) drive auto-dim / glow / self-test.

A push to main updates this repo and the docs site. A GitHub Release (installers + firmware bins) is created only when a tag app-v* is pushed, e.g. app-v0.2.0.

Repo map

text
hardware/
  pinout.py          Canonical GPIO + Rev E geometry
  pcb/               KiCad, Gerbers, board BOM
  enclosure/         OpenSCAD v14 + printable STLs
  3d/                Fastener / assembly STEP
firmware/            ESP32-S3 Arduino (0.14.5)
app/                 Tauri companion (Rust + React)
plugins/             Bundled plugins + registry.json
profiles/            Shared layouts (.osdprofile.json)
docs/                MkDocs site
scripts/             PCB / schematic / firmware helpers

Contributing

  • Plugins — folder in plugins/ + a registry line (how)
  • Profiles — export from the app, PR into profiles/
  • Hardware — OpenSCAD is parametric; keep the mechanical contract if the PCB should still fit
  • App / firmware — cd app && npm test && npm run test:e2e

Related projects

Same neighbourhood: FreeTouchDeck (one touchscreen), open-deck (one TFT behind keys), MacroPad (per-key OLED). This one is six discrete ScreenKey modules on a carrier you can order.

License

ScreenKey modules are a Waveshare product; this project is not affiliated with or endorsed by Waveshare or Elgato.

Parts

71
QtyValueFootprintReferences
12100nFCapacitor_SMD:C_0402_1005MetricC1, C2, C3, C4, C5, C6, C9, C10, C13, C14, C15, C16
12M2-module-standoffMountingHole:MountingHole_2.2mm_M2H5, H6, H7, H8, H9, H10, H11, H12, H13, H14, H15, H16
8SK6812MINI-ELED_SMD:LED_SK6812MINI_PLCC4_3.5x3.5mm_P1.75mmD1, D2, D3, D4, D5, D6, D7, D8
710kResistor_SMD:R_0402_1005MetricR1, R2, R3, R4, R5, R6, R9
4M2-corner-case-screwMountingHole:MountingHole_2.2mm_M2H1, H2, H3, H4
310uFCapacitor_SMD:C_0805_2012MetricC7, C8, C17
21uFCapacitor_SMD:C_0402_1005MetricC11, C12
25.1kResistor_SMD:R_0402_1005MetricR7, R8
1100RResistor_SMD:R_0402_1005MetricR10
174AHCT1G125Package_TO_SOT_SMD:SOT-23-5U7
1AMS1117-3.3Package_TO_SOT_SMD:SOT-223-3_TabPin2U2
1BOOTButton_Switch_SMD:SW_Push_1P1T_NO_CK_KMR2SW1
1CPT-9019SBuzzer_Beeper:Buzzer_CUI_CPT-9019S-SMTBZ1
1DRV2605LPackage_SO:MSOP-10_3x3mm_P0.5mmU6
1ESP32-S3-WROOM-1-N16R8RF_Module:ESP32-S3-WROOM-1U1
1LRA motorConnector_JST:JST_SH_SM02B-SRSS-TB_1x02-1MP_P1.00mm_HorizontalJ10
1LSM6DS3TR-CPackage_LGA:LGA-14_3x2.5mm_P0.5mm_LayoutBorder3x4yU4
1QwiicConnector_JST:JST_SH_SM04B-SRSS-TB_1x04-1MP_P1.00mm_HorizontalJ9
1RESETButton_Switch_SMD:SW_Push_1P1T_NO_CK_KMR2SW2
1ScreenKey 1Connector_Molex:Molex_PicoBlade_53261-0971_1x09-1MP_P1.25mm_HorizontalJ1
1ScreenKey 2Connector_Molex:Molex_PicoBlade_53261-0971_1x09-1MP_P1.25mm_HorizontalJ2
1ScreenKey 3Connector_Molex:Molex_PicoBlade_53261-0971_1x09-1MP_P1.25mm_HorizontalJ3
1ScreenKey 4Connector_Molex:Molex_PicoBlade_53261-0971_1x09-1MP_P1.25mm_HorizontalJ4
1ScreenKey 5Connector_Molex:Molex_PicoBlade_53261-0971_1x09-1MP_P1.25mm_HorizontalJ5
1ScreenKey 6Connector_Molex:Molex_PicoBlade_53261-0971_1x09-1MP_P1.25mm_HorizontalJ6
1USB4105-GF-AConnector_USB:USB_C_Receptacle_GCT_USB4105-xx-A_16P_TopMnt_HorizontalJ7
1USBLC6-2SC6Package_TO_SOT_SMD:SOT-23-6U3
1VEML7700OpenScreenDeck:VEML7700-TTU5
1microSDConnector_Card:microSD_HC_Hirose_DM3D-SFJ8

Questions

How big is the Data streamdeck PCB?

It measures 59.5 × 108.5 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Data streamdeck use?

71 parts, built around the 74AHCT1G125SE, ESP32-S3-WROOM-1-N16R8, DRV2605LDGS and VEML7700-TT. 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 Data streamdeck KiCad files?

From the vcazan/open-screen-deck repository on GitHub, at the commit this page was made from: the board is hardware/pcb/data_streamdeck.kicad_pcb and its schematic hardware/pcb/data_streamdeck.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Data streamdeck 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).

Similar boards

  • 4 layers86 × 90 mmSc02 drive, the printed circuit board in 3D

    Sc02 drive

    KVR-CIBER/sc02-solar-hypercar

    SC-02 Solar Hypercar: 3D-printbare Le-Mans-racer op zonne-energie met Pi 4 + ESP32-S3, CadQuery-CAD en three.js-simulatie

    94 parts
  • 4 layers95 × 95 mmAgentDeck, the printed circuit board in 3D

    AgentDeck

    Brillar0101/agentdeck

    RP2040 macropad for supervising AI coding agents: 13 hot-swap keys with per-key RGB status, encoder, joystick, 4-layer PCB, CircuitPython firmware, printable enclosure

    101 partsMIT
  • 2 layers110 × 97.2 mmPcbBot, the printed circuit board in 3D

    PcbBot

    BerkeleyHCI/PolymorphicBlocks

    A Python-based hardware description language for PCBs for higher-level (block-diagram / system-architecture level) PCB design through libraries of directly reusable subcircuit generators.

    109 parts94BSD-3-Clause
  • 4 layers50.8 × 0.5 mmFocus Dial, the printed circuit board in 3D

    Focus Dial

    realamoghm/Focus-Dial

    A standalone hardware controller that allows users to enter, manage, and visualize focus states through a simple physical interaction.

    96 parts
  • 4 layers70 × 52 mmPager carrier rev a, the printed circuit board in 3D

    Pager carrier rev a

    vyquocvu/analog-ai-chip

    This directory contains the editable KiCad 10 source for the 70 mm × 52 mm, four-layer Pager-1 main carrier. The display, keypad, protected Li-Po pack, and analog accelerator are external assemblies.

    32 parts1MIT
  • 4 layers38 × 55 mmDoubleSports.kicad pro, the printed circuit board in 3D

    DoubleSports.kicad pro

    Ameister621/Double-Sports

    COMP3200 Individual Project - Aidan Reidy

    54 parts
  • 4 layers84 × 100 mmEsp32s3-can sd logger, the printed circuit board in 3D

    Esp32s3-can sd logger

    MrBlahhhh/esp32-autosport

    A data logger you wire straight into a race car: 12 V and CAN come in on one 4-pin plug, sensor readings and CAN traffic get written to a microSD card.

    206 parts