Skip to the content
2 layers86.6 × 71.8 mmVehicleControlUnit, the printed circuit board in 3D

Vehicle Control Unit (VCU) for the 2026 Longhorn Racing Solar car

Size
86.6 × 71.8 mm
Copper layers
2
Thickness
1.6 mm
Parts
142
Nets
150
Pads
476
Tracks, vias
611, 400
Pours
407
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
1 Apr 2025
Updated
23 Sep 2026

Overview

VehicleControlUnit is an open-source printed circuit board by lhr-solar, from the lhr-solar/VCAT-VehicleControlUnit repository on GitHub, published under the MIT licence. It is a 2-layer board of 86.6 × 71.8 mm with 142 parts on 150 nets, routed with 611 tracks and 400 vias.

It is built around the ESP32-C6-MINI-1U-H4, LT1963AEST-3.3#TRPBF and TPS2115ADRBR, with the IRLML0030, NVMFWS1D7N04XMT1G-VB and 1N5819HW-7-F-01 among its other parts. Its parts include 52 resistors, 22 capacitors, 11 diodes, 10 connectors and 6 transistors. It belongs with the ESP32 and RISC-V boards of this library.

Main components

8

README

README.md

VehicleControlUnit

Vehicle Control Unit (VCU) for the 2026 Longhorn Racing Solar car

CubeMX Picture

Getting Started

Cloning

Clone this repository using the following command

sh
git clone git@github.com:lhr-solar/PS-VehicleControlUnit.git --recursive

Installation

Follow the installation instructions for your specific platform, found here.

Additionally, install the Arduino IDE

Command Usage

Compiling Firmware

All firmware is stored in the Firmware/ directory and must be run while in a nix shell. For the first time you will need to run

sh
chmod +x ./run_nix.sh
./run_nix.sh

This will place you in a nix shell with all needed dependencies. After the first time, you only need to run the below command to enter the nix shell.

sh
./run_nix.sh

To compile production firmware, simply run:

sh
make

Compiling Tests

To compile a specific test file, run:

sh
make TEST=[name of test excluding .c and test_]

Test files are located in test/ and must have the prefix test_ or else the test won't compile correctly. If you want to run the blinky test, which is located in tests/blinky_test.c you will run

sh
make TEST=blinky

Parts

142
QtyValueFootprintReferences
241kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR1, R15, R24, R32, R33, R34, R35, R36, R37, R38, R39, R40, R41, R42, R43, R44 +8
1310kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR2, R8, R10, R11, R12, R13, R17, R18, R22, R23, R26, R27, R28
110.1uCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC1, C2, C6, C7, C9, C11, C13, C15, C19, C21, C22
7120Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR6, R7, R9, R16, R19, R20, R21
610uCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC3, C4, C5, C8, C17, C18
41uCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC10, C12, C14, C20
4IRLML0030Package_TO_SOT_SMD:SOT-23Q1, Q2, Q3, Q4
4PWRLED_SMD:LED_0603_1608Metric_Pad1.05x0.95mm_HandSolderD5, D6, D7, D8
34.3kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR14, R25, R31
3LEDLED_SMD:LED_0603_1608Metric_Pad1.05x0.95mm_HandSolderCon1, Con2, LVPWR1
3LOGOLOGOG***, G***, G***
3MountingHoleMountingHole:MountingHole_3.2mm_M3_Pad_TopBottomH1, H2, H3
3TestPointTestPoint:TestPoint_Keystone_5005-5009_Compact3V1, 24V_TP1, LVGND_TP1
25.1kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR3, R4
2DUTSVT_Passives:SODFL4724X108ND9, D10
2DrivingLED_SMD:LED_0603_1608Metric_Pad1.05x0.95mm_HandSolderLV21, LV22
2HBLED_SMD:LED_0603_1608Metric_Pad1.05x0.95mm_HandSolderLV1, LV17
2NVMFWS1D7N04XMT1GUTSVT_Power:NVMFWS3D0P04M8LT1GQ5, Q6
2PTLED_SMD:LED_0603_1608Metric_Pad1.05x0.95mm_HandSolderLV6, LV23
2TVSDiode_SMD:D_SOD-123FD1, D2
11N5819HW-7-FDiode_SMD:D_SOD-123D3
1200kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR29
1220nCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC16
13.3V InjectorConnector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ3
1450Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR5
19kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR30
1BFLED_SMD:LED_0603_1608Metric_Pad1.05x0.95mm_HandSolderLV9
1BLELED_SMD:LED_0603_1608Metric_Pad1.05x0.95mm_HandSolderLV4
1BOOTUTSVT_Special:SW_CJS-1200TASW2
1CarCANUTSVT_Connectors:Molex_Nano-Fit_105309-xx04_1x04_P2.50mm_VerticalJ4
1CarLVPowerConnectorUTSVT_Connectors:Molex_Nano-Fit_105309-xx02_1x02_P2.50mm_VerticalJ7
1CruiseLED_SMD:LED_0603_1608Metric_Pad1.05x0.95mm_HandSolderLV19
1Dr. HallockUTSVT_Logos:LHRs_LOGOLOGO2
1Dr. HallockUTSVT_Logos:Hallock_Image_TinyLOGO1
1ERRLED_SMD:LED_0603_1608Metric_Pad1.05x0.95mm_HandSolderLV3
1ESP32-C6-MINI-1/UUTSVT_Special:ESP32-C6-MINI-1U4
1FLASHLED_SMD:LED_0603_1608Metric_Pad1.05x0.95mm_HandSolderLV2
1HALLLED_SMD:LED_0603_1608Metric_Pad1.05x0.95mm_HandSolderLV12
1LED1LED_SMD:LED_0603_1608Metric_Pad1.05x0.95mm_HandSolderLV13
1LED2LED_SMD:LED_0603_1608Metric_Pad1.05x0.95mm_HandSolderLV14
1LED3LED_SMD:LED_0603_1608Metric_Pad1.05x0.95mm_HandSolderLV15
1LED4LED_SMD:LED_0603_1608Metric_Pad1.05x0.95mm_HandSolderLV16
1LM74502HDDFRUTSVT_Power:SOT65P280X110-8NIC1
1LT1963AEST-3.3#TRPBFPackage_TO_SOT_SMD:SOT-223-3_TabPin2U3
1LeaderSOMUTSVT_Special:LeaderSOMU1
1MFLED_SMD:LED_0603_1608Metric_Pad1.05x0.95mm_HandSolderLV8
1MWLED_SMD:LED_0603_1608Metric_Pad1.05x0.95mm_HandSolderLV11
1MotorCANUTSVT_Connectors:Molex_Nano-Fit_105309-xx03_1x03_P2.50mm_VerticalJ5
1PCLED_SMD:LED_0603_1608Metric_Pad1.05x0.95mm_HandSolderLV5
1Precharge ConnectorUTSVT_Connectors:Molex_Nano-Fit_105310-xx12_2x06_P2.50mm_VerticalJ1
1RESETBoot Switch:TL3365AF180QGSW1
1RegenLED_SMD:LED_0603_1608Metric_Pad1.05x0.95mm_HandSolderLV18
1SFH11-PBPC-D05-ST-BKUTSVT_Connectors:CONN_SFH11-xxxC-D05-ST-XX_SULJ2
1SMAF4758AUTSVT_Passives:SODFL5026X125ND11
1SP0503BAHTPackage_TO_SOT_SMD:SOT-143D4
1STLED_SMD:LED_0603_1608Metric_Pad1.05x0.95mm_HandSolderLV7
1SWOCLED_SMD:LED_0603_1608Metric_Pad1.05x0.95mm_HandSolderLV10
1SafeLED_SMD:LED_0603_1608Metric_Pad1.05x0.95mm_HandSolderLV20
1TPS2115ADRBRUTSVT_ICs:SON65P300X300X100-9NU2
1USB_C_Receptacle_USB2.0_16PUTSVT_Connectors:USB_C_Receptacle_GCT_USB4105-xx-A_16P_TopMnt_HorizontalJ6

Similar boards

  • 4 layers58 × 43 mmLeaderSOM, the printed circuit board in 3D

    LeaderSOM

    lhr-solar/LeaderSOMPCB

    Leader System-On-Module (LSOM)

    144 parts2
  • 2 layers82.3 × 79.4 mmPS ChargerInterfacePCB, the printed circuit board in 3D

    PS ChargerInterfacePCB

    lhr-solar/PS-ChargerInterfacePCB

    Interfaces the Elcon charger with the BPS/Battery over CAN

    140 parts1
  • 2 layers53.1 × 81.9 mmPTN PumpControlBoard, the printed circuit board in 3D

    PTN PumpControlBoard

    lhr-solar/PS-PumpController

    Controls speed of liquid cooling pump and fans for the main battery pack. Additionally, interprets data from temperature sensors and flowrate sensors for fan/pump control loop

    115 parts1
  • 2 layers59.1 × 75.7 mmPS MotorControllerInterfacePCB, the printed circuit board in 3D

    PS MotorControllerInterfacePCB

    lhr-solar/PS-MotorControllerInterfacePCB

    Provides power conversion/protection and fan control for the Prohelion WaveSculptor 22 motor controller

    127 parts3
  • 2 layers70 × 59 mmDinoSpand v2.0, the printed circuit board in 3D

    DinoSpand v2.0

    gabriele-moretto/dinospand

    Agricultural PCB project design and firmware developing.

    89 parts1
  • 2 layers96 × 57 mmActivePrecharge RevB, the printed circuit board in 3D

    ActivePrecharge RevB

    lhr-solar/PS-PrechargeBoard

    High-voltage contactor control PCB

    92 parts1
  • 4 layers154.2 × 106.2 mmPS LVCarrier, the printed circuit board in 3D

    PS LVCarrier

    lhr-solar/PS-LVCarrierPCB

    One Big Beautiful Board

    420 parts2MIT

Questions

How big is the VehicleControlUnit PCB?

It measures 86.6 × 71.8 mm and has 2 copper layers, 1.6 mm thick.

What parts does the VehicleControlUnit use?

142 parts, built around the ESP32-C6-MINI-1U-H4, LT1963AEST-3.3#TRPBF, TPS2115ADRBR and IRLML0030. 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 VehicleControlUnit KiCad files?

From the lhr-solar/VCAT-VehicleControlUnit repository on GitHub, at the commit this page was made from: the board is Hardware/VehicleControlUnit.kicad_pcb and its schematic Hardware/ActivePrecharge.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

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