Skip to the content
4 layers140 × 105.3 mmBldc-75v, the printed circuit board in 3D

Racing Team's Exchange for Shell EcoMarathon @Lycée des Arts et Métiers

Size
140 × 105.3 mm
Copper layers
4
Thickness
1.6 mm
Parts
125
Nets
125
Pads
487
Tracks, vias
746, 165
Pours
18
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
18 Mar 2025
Updated
29 Oct 2026

Overview

Bldc-75v is an open-source printed circuit board by schto173, from the schto173/FormulaLAM repository on GitHub, published under the MIT licence. It is a 4-layer board of 140 × 105.3 mm with 125 parts on 125 nets, routed with 746 tracks and 165 vias.

It is built around the TJA1051T/3, LM5164DDA and TPD4S010DQAR, with the CSD19532Q5B, 1N5819WS and DFLS1100 among its other parts. Its parts include 49 capacitors, 39 resistors, 8 diodes, 6 transistors and 6 connectors. It belongs with the robots and motor control boards of this library.

Main components

8

README

Electrical/ESC-BLDC-FORMULA1-V1_2/README.md

ESC – BLDC motor controller HAT (V1.2)

Motor controller for the car: a 4-layer HAT that plugs onto a NUCLEO-G474RE and drives the hub motor with SimpleFOC (6-PWM, low-side current sensing, hall sensors).

Battery58 V max (fuse holder for an ATO blade fuse, 58 V rated)
Phase current15–30 A
Gate driverTI DRV8353RS (SPI, 3 current-sense amplifiers, integrated buck)
Power stage6× TI CSD19532Q5B (100 V), 2 mΩ shunts, Kelvin sensing
Logic supplyLM5164 buck → 5 V (Nucleo via E5V), Nucleo LDO → 3.3 V
ProtectionsBus TVS (SMCJ60A), fuse, ESD on voltage-sense (TPD4S010) and CAN (PESD1CAN), clamp diodes on hall inputs, DRV8353 VDS/OCP/UVLO
ExtrasFET temperature NTC, motor temperature input, UART telemetry, CAN bus

Open bldc-75v.kicad_pro with KiCad 10. All libraries are in this folder and referenced with ${KIPRJMOD}, so nothing needs to be installed.

Connectors

RefConnectorPins
J5Battery, solder pads for 4 mm² wireBAT+ / BAT− (use an XT90-S anti-spark plug in the cable)
J6Motor phases, solder pads for 4 mm² wirePHASE C / B / A (left → right)
J8Hall sensors + motor temperature, JST-XH 6-pin1 +5V, 2 GND, 3 A, 4 B, 5 C, 6 TEMP (as on the silkscreen)
J7Throttle / driver button, JST-XH 3-pin3V3, SIG, GND
J9UART telemetry, JST-XH 4-pin1 = 5V, 2 = TX, 3 = RX, 4 = GND (3.3 V logic, 330 Ω series)
J10CAN bus, JST-XH 3-pin1 = CAN_H, 2 = CAN_L, 3 = GND

CAN: TJA1051T/3 transceiver (bus pins survive ±58 V). The ESC is meant to sit at one end of the bus, so the 120 Ω termination is on (solder jumper JP1 is bridged). Cut the bridge between the JP1 pads if the board ever sits in the middle of the bus. On the housings: M12 A-coded, CiA 303-1 pinout (2 = V+, 3 = GND, 4 = CAN_H, 5 = CAN_L).

UART to a Raspberry Pi: connect only GND, TX and RX (cross TX↔RX). The 5 V pin on J9 is for small modules only – the 5 V rail is 1 A in total and also feeds the Nucleo and the hall sensors.

Nucleo pin map (firmware)

FunctionPins
6-PWM (A_H, A_L, B_H, B_L, C_H, C_L) + enableBLDCDriver6PWM(PA10, PB15, PA9, PB14, PA8, PB13, PA11)
DRV8353 SPISCK PB3, MISO PB4 (SDO), MOSI PB5 (SDI), CS PB11
DRV8353 nFAULTPB10
Current sense SOA / SOB / SOCPA4 / PA1 / PA0 (all on ADC2; SOA is on PA4, SOC on PA0)
Voltage sense A / B / C / busPB0 / PC0 / PC2 / PC3 (divider 383 k / 9.76 k)
Halls A / B / CPB2 / PB1 / PC4
ThrottlePC1
FET temperature (NTC 10 k B3380, 10 k pull-up to 3.3 V)PA6 (ADC2_IN3)
Motor temperature (J8 pin 6, 2.2 k pull-up, 1 k series, 100 nF)PA7 (ADC2_IN4)
UART telemetry (UART4)TX PC10, RX PC11 → HardwareSerial Serial3(PC11, PC10)
CAN (FDCAN2)TX PB6, RX PB12
Status LEDPB7
USB to the PiNucleo ST-LINK virtual COM port (LPUART1, PA2/PA3 = Serial) – no extra hardware

Before the first power-up:

  • Bench supply 20–24 V with a current limit: the 5 V regulator only switches on above 18 V.
  • Nucleo jumper JP5 on E5V (the Nucleo is powered from this board).
  • Firmware must set the DRV8353 over SPI: lower VDS_LVL for the CSD19532Q5B and pick the current-sense amplifier gain.
  • The motor should stop by itself if the control link drops (watchdog), and keep a hardware emergency stop that cuts motor power independently of any software.

Firmware

firmware/ is a PlatformIO project (VS Code + PlatformIO) for the first power-up with SimpleFOC, split into five steps: DRV8353 check → hall test → open loop → closed loop → FOC with current sensing. It also writes the DRV8353 settings (gate drive, overcurrent threshold, CSA gain). See firmware/README.md.

Manufacturing (JLCPCB)

Status: V1.2 ordered at JLCPCB (files generated 2026-09-30); see CLAUDE.md for the full status, design decisions and the to-do list.

Everything for the order is in jlcpcb/: bldc-75v_gerbers.zip, bldc-75v_bom_jlc.csv, bldc-75v_cpl_jlc.csv (rotations already corrected to JLC's footprints).

Order settings: 4 layers · ENIG · 2 oz outer / 1 oz inner copper · via covering "Epoxy Filled & Capped" · confirm production file and parts placement · top-side assembly.

Not assembled on purpose: the Nucleo (plugs in), battery and motor wire pads (solder the wires), JP1 (it is only a copper bridge).

Tools

tools/ regenerates the JLC files and runs extra manufacturing checks (run with KiCad's Python): gen_jlc.py (BOM + pick-and-place with JLC rotation corrections), overlay.py (checks a footprint's rotation against JLC's own footprint), dfm_checks.py (silkscreen, rings, mask, GND islands, stitching).

Parts

125
QtyValueFootprintReferences
7100nFCapacitor_SMD:C_0603_1608MetricC28, C34, C50, C64, C65, C66, C67
61nFCapacitor_SMD:C_0603_1608MetricC22, C23, C25, C47, C48, C49
64.7uF 100VCapacitor_SMD:C_1210_3225MetricC58, C59, C60, C61, C62, C63
6CSD19532Q5BPackage_TO_SOT_SMD:TDSON-8-1Q1, Q2, Q3, Q4, Q5, Q6
41uF 100VCapacitor_SMD:C_1206_3216MetricC18, C19, C20, C33
4330Resistor_SMD:R_0603_1608MetricR40, R41, R70, R71
4383kResistor_SMD:R_1206_3216MetricR1, R2, R3, R13
447nFCapacitor_SMD:C_0603_1608MetricC4, C12, C13, C17
49,76kResistor_SMD:R_0603_1608MetricR7, R11, R12, R17
4M3MountingHole_3.2mm_M3H1, H2, H3, H4
310kResistor_SMD:R_0603_1608MetricR33, R58, R69
31N5819WSDiode_SMD:D_SOD-323D5, D6, D7
32200pFCapacitor_SMD:C_0603_1608MetricC44, C45, C46
32mResistor_SMD:R_2512_6332MetricR14, R15, R16
34.7kResistor_SMD:R_0603_1608MetricR59, R60, R61
356Resistor_SMD:R_0603_1608MetricR55, R56, R57
3NetTie_2NetTie:NetTie-2_SMD_Pad0.5mmNT1, NT2, NT3
21kResistor_SMD:R_0603_1608MetricR25, R74
21uF 16VCapacitor_SMD:C_0603_1608MetricC31, C32
22.2uF 100VCapacitor_SMD:C_1210_3225MetricC51, C52
222uF 16VCapacitor_SMD:C_1206_3216MetricC54, C55
2330uF 100vCapacitor_THT:CP_Radial_D16.0mm_P7.50mmC11, C21
10,1uFCapacitor_SMD:C_0603_1608MetricC26
1100kResistor_SMD:R_1206_3216MetricR37
1100kResistor_SMD:R_0603_1608MetricR62
1100nF 100VCapacitor_SMD:C_0805_2012MetricC35
1107kResistor_SMD:R_0603_1608MetricR36
110k B3380Resistor_SMD:R_0402_1005MetricTH1
110nFCapacitor_SMD:C_0603_1608MetricC37
1120Resistor_SMD:R_0603_1608MetricR72
1158kResistor_SMD:R_0603_1608MetricR66
1180pF C0GCapacitor_SMD:C_0603_1608MetricC57
11MResistor_SMD:R_1206_3216MetricR63
11uF 25VCapacitor_SMD:C_0603_1608MetricC29
11uF 50VCapacitor_SMD:C_0603_1608MetricC27
12.2kResistor_SMD:R_0603_1608MetricR73
12.2nF 50VCapacitor_SMD:C_0603_1608MetricC53
12.61kResistor_SMD:R_0603_1608MetricR29
1220uHInductor_SMD:L_Bourns_SRR1260L1
1226kResistor_SMD:R_1206_3216MetricR68
122uF 25VCapacitor_SMD:C_0805_2012MetricC24
1274kResistor_SMD:R_1206_3216MetricR34
13.3nFCapacitor_SMD:C_0603_1608MetricC56
14.7nFCapacitor_SMD:C_0603_1608MetricC36
141.2kResistor_SMD:R_0603_1608MetricR65
147nF 100VCapacitor_SMD:C_0603_1608MetricC30
147uHInductor_SMD:L_Bourns_SRR1260L2
149.9kResistor_SMD:R_0603_1608MetricR67
190.9kResistor_SMD:R_0603_1608MetricR64
1ATO 30A 58VDCFuse:FuseHolder_Blade_ATO_Littelfuse_FLR_178.6165F1
1Battery (anti-spark in cable)Connector_Wire:SolderWire-4sqmm_1x02_P12mm_D3mm_OD6mmJ5
1CANConnector_JST:JST_XH_B3B-XH-A_1x03_P2.50mm_VerticalJ10
1DFLS1100Diode_SMD:D_PowerDI-123D2
1DRV8353RSRGZTDRV8353RSRGZT:QFN50P700X700X100-49NU1
1GreenLED_SMD:LED_0603_1608MetricD3
1HallConnector_JST:JST_XH_B6B-XH-A_1x06_P2.50mm_VerticalJ8
1LM5164DDAPackage_SO:HSOP-8-1EP_3.9x4.9mm_P1.27mm_EP2.41x3.1mm_ThermalViasU4
1Motor-Phasesbldc-hat:SolderWire-4sqmm_1x03_P18mm_D3mm_OD6mmJ6
1NUCLEO-G474REbldc-hat:Nucleo64_Morpho_HATU2
1PESD1CANPackage_TO_SOT_SMD:SOT-23D9
1SMCJ60ADiode_SMD:D_SMCD8
1TERMJumper:SolderJumper-2_P1.3mm_Bridged_RoundedPad1.0x1.5mmJP1
1TJA1051T/3Package_SO:SOIC-8_3.9x4.9mm_P1.27mmU5
1TPD4S010DQARTPD4S010DQAR:IC_TPD4S010DQARU3
1ThrottleConnector_JST:JST_XH_B3B-XH-A_1x03_P2.50mm_VerticalJ7
1UARTConnector_JST:JST_XH_B4B-XH-A_1x04_P2.50mm_VerticalJ9
1YellowLED_SMD:LED_0603_1608MetricD4

More from schto173/FormulaLAM

1
  • 4 layers110.5 × 90 mmBldc-75v, the printed circuit board in 3D

    Bldc-75v

    schto173/FormulaLAM

    Racing Team's Exchange for Shell EcoMarathon @Lycée des Arts et Métiers

    122 parts1MIT

Similar boards

  • 4 layers70.8 × 66.5 mmNic2, the printed circuit board in 3D

    Nic2

    oxidecomputer/hw-gimletlet-nic

    Daughterboard for the Gimletlet 2 which uses a KSZ8463 to break out two ethernet (RJ-45) connectors. In active use for Hubris development.

    53 partsMPL-2.0
  • 4 layers80 × 60 mmCAN ECU, the printed circuit board in 3D

    CAN ECU

    dhruxraj/stm32-can-ecu

    A compact, "ECU-style" CAN node for learning and prototyping automotive-type embedded software. It has an STM32G4 MCU, a CAN transceiver with protection and switchable termination, a 6-axis IMU, a protected 8-18 V…

    77 parts2
  • 4 layers74.4 × 50.2 mmRoadster charger, the printed circuit board in 3D

    Roadster charger

    zainahm3d/roadster-charger

    USB-C PD bike charger

    109 parts7
  • 2 layers166 × 143 mmCustom Inverter PCB, the printed circuit board in 3D

    Custom Inverter PCB

    MiniNugen/Custom_Inverter_Hardware

    PCBProjectNameREV1.PrjPCB | Source Documents | | PCBProjectNameREV1.SchDOC | | PCBProjectNameREV1.PcbDOC | | BOM | Settings | Libraries

    82 parts1
  • 4 layers77.5 × 67.5 mmEthdemo, the printed circuit board in 3D

    Ethdemo

    CalebJM04/Drone-Research-PDB

    102 parts
  • 4 layers120 × 65 mmBms power-100a, the printed circuit board in 3D

    Bms power-100a

    kitspace-test-repos/kicad6-file-collection

    70 partsMIT

Questions

How big is the Bldc-75v PCB?

It measures 140 × 105.3 mm and has 4 copper layers, 1.6 mm thick.

What parts does the Bldc-75v use?

125 parts, built around the TJA1051T/3, LM5164DDA, TPD4S010DQAR and CSD19532Q5B. 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 Bldc-75v KiCad files?

From the schto173/FormulaLAM repository on GitHub, at the commit this page was made from: the board is Electrical/ESC-BLDC-FORMULA1-V1_2/bldc-75v.kicad_pcb and its schematic Electrical/ESC-BLDC-FORMULA1-V1_2/bldc-75v.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Bldc-75v 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).