
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

Per-key LCD macro pad: 6 screen-keys, ESP32-S3, IMU / ambient light / haptics / edge glow. Open hardware, open firmware, no subscription.
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.
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

hardware/pcb/data_streamdeck_gerbers.zip
to JLCPCB (about $15 for five boards). Full list:
hardware/bom_assembly.csvhardware/enclosure/stl/,
PETG or PLA+, no supports:
deck_bottom_v14.stl, deck_top_v14.stl, corner_spacers_x4_v14.stl,
optional deck_stand_v14.stlfirmware-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.
| Keys | 6× Waveshare 0.85″ ScreenKey (SKU 34168) |
| Board | ESP32-S3-WROOM-1-N16R8 on a 59.5 × 108.5 mm Rev E carrier |
| On board | IMU, VEML7700 ALS, DRV2605L haptics, piezo, 8× SK6812, Qwiic |
| Displays | Dual SPI (J1–J3 + SD / J4–J6), 40 MHz + DMA |
| Case | 64.9 × 113.9 × 28.2 mm printed deck + optional 25° stand |
| Firmware | 0.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.
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:
./scripts/build_firmware.sh # also copies bins into the app
./scripts/build_firmware.sh --flash # then upload to a connected deckArduino: ESP32S3 Dev Module, USB CDC On Boot enabled, USB-OTG, OPI PSRAM,
16 MB flash (app3M_fat9M_16MB). Libraries: Adafruit GFX, ST7735, NeoPixel.
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.
.dmg (unsigned: right-click → Open), Windows .msicd app && npm install && npx tauri devplugins/;
directory ·
plugins/registry.jsonA 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.
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 helpersplugins/ + a registry line
(how)profiles/cd app && npm test && npm run test:e2eSame 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.
ScreenKey modules are a Waveshare product; this project is not affiliated with or endorsed by Waveshare or Elgato.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 12 | 100nF | Capacitor_SMD:C_0402_1005Metric | C1, C2, C3, C4, C5, C6, C9, C10, C13, C14, C15, C16 |
| 12 | M2-module-standoff | MountingHole:MountingHole_2.2mm_M2 | H5, H6, H7, H8, H9, H10, H11, H12, H13, H14, H15, H16 |
| 8 | SK6812MINI-E | LED_SMD:LED_SK6812MINI_PLCC4_3.5x3.5mm_P1.75mm | D1, D2, D3, D4, D5, D6, D7, D8 |
| 7 | 10k | Resistor_SMD:R_0402_1005Metric | R1, R2, R3, R4, R5, R6, R9 |
| 4 | M2-corner-case-screw | MountingHole:MountingHole_2.2mm_M2 | H1, H2, H3, H4 |
| 3 | 10uF | Capacitor_SMD:C_0805_2012Metric | C7, C8, C17 |
| 2 | 1uF | Capacitor_SMD:C_0402_1005Metric | C11, C12 |
| 2 | 5.1k | Resistor_SMD:R_0402_1005Metric | R7, R8 |
| 1 | 100R | Resistor_SMD:R_0402_1005Metric | R10 |
| 1 | 74AHCT1G125 | Package_TO_SOT_SMD:SOT-23-5 | U7 |
| 1 | AMS1117-3.3 | Package_TO_SOT_SMD:SOT-223-3_TabPin2 | U2 |
| 1 | BOOT | Button_Switch_SMD:SW_Push_1P1T_NO_CK_KMR2 | SW1 |
| 1 | CPT-9019S | Buzzer_Beeper:Buzzer_CUI_CPT-9019S-SMT | BZ1 |
| 1 | DRV2605L | Package_SO:MSOP-10_3x3mm_P0.5mm | U6 |
| 1 | ESP32-S3-WROOM-1-N16R8 | RF_Module:ESP32-S3-WROOM-1 | U1 |
| 1 | LRA motor | Connector_JST:JST_SH_SM02B-SRSS-TB_1x02-1MP_P1.00mm_Horizontal | J10 |
| 1 | LSM6DS3TR-C | Package_LGA:LGA-14_3x2.5mm_P0.5mm_LayoutBorder3x4y | U4 |
| 1 | Qwiic | Connector_JST:JST_SH_SM04B-SRSS-TB_1x04-1MP_P1.00mm_Horizontal | J9 |
| 1 | RESET | Button_Switch_SMD:SW_Push_1P1T_NO_CK_KMR2 | SW2 |
| 1 | ScreenKey 1 | Connector_Molex:Molex_PicoBlade_53261-0971_1x09-1MP_P1.25mm_Horizontal | J1 |
| 1 | ScreenKey 2 | Connector_Molex:Molex_PicoBlade_53261-0971_1x09-1MP_P1.25mm_Horizontal | J2 |
| 1 | ScreenKey 3 | Connector_Molex:Molex_PicoBlade_53261-0971_1x09-1MP_P1.25mm_Horizontal | J3 |
| 1 | ScreenKey 4 | Connector_Molex:Molex_PicoBlade_53261-0971_1x09-1MP_P1.25mm_Horizontal | J4 |
| 1 | ScreenKey 5 | Connector_Molex:Molex_PicoBlade_53261-0971_1x09-1MP_P1.25mm_Horizontal | J5 |
| 1 | ScreenKey 6 | Connector_Molex:Molex_PicoBlade_53261-0971_1x09-1MP_P1.25mm_Horizontal | J6 |
| 1 | USB4105-GF-A | Connector_USB:USB_C_Receptacle_GCT_USB4105-xx-A_16P_TopMnt_Horizontal | J7 |
| 1 | USBLC6-2SC6 | Package_TO_SOT_SMD:SOT-23-6 | U3 |
| 1 | VEML7700 | OpenScreenDeck:VEML7700-TT | U5 |
| 1 | microSD | Connector_Card:microSD_HC_Hirose_DM3D-SF | J8 |
It measures 59.5 × 108.5 mm and has 2 copper layers, 1.6 mm thick.
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.
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.
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).

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

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

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.

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

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.



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.