Skip to the content
4 layers130 × 105 mmHomeDeck, the printed circuit board in 3D

Jarvis HomeDeck: a Raspberry Pi CM4 carrier board and voice-assistant software for a 7-inch smart display (KiCad hardware, generated from Python, plus the Python/JS assistant)

Size
130 × 105 mm
Copper layers
4
Thickness
1.6 mm
Parts
228
Nets
161
Pads
1,048
Tracks, vias
5,581, 609
Pours
11
Routed
Yes
KiCad
KiCad 7 (file 20221018)
Created
30 Sep 2026
Updated
14 Oct 2026

Overview

HomeDeck is an open-source printed circuit board by Kilan777, from the Kilan777/HomeDeck repository on GitHub. It is a 4-layer board of 130 × 105 mm with 228 parts on 161 nets, routed with 5,581 tracks and 609 vias.

It is built around the TPS5430DDAR, BME688 and CH224K, with the SCD40-D-R2, TPA3118D2DAPR and ICS-43434 among its other parts. Its parts include 96 capacitors, 47 resistors, 19 ICs, 18 diodes and 17 connectors. It belongs with the computers and single-board computers and lEDs and displays boards and the Raspberry Pi (Linux) boards of this library.

Main components

12

README

README.md

Jarvis HomeDeck

Public mirror. This is a snapshot of the private working repo (commit f1d429f). Some private parts of the software are not included.

A self-built voice assistant with a screen: a Raspberry Pi Compute Module 4 carrier PCB that bolts to the 7-inch Raspberry Pi Touch Display 2, plus the software that turns it into "Jarvis". Personal project by Kilan.

The board carries the CM4, USB-C PD power, three 5 V bucks, a stereo class-D amplifier, two MEMS microphones, a Camera Module 3 connector, CO2 / temperature / humidity / pressure / VOC sensors, an RGB LED bar and an external WS2812B strip header, a fan header, buttons, a Qwiic-style I2C header, microSD, USB-A and a second USB-C.

The software is a single Python service with a module per feature and a touch UI in Chromium, plus a phone app served on a personal domain behind Google sign-in. Voice runs on a local wake word and hosted speech models; everything that is a command (timers, lights, music, volume, math) is handled on the device without a model.

FolderContents
kicad/KiCad project: hierarchical schematic (9 sheets), 4-layer routed PCB, project symbols and footprints, DRC rules
tools/circuit.pyThe single source the schematic, netlist and BOM are generated from. Edit this, not the KiCad files
out/Gerbers, JLCPCB BOM and pick-and-place, schematic PDF, board renders, DRC report (rev A as ordered)
docs/Hardware docs: README.md (board overview), ARCHITECTURE.md, BRINGUP.md, ORIENTATION.md, and PCB_ISSUES.md (what went wrong on rev A and what rev B should change)
software/homedeck/The assistant: server.py, modules/, web/, install/. See docs/SOFTWARE.md
software/homedeck_ui.pyThe original bench dashboard used for bring-up (retired)

Status

  • Rev A board #1 is fully working and in daily use, running at 9 V PD after two solder-jumper changes. Rev A board #2 is assembled and untested. Findings and the rev B list are in docs/PCB_ISSUES.md.
  • Software is feature complete for daily use: home screen, Jarvis voice, Spotify (full client), YouTube (ad-free native player), air quality with history, timers, alarms, reminders, lists, calendar, countdowns, bikes, transit, flights radar, lights, fan, sleep sounds, guest card with Wi-Fi QR, presence, Wi-Fi setup, on-screen keyboard. See docs/SOFTWARE.md.

Quick start

Hardware: order from out/ (JLCPCB 4-layer, two-sided assembly), read docs/BRINGUP.md, then apply the rev A fixes in docs/PCB_ISSUES.md before first power-on (the 9 V jumper setting matters).

Software, on the Pi:

text
rsync -a software/homedeck/ kilan@homedeck.local:~/hd/
ssh kilan@homedeck.local 'cd ~/hd && bash install.sh'

Then open Settings on the device for location, Wi-Fi, Spotify, calendar feeds and the API keys the optional features need (Groq for voice, 511.org for Muni). Secrets live only on the device in /var/lib/homedeck/config.json and are never in this repository.

Privacy

This repository is private. It contains no credentials, tokens or Wi-Fi passwords. The device redacts secrets from every API response, the phone app requires Google sign-in, and there is no VPN or third-party relay involved.

Parts

228
QtyValueFootprintReferences
37100nFCapacitor_SMD:C_0603_1608MetricC10, C12, C16, C18, C22, C25, C26, C29, C30, C31, C34, C35, C43, C45, C47, C48 +21
1310uFCapacitor_SMD:C_0603_1608MetricC27, C28, C33, C38, C39, C40, C41, C42, C44, C46, C49, C77, C92
1210kResistor_SMD:R_0603_1608MetricR3, R11, R17, R22, R23, R25, R35, R36, R37, R42, R43, R44
10WS2812BLED_SMD:LED_WS2812B_PLCC4_5.0x5.0mm_P3.2mmD10, D11, D12, D13, D14, D15, D16, D17, D18, D19
81uFCapacitor_SMD:C_0603_1608MetricC4, C32, C54, C55, C57, C58, C59, C60
710uF/50VCapacitor_SMD:C_1206_3216MetricC1, C2, C5, C11, C17, C67, C69
5100uF/35VCapacitor_SMD:CP_Elec_6.3x7.7C3, C8, C14, C20, C70
522uF/25VCapacitor_SMD:C_1206_3216MetricC9, C15, C21, C23, C24
54.7kResistor_SMD:R_0603_1608MetricR6, R8, R10, R38, R39
410uH 2.1AInductor_SMD:L_Sunlord_SWPA5040SL4, L5, L6, L7
41uF/50VCapacitor_SMD:C_0805_2012MetricC71, C72, C73, C74
4220nFCapacitor_SMD:C_0603_1608MetricC62, C63, C64, C65
422kResistor_SMD:R_0603_1608MetricR18, R19, R27, R30
4470RResistor_SMD:R_0603_1608MetricR4, R26, R29, R41
4M2.5 display standoffMountingHole:MountingHole_2.7mm_M2.5H1, H2, H3, H4
4SS34Diode_SMD:D_SMAD6, D7, D8, D9
3100kResistor_SMD:R_0603_1608MetricR14, R33, R46
310nFCapacitor_SMD:C_0603_1608MetricC7, C13, C19
310uH 7.8AInductor_SMD:L_Sunlord_MWSA1004SL1, L2, L3
315kResistor_SMD:R_0603_1608MetricR5, R7, R9
32.2uFCapacitor_SMD:C_0603_1608MetricC50, C51, C52
3PD volt selJumper:SolderJumper-3_P1.3mm_Bridged12_RoundedPad1.0x1.5mmJP1, JP2, JP3
3TPS5430Package_SO:TI_SO-PowerPAD-8_ThermalViasU2, U3, U4
3ext buttonConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ18, J19, J20
210RResistor_SMD:R_0603_1608MetricR24, R34
21nFCapacitor_SMD:C_0603_1608MetricC66, C68
22.2nFCapacitor_SMD:C_0603_1608MetricC53, C56
222pFCapacitor_SMD:C_0603_1608MetricC36, C37
2330RResistor_SMD:R_0603_1608MetricR13, R40
25.1kResistor_SMD:R_0603_1608MetricR1, R21
26.8kResistor_SMD:R_0603_1608MetricR28, R31
2AO3401APackage_TO_SOT_SMD:SOT-23Q1, Q4
2ICS-43434Sensor_Audio:InvenSense_ICS-43434-6_3.5x2.65mmU15, U16
2SY6280AACPackage_TO_SOT_SMD:SOT-23-5U10, U12
2TS3USB221Package_DFN_QFN:Texas_UQFN-10_1.5x2mm_P0.5mmU6, U7
2USB intConnector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ4, J5
2USBLC6-2SC6Package_TO_SOT_SMD:SOT-23-6U9, U11
10RResistor_SMD:R_0603_1608MetricR12
1100RResistor_SMD:R_0603_1608MetricR45
1100uF/35VCP_Elec_6.3x7.7C96
110kR_0603_1608MetricR47
112MHzCrystal:Crystal_SMD_3225-4Pin_3.2x2.5mmY1
11kResistor_SMD:R_0603_1608MetricR15
11k/0.25WResistor_SMD:R_1206_3216MetricR2
120kResistor_SMD:R_0603_1608MetricR32
1220RResistor_SMD:R_0603_1608MetricR16
12N7002SOT-23Q5
12N7002Package_TO_SOT_SMD:SOT-23Q2
13.9kResistor_SMD:R_0603_1608MetricR20
15AFuse:Fuse_1206_3216MetricF1
174AHCT1G125Package_TO_SOT_SMD:SOT-23-5U19
1ACT (green)LED_SMD:LED_0805_2012MetricD3
1AMS1117-3.3Package_TO_SOT_SMD:SOT-223-3_TabPin2U5
1AO3400APackage_TO_SOT_SMD:SOT-23Q3
1BME688Package_LGA:Bosch_LGA-8_3x3mm_P0.8mm_ClockwisePinNumberingU18
1BTN AButton_Switch_SMD:SW_Push_1P1T_XKB_TS-1187ASW2
1BTN BButton_Switch_SMD:SW_Push_1P1T_XKB_TS-1187ASW3
1CAMERA (CAM1)FPC_15P_1.0mm_BottomContact_RAJ7
1CH224KHomeDeck:ESSOP-10-1EP_3.9x4.9mm_P1.0mmU1
1CH334RPackage_SO:QSOP-16_3.9x4.9mm_P0.635mmU8
1DISPLAY (DSI1)FPC_15P_1.0mm_BottomContact_RAJ6
1DISPLAY 5VConnector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ8
1ExpansionConnector_PinHeader_2.54mm:PinHeader_2x08_P2.54mm_VerticalJ16
1FAN 5VConnector_JST:JST_PH_S2B-PH-K_1x02_P2.00mm_HorizontalJ21
1GLOBAL_ENConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ13
1I2C ext (light sensor)Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ12
1LED strip extConnector_JST:JST_PH_S3B-PH-K_1x03_P2.00mm_HorizontalJ17
1PCM5102APackage_SO:TSSOP-20_4.4x6.5mm_P0.65mmU13
1PD OK (green)LED_SMD:LED_0805_2012MetricD2
1POWERButton_Switch_SMD:SW_Push_1P1T_XKB_TS-1187ASW1
1PWR (red)LED_SMD:LED_0603_1608MetricD4
1RESETButton_Switch_SMD:SW_Push_1P1T_XKB_TS-1187ASW4
1Raspberry Pi CM4HomeDeck:RPi_CM4M1
1SCD40Sensor:Sensirion_SCD4x-1EP_10.1x10.1mm_P1.25mm_EP4.8x4.8mmU17
1SMBJ24ADiode_SMD:D_SMBD1
1SPK LConnector_JST:JST_PH_S2B-PH-K_1x02_P2.00mm_HorizontalJ10
1SPK RConnector_JST:JST_PH_S2B-PH-K_1x02_P2.00mm_HorizontalJ11
1TPA3118D2Package_SO:HTSSOP-32-1EP_6.1x11mm_P0.65mm_EP5.2x11mm_Mask4.11x4.36mm_ThermalViasU14
1UART debugConnector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ15
1USB-AConnector_USB:USB_A_Molex_67643_HorizontalJ3

The 223 most common of 228 parts.

Similar boards

  • 4 layers431.5 × 125.5 mmClavier, the printed circuit board in 3D

    Clavier

    lsartory/Clavier

    An FPGA-based mechanical keyboard with an integrated USB hub and communication interfaces

    344 parts212
  • 2 layers30 × 18 mmProtectedCharger, the printed circuit board in 3D

    ProtectedCharger

    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.

    24 parts94BSD-3-Clause
  • 2 layers64 × 23 mmLock, the printed circuit board in 3D

    Lock

    ephemerkey/ephemerkey

    The consumer half of the ephemerkey system, and the second PCB in this repo (alongside hardware/ephemerkey/, sharing the same scripts/kschgen.py engine, Makefile, and lib tables — the multi-project layout used by…

    50 parts
  • 4 layers100 × 50 mmChronolog, the printed circuit board in 3D

    Chronolog

    slemanz/chronolog

    STM32-based temperature data logger with RTC, NOR flash storage, LCD and Wi-Fi. Hardware and firmware.

    95 parts5
  • 4 layers100 × 65 mmSi5351AVFO, the printed circuit board in 3D

    Si5351AVFO

    etherkit/Si5351AVFO

    After any schematic change, run tools/exportdocs.sh (needs KiCad 10 kicad-cli). It rewrites docs/Si5351AVFOschematic.pdf, the netlist, SVGs and docs/erc.rpt.

    140 parts
  • 2 layers80 × 54 mmPl60c dmx, the printed circuit board in 3D

    Pl60c dmx

    tsmiltonAgents/pl60c-dmx-wakeup

    A small ESP32-S3 board that drives the wired DMX512 input of a Neewer PL60C panel light so the light can be ramped up slowly in the morning (sunrise alarm). Rev A, 2026-09-02.

    40 parts
  • 2 layers100 × 60 mmKINK box, the printed circuit board in 3D

    KINK box

    FunDeckHermit/KINK-box

    Audio amplifier / Web radio based on ESP32-S3

    112 parts2Apache-2.0

Questions

How big is the HomeDeck PCB?

It measures 130 × 105 mm and has 4 copper layers, 1.6 mm thick.

What parts does the HomeDeck use?

228 parts, built around the TPS5430DDAR, BME688, CH224K and SCD40-D-R2. 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 HomeDeck KiCad files?

From the Kilan777/HomeDeck repository on GitHub, at the commit this page was made from: the board is kicad/HomeDeck.kicad_pcb and its schematic kicad/HomeDeck.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the HomeDeck design in my own project?

Its repository states no licence, so its author keeps all rights: ask Kilan777 before reusing the design.