
Foc control
sujaygouda123/foc-control
BLDC field-oriented-control board for a humanoid robot actuator. KiCad 10, Ø80 mm, 8 layers, 1.6 mm.

60 V, 20 A / 80 A peak BLDC motor controller that fits the MD80 v3.0 mounting. KiCad 10, 6 layers.
Better md80 is an open-source printed circuit board by darshp848, from the darshp848/bldc-controller-60v repository on GitHub. It is a 6-layer board of 56.7 × 54.7 mm with 144 parts on 98 nets, routed with 1,831 tracks and 328 vias.
It is built around the STM32G474CEU6, MAX3490EESA+ and TCAN1044AVDRQ1, with the AS5047P-ATSM, DRV8353SRTAR and LM5164DDAR among its other parts. Its parts include 72 capacitors, 36 resistors, 9 connectors, 8 ICs and 6 transistors. It belongs with the robots and motor control boards and the STM32 boards of this library.
A 48 V nominal / 60 V max BLDC motor controller that fits wherever a MAB Robotics MD80 v3.0 fits: same outline, mounting holes, Micro-Fit and AUX connectors, phase-wire holes and encoder position, with the MD80's 20 A continuous / 80 A peak phase current.

| Item | State |
|---|---|
| Schematic (KiCad 10, 6 sheets, 137 symbols) | done, ERC 0 errors 0 warnings |
| PCB outline, holes, connectors vs MAB STEP | done, 36 holes match to 0.000 mm (mech/fit_check.txt) |
| PCB rev B (144 footprints, 6 layers) | routed; DRC: 0 unconnected, 1 error (MD80-inherent AUX1/screw overlap); two-shunt power stage, 5.0SMDJ60A TVS |
| Simulation | loop inductance, double pulse, bus surge, current loop: docs/simulation.md |
| Firmware | not started; pin map and bring-up values in docs/firmware.md |
| Bench validation | none; loss figures are estimates |
hardware/ KiCad 10 project (open better-md80.kicad_pro)
lib/ project symbol (DRV8353S) and MD80 footprints
better-md80.kicad_dru 60 V clearance rules
docs/
architecture.md spec, what limits the MD80 to 48 V, part selection, power tree
mechanical.md MD80 fit data and what to verify before first power-up
thermal_layout.md loss budget, stack-up, layout rules
firmware.md pin map, clocks, DRV8353 settings, protection thresholds
simulation.md FastHenry / LTspice / MATLAB results and the changes they call for
bom.csv grouped BOM with MPNs
schematic.pdf all sheets
mech/ geometry extracted from MAB's MD80_V3.0_simplified.step
sim/ simulation scripts (outputs in sim/out)
tools/ generators (design.py is the source of truth for the schematic)bash tools/build.shThis rebuilds footprints, schematic, netlist, ERC/DRC reports, BOM, the schematic PDF and
the 3D renders. It leaves the routed PCB alone unless you run it with REGEN_PCB=1, which
regenerates the placement and throws the routing away (see tools/route.md to redo it).
Schematic changes reach the board through KiCad's Update PCB from Schematic as usual.
tools/analyze_step.py needs Python with CadQuery; everything else uses KiCad 10's
kicad-cli and bundled Python.
The KiCad files keep their original better-md80 working name.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 25 | 2.2u 100V | Capacitor_SMD:C_1206_3216Metric | C100, C101, C102, C103, C104, C105, C106, C107, C108, C109, C110, C111, C112, C113, C114, C115 +9 |
| 14 | 100n | Capacitor_SMD:C_0402_1005Metric | C17, C32, C47, C60, C61, C62, C63, C66, C67, C70, C71, C72, C74, C75 |
| 7 | 0 | Resistor_SMD:R_0402_1005Metric | R20, R21, R22, R23, R24, R25, R81 |
| 6 | ISC022N10NM6 | Package_TO_SOT_SMD:TDSON-8-1 | Q1, Q2, Q3, Q4, Q5, Q6 |
| 5 | 100n 100V | Capacitor_SMD:C_0603_1608Metric | C6, C22, C26, C30, C42 |
| 5 | 10k | Resistor_SMD:R_0402_1005Metric | R33, R40, R41, R60, R79 |
| 5 | 1u | Capacitor_SMD:C_0402_1005Metric | C14, C16, C46, C65, C73 |
| 4 | 33 | Resistor_SMD:R_0402_1005Metric | R72, R73, R74, R75 |
| 3 | 1k | Resistor_SMD:R_0402_1005Metric | R61, R62, R80 |
| 3 | 1u 25V | Capacitor_SMD:C_0603_1608Metric | C11, C44, C45 |
| 3 | 2.2 | Resistor_SMD:R_1206_3216Metric | R30, R31, R32 |
| 3 | 2.2n 100V | Capacitor_SMD:C_0603_1608Metric | C23, C27, C31 |
| 3 | 470p | Capacitor_SMD:C_0402_1005Metric | C48, C49, C50 |
| 2 | 0.5m | Resistor_SMD:R_Shunt_Vishay_WSK2512_6332Metric_T2.66mm | RS1, RS3 |
| 2 | 100 | Resistor_SMD:R_0402_1005Metric | R77, R78 |
| 2 | 100k | Resistor_SMD:R_0603_1608Metric | R1, R3 |
| 2 | 10p | Capacitor_SMD:C_0402_1005Metric | C68, C69 |
| 2 | 10u 25V | Capacitor_SMD:C_0805_2012Metric | C12, C40 |
| 2 | 120 | Resistor_SMD:R_0603_1608Metric | R71, R76 |
| 2 | Micro-Fit 2x3 | better_md80:MD80_MicroFit_2x03_RA | J1, J2 |
| 1 | 100k | Resistor_SMD:R_0402_1005Metric | R42 |
| 1 | 100n 25V | Capacitor_SMD:C_0402_1005Metric | C41 |
| 1 | 10k NTC | Resistor_SMD:R_0603_1608Metric | TH1 |
| 1 | 10n | Capacitor_SMD:C_0402_1005Metric | C4 |
| 1 | 16.2k | Resistor_SMD:R_0402_1005Metric | R4 |
| 1 | 2.2n | Capacitor_SMD:C_0402_1005Metric | C7 |
| 1 | 2.2u | Inductor_SMD:L_1008_2520Metric | L2 |
| 1 | 2.2u | Capacitor_SMD:C_0603_1608Metric | C15 |
| 1 | 22u 10V | Capacitor_SMD:C_0805_2012Metric | C13 |
| 1 | 22u 25V | Capacitor_SMD:C_1210_3225Metric | C10 |
| 1 | 3.3n | Capacitor_SMD:C_0402_1005Metric | C8 |
| 1 | 4.7u | Capacitor_SMD:C_0603_1608Metric | C64 |
| 1 | 453k | Resistor_SMD:R_0402_1005Metric | R6 |
| 1 | 453k | Resistor_SMD:R_0603_1608Metric | R8 |
| 1 | 47n 100V | Capacitor_SMD:C_0603_1608Metric | C43 |
| 1 | 47u | Inductor_SMD:L_Bourns-SRN4018 | L1 |
| 1 | 49.9k | Resistor_SMD:R_0402_1005Metric | R7 |
| 1 | 5.0SMDJ60A | Diode_SMD:D_SMC | D1 |
| 1 | 5.1k | Resistor_SMD:R_0402_1005Metric | R2 |
| 1 | 56p | Capacitor_SMD:C_0402_1005Metric | C9 |
| 1 | 680 | Resistor_SMD:R_0402_1005Metric | R70 |
| 1 | 75k | Resistor_SMD:R_0402_1005Metric | R5 |
| 1 | 8MHz | Crystal:Crystal_SMD_3225-4Pin_3.2x2.5mm | Y1 |
| 1 | AS5047P-ATSM | Package_SO:TSSOP-14_4.4x5mm_P0.65mm | U7 |
| 1 | AUX1 SPI enc | Connector_Molex:Molex_PicoBlade_53048-0610_1x06_P1.25mm_Horizontal | J3 |
| 1 | AUX2 RS422 | Connector_Molex:Molex_PicoBlade_53048-0810_1x08_P1.25mm_Horizontal | J4 |
| 1 | BLM18PG221 | Inductor_SMD:L_0603_1608Metric | FB1 |
| 1 | CPC1017N | Package_SO:SOP-4_3.8x4.1mm_P2.54mm | K1 |
| 1 | DRV8353SRTAR | Package_DFN_QFN:Texas_RHA0040B_VQFN-40-1EP_6x6mm_P0.5mm_EP4.15x4.15mm | U4 |
| 1 | Green | LED_SMD:LED_0603_1608Metric | D60 |
| 1 | LM5164DDAR | Package_SO:Texas_HSOP-8-1EP_3.9x4.9mm_P1.27mm | U1 |
| 1 | MAX3490EESA+ | Package_SO:SOIC-8_3.9x4.9mm_P1.27mm | U8 |
| 1 | MD80 v3 holes | better_md80:MD80_V3_Mechanical | MECH1 |
| 1 | Motor NTC | better_md80:MD80_NTC_Pads | J5 |
| 1 | PESD2CAN | Package_TO_SOT_SMD:SOT-23 | D70 |
| 1 | Phase A | better_md80:MD80_Phase_Pad | J10 |
| 1 | Phase B | better_md80:MD80_Phase_Pad | J11 |
| 1 | Phase C | better_md80:MD80_Phase_Pad | J12 |
| 1 | Red | LED_SMD:LED_0603_1608Metric | D61 |
| 1 | STM32G474CEU6 | Package_DFN_QFN:QFN-48-1EP_7x7mm_P0.5mm_EP5.6x5.6mm | U5 |
| 1 | TC2030-NL | Connector:Tag-Connect_TC2030-IDC-NL_2x03_P1.27mm_Vertical | J6 |
| 1 | TCAN1044AVDR | Package_SO:SOIC-8_3.9x4.9mm_P1.27mm | U6 |
| 1 | TLV75533PDBVR | Package_TO_SOT_SMD:SOT-23-5 | U3 |
| 1 | TPS62163DSGR | Package_SON:Texas_DSG0008A_WSON-8-1EP_2x2mm_P0.5mm_EP0.9x1.6mm | U2 |
It measures 56.7 × 54.7 mm and has 6 copper layers, 1.6 mm thick.
144 parts, built around the STM32G474CEU6, MAX3490EESA+, TCAN1044AVDRQ1 and AS5047P-ATSM. 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 darshp848/bldc-controller-60v repository on GitHub, at the commit this page was made from: the board is hardware/better-md80.kicad_pcb and its schematic hardware/better-md80.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository states no licence, so its author keeps all rights: ask darshp848 before reusing the design.

sujaygouda123/foc-control
BLDC field-oriented-control board for a humanoid robot actuator. KiCad 10, Ø80 mm, 8 layers, 1.6 mm.

magic-alt/fpga-servo
This directory preserves the ADS8588S legacy PCB, native project and custom rules from b0172a2f65902c7281cf4a8454f192dc791a9ef9.

WeymenKoo/Motor-Controller
Technical notes from a full design cycle: idea → theory → schematic → simulation → layout → fab → bring-up plan.


ishaansalian/dash-motor-controller
Motor control PCB for the Dash humanoid robot project.



Prinsessen/canfd-mc-hardware
CANFD-MC: a 55 x 32 mm, 4-layer CAN board for a motorcycle (KiCad, JLCPCB-ready) - ESP32-S3 + MCP2518FD CAN FD + TCAN332G, 6-40 V load-dump-proof input, ~10 uA standby on the battery.