Skip to the content
PCBKitNew board
4 layers45 × 40 mmSOLIPS HMI CONTROLLER REV A, the printed circuit board in 3D

SOLIPS HMI CONTROLLER REV A

ferrglez/solips-hmi-controller

SOLIPS HMI Controller Rev A is a dedicated four-layer PCB intended to offload the graphical human–machine interface (HMI) from an Arduino UNO Q host.

Size
45 × 40 mm
Copper layers
4
Thickness
1.6 mm
Parts
31
Nets
68
Pads
172
Tracks, vias
349, 44
Pours
2
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
21 Oct 2026
Updated
21 Oct 2026

Overview

SOLIPS HMI CONTROLLER REV A is an open-source printed circuit board by ferrglez, from the ferrglez/solips-hmi-controller repository on GitHub. It is a 4-layer board of 45 × 40 mm with 31 parts on 68 nets, routed with 349 tracks and 44 vias.

It is built around the AP2112K-3.3 and USBLC6-2SC6. Its parts include 12 capacitors, 8 resistors, 4 ICs, 3 connectors and 2 switches. It belongs with the STM32 boards of this library.

Main components

2

README

README.md

SOLIPS HMI Controller — Rev A

Hardware design · KiCad · Engineering review pending

Status: Rev A design submitted for peer review. Not approved for fabrication. ERC/DRC were reported clean in the working KiCad project; electrical, mechanical and physical validation are still pending.

Overview

SOLIPS HMI Controller Rev A is a dedicated four-layer PCB intended to offload the graphical human–machine interface (HMI) from an Arduino UNO Q host. The host provides semantic application data; the STM32 executes the graphical application locally and drives a GC9A01 circular TFT display.

The design follows the engineering baseline dated 30 September 2026. That document freezes the major architecture but explicitly leaves component-specific verification and fabrication gates open. The current KiCad implementation must be compared with that baseline during review.

System architecture

text
Arduino UNO Q / QRB2210 (Debian)
           │ USB 2.0
           ▼
CP2102C-A01-GQFN24 (USB–UART bridge)
           │ USART1 · 3.3 V · PA9/PA10
           ▼
STM32U585CIT6 (LQFP48)
           │ SPI1 + DMA
           ▼
GC9A01 · 240 × 240 · RGB565

Design rationale: The UNO Q retains system and application logic, while the dedicated STM32 handles VehicleState, UIManager, LVGL and graphical assets. This reduces the HMI rendering workload on the host. Firmware migration and performance are not yet demonstrated on this PCB.

Key engineering choices

SubsystemRev A baselineRationale / verification
Main MCUSTM32U585CIT6, LQFP48Dedicated local HMI processing; confirm package pinout, power domains and firmware budget
Host interfaceCP2102C-A01-GQFN24USB–UART with DTR/RTS for planned boot/reset control; validate electrical implementation
SerialUSART1 on PA9/PA10Shared application communication and planned ROM bootloader update path
DisplayGC9A01, 240×240, RGB565SPI1 + DMA, write-only interface; confirm actual module and connector pinout
SupplyUSB 5 V input; 3.3 V LDO ≥500 mASimpler bring-up and no switching regulator; confirm load, inrush and thermal budget
DebugSWD, manual BOOT/RESETRecovery path independent of the USB bridge
PCB4 layersTop signals/components, inner GND reference, inner power, bottom signals; verify actual stackup and return paths

KiCad project organization

The schematic is organized into five hierarchical sheets:

  1. 01_POWER.kicad_sch — USB input and regulation
  2. 02_USB_UART.kicad_sch — USB-C and CP2102C
  3. 03_MCU.kicad_sch — STM32 and boot/reset control
  4. 04_DISPLAY.kicad_sch — GC9A01 interface
  5. 05_DEBUG.kicad_sch — SWD and manual controls

The current authoritative KiCad files should be placed in hardware/, including the top-level .kicad_sch, .kicad_pcb, .kicad_pro, all five hierarchical sheets, and any required custom symbol/footprint libraries or board rules. The duplicate - copia folder is a local backup, not a second design release.

Layout and routing

  • Four-layer PCB with inner reference and power planes.
  • Placement and routing performed in KiCad; FreeRouting was used as a routing aid, followed by manual completion and DRC cleanup.
  • USB D+/D−, ground continuity, via transitions, connector orientation and mechanical fit still require an engineering review.
  • The most recent DRC/ERC status was reported as clean by the designer; review the committed DRC.rpt / ERC.rpt and confirm they were generated after the final edits.

Review checklist

  • Cross-check actual KiCad schematic against STM32U585CIT6 and CP2102C manufacturer datasheets
  • Verify USB-C CC resistors, ESD, USB data routing, shield and VBUS protection
  • Verify MCU VDD/VDDA/VCAP and all decoupling connections
  • Validate LDO part, USB current budget and worst-case thermal dissipation
  • Verify DTR/RTS–BOOT0/NRST polarity, default states and STM32 option bytes
  • Verify SWD header orientation and physical accessibility
  • Confirm GC9A01 actual module pinout, supply, backlight and connector geometry/orientation
  • Check actual four-layer stackup, copper returns, clearances and manufacturability
  • Regenerate ERC/DRC on the final committed project
  • Close fabrication gates FG-01 / FG-02 / FG-03 with evidence

Planned validation

The baseline defines T01–T11: power, USB enumeration, UART, SWD, manual and automatic bootloader, CLI flashing, application boot, display, HMI screens and host protocol. These are planned tests, not completed tests.

Documentation

Review request

Requested decision: APPROVED FOR NEXT STAGE / CHANGES REQUIRED / NOT APPROVED.

No fabrication order should be placed until the open electrical, mechanical and fabrication-gate checks are resolved.

Parts

31
QtyValueFootprintReferences
5100nFCapacitor_SMD:C_0603_1608MetricC2, C3, C4, C5, C8
210 kΩResistor_SMD:R_0603_1608MetricR6, R7
21µFCapacitor_SMD:C_0805_2012MetricC9, C10
24.7uFCapacitor_SMD:C_0805_2012MetricC1, C7
25.1kΩResistor_SMD:R_0603_1608MetricR1, R2
10ΩResistor_SMD:R_0603_1608MetricR8
11 kΩ.Resistor_SMD:R_0603_1608MetricR3
110uFCapacitor_SMD:C_1206_3216MetricC11
11uFCapacitor_SMD:C_0805_2012MetricC6
122.1 kΩResistor_SMD:R_0603_1608MetricR5
14.7 µFCapacitor_SMD:C_0805_2012MetricC12
147.5 kΩResistor_SMD:R_0603_1608MetricR4
1AP2112K-3.3Package_TO_SOT_SMD:SOT-23-5U4
1BOOTButton_Switch_SMD:SW_SPST_TL3305ASW2
1CP2102C-Axx-xQFN24Package_DFN_QFN:WQFN-24-1EP_4x4mm_P0.5mm_EP2.45x2.45mmU2
1Conn_01x05Connector_PinHeader_2.54mm:PinHeader_1x05_P2.54mm_VerticalJ1
1Conn_01x07Connector_PinHeader_2.54mm:PinHeader_1x07_P2.54mm_VerticalJ4
1RESETButton_Switch_SMD:SW_SPST_TL3305ASW1
1STM32U585CITxPackage_QFP:LQFP-48_7x7mm_P0.5mmU1
1USBLC6-2SC6Package_TO_SOT_SMD:SOT-23-6U3
1USB_C_Receptacle_USB2.0_16PConnector_USB:USB_C_Receptacle_Amphenol_124019772112AJ3
1USB_UART_DTRTestPoint:TestPoint_Pad_D1.5mmTP1
1USB_UART_RTSTestPoint:TestPoint_Pad_D1.5mmTP2

Questions

How big is the SOLIPS HMI CONTROLLER REV A PCB?

It measures 45 × 40 mm and has 4 copper layers, 1.6 mm thick.

What parts does the SOLIPS HMI CONTROLLER REV A use?

31 parts, built around the AP2112K-3.3 and USBLC6-2SC6. 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 SOLIPS HMI CONTROLLER REV A KiCad files?

From the ferrglez/solips-hmi-controller repository on GitHub, at the commit this page was made from: the board is SOLIPS_HMI_CONTROLLER_REV_A/SOLIPS_HMI_CONTROLLER_REV_A.kicad_pcb and its schematic SOLIPS_HMI_CONTROLLER_REV_A/01_POWER.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the SOLIPS HMI CONTROLLER REV A design in my own project?

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

Similar boards

  • 4 layers60.8 × 61.3 mmOS3M Mouse, the printed circuit board in 3D

    OS3M Mouse

    spoter368/os3m-hardware

    All the hardware needed to build your own OS3M Mouse!

    51 parts399
  • 2 layers390 × 120.2 mmKeyboard, the printed circuit board in 3D

    Keyboard

    joshajohnson/entropy

    Strange keyboard with a left hand numpad

    334 parts97
  • 2 layers89 × 124 mmHub20, the printed circuit board in 3D

    Hub20

    joshajohnson/Hub20

    Hub20 is a numpad with a bunch of features you never knew you needed.

    183 parts68
  • 2 layers84.2 × 100 mmFabpack out v5 8, the printed circuit board in 3D

    Fabpack out v5 8

    yuz207/agentpad13

    agentpad13 — open-source 13-key macropad for agentic work (RP2040, vial-qmk, planar joystick, Raw HID agent-status protocol)

    126 parts41
  • 2 layers80.8 × 30 mmStm32 dev, the printed circuit board in 3D

    Stm32 dev

    brainstorm/bbtrackball-rs

    Experimenting with Blackberry trackball for keyboard ergonomics

    61 parts34
  • 2 layers46.8 × 52 mmUsb dev board, the printed circuit board in 3D

    Usb dev board

    cs2dsb/stm32-usb.rs

    A dev board designed to facilitate the development of USB firmware for STM32

    57 parts30Apache-2.0
  • 2 layers64.3 × 25.4 mmFranzininho WiFi, the printed circuit board in 3D

    Franzininho WiFi

    Franzininho/Franzininho-WiFi

    Franzininho WiFi is a board with ESP32-S2.

    38 parts24