

Moco pg4
PMSM/BLDC motor controller/driver PCBs
- Size
- 40 × 40 mm
- Copper layers
- 4
- Thickness
- 1.6 mm
- Parts
- 101
- Nets
- 90
- Pads
- 589
- Tracks, vias
- 410, 81
- Pours
- 14
- Routed
- Yes
- KiCad
- KiCad 7 (file 20221018)
- Created
- 7 Dec 2022
- Updated
- 18 May 2024
Overview
Moco pg4 is an open-source printed circuit board by ziteh, from the ziteh/moco repository on GitHub, published under the CERN-OHL-P-2.0 licence. It is a 4-layer board of 40 × 40 mm with 101 parts on 90 nets, routed with 410 tracks and 81 vias.
It is built around the STSPIN32G4, TCAN337D and STPS0560Z. Its parts include 35 capacitors, 32 resistors, 8 connectors, 6 transistors and 3 ICs. It belongs with the robots and motor control boards and the STM32 boards of this library.
Main components
3STSPIN32G4
VFQFPN-64(9x9)-40℃~+125℃ 1A 3 5.5V~15V I2C、SPI、UART、CAN No Three Phase VFQFPN-64(9x9) Brushless DC (BLDC) Motor Driver ROHSSTMicroelectronicsIntelligent Power Modules (IPM)TCAN337D
SOIC-8-40℃~+125℃ 1Mbps 2.5mA 3V~3.6V 60mA CAN Transceiver SOIC-8 CAN Transceivers ROHSTexas InstrumentsCAN TransceiversSTPS0560Z
SOD-1231 Independent 5.5A 500mA 50uA@60V 530mV@500mA 60V SOD-123 Schottky Diodes ROHSSTMicroelectronicsSchottky Diodes
README
hardware/moco-rd321/readme.mdmoco-RD321
- 6.7V~35V, 12A
- 3-Phase low-side current sensing. OP-Amp Gain=6.74, Shunt resistor=20mΩ
- Overcurrent detection. Ith=30A @ OC_COMPth=500mV
- Input voltage sensing
- 32x32mm square PCB, 4xM2 mounting holes
- STSPIN32F0A 3-phase gate driver with embdded MCU SiP
- STM32F031C6 48MHz, 4KB SRAM, 32KB Flash
- 600mA sink/source gate drivers, integrated bootstrap diodes
- 12V LDO and 3.3V buck
- SiZ250DT Dual N-MOSFET, 60V, 38A, 3.3x3.3mm
- MA702 magnetic encoder, SPI
- 2x04 2.54mm Pin header for debug, JST SM03B-SRSS-TB 1x03 for Serial and I2C
Pinmap
| Description | Analog IC | STM32 | STM32 Func |
|---|---|---|---|
| High-side U | HS1 | PA8 | TIM1_CH1 |
| High-side V | HS2 | PA9 | TIM1_CH2 |
| High-side W | HS3 | PA10 | TIM1_CH3 |
| Low-side U | LS1 | PB13 | TIM1_CH1N |
| Low-side V | LS2 | PB14 | TIM1_CH2N |
| Low-side W | LS3 | PB15 | TIM1_CH3N |
| OC threshold select 1 | OC_TH_STBY1 | PF7 | Push-pull output |
| OC threshold select 2 | OC_TH_STBY2 | PF6 | Push-pull output |
| OC protection selection | OC_SEL | PA11 | Push-pull output |
| OC comparator output | OC_COMP_INT | PB12 | TIM1_BKIN |
| OC comparator output | OC_COMP_INT2 | PA12 | TIM1_ETR |
| Current sense U | OP3O | PA0 | ADC_IN0 |
| Current sense V | OP2O | PA1 | ADC_IN1 |
| Current sense W | OP1O | PB1 | ADC_IN9 |
| VM sense | -- | PA4 | ADC_IN4 |
| SPI SCLK | -- | PA5 | SPI1 |
| SPI MISO | -- | PA6 | SPI1 |
| SPI MOSI | -- | PA7 | SPI1 |
| SPI nCS MA702 | -- | PA15 | |
| USART Tx | -- | PA2 | USART1 |
| USART Rx | -- | PA3 | USART1 |
| I2C SCL | -- | PB6 | I2C1 |
| I2C SDA | -- | PB7 | I2C1 |
| SWDIO | -- | PA13 | |
| SWCLK | -- | PA14 | |
| Connected to GND | -- | BOOT0 | |
| User LED (Red) | -- | PF0 | Active HIGH |
| 12V indicator LED (Blue) | -- | -- |
- Unused GPIOs inside the package should be config to output low: PB0, PB2, PB3, PB4, PB5, PB8, PB9, PB10, PB11, PC13, PC14, PC15.
- OC_TH_STBY1 and OC_TH_STBY2 should be HIGH for 500mV OC threshold.
- For analog IC, the GPIO input config without pull-up or -down is always allowed.
PCB
Jumper
If input voltage (i.e. VM)<15V then close SB1 to connect VM pin and VREG12 pin.
Board Characteristics
- Copper layer count: 4
- Board overall dimensions: 32 x 32 mm
- Min track/spacing: 0.13 mm / 0.13 mm
- Min hole diameter: 0.3 mm
- Castellated pads: No
- Edge card connectors: No
- Plated board edge: No
- 1oz copper
SPI
MA702 encoder SPI:
- Mode:
- 0 (CPOL=0, CPHA=0) or 1 (CPOL=1, CPHA=1)
- Data sampled on first edge
- 16-bit data frame
- MSB first
- nCS pin active low
- 25MHz clock
MCU
| STSPIN32x | F0 | F0A | F0B |
|---|---|---|---|
| Operating voltage | 8~45V | 6.7~45V | 6.7~45V |
| OP-Amps | 4 | 3 | 1 |
| GPIOs | 15 | 16 | 20 |
| BOOT0 pin | -- | Yes | Yes |
| 3FG decoding logic for Hall sensors | Yes | -- | -- |
| Comparator | OCP | OCP and current control | OCP and current control |
| Package | QFN 7x7mm 1EP | QFN 7x7mm 1EP | QFN 7x7mm 1EP |
Solved: STSPIN32F0 vs STSPIN32F0A vs STSPIN32F0B - STMicroelectronics Community
Reference
- qwertpas/O32controller: Miniature closed-loop controller for brushless DC motors
- STspin32G4 support - hardware support - SimpleFOC Community
- ST AN5397 "Current Sensing in motion control applications"
- ST AN4999 "STSPIN32F0/F0A/F0B overcurrent protection"
- ST DB3364 "STEVAL-SPIN3202: STSPIN32F0A advanced 3-phase BLDC driver with embedded STM32 MCU single shunt evaluation board"
- ST DB4049 "EVALKIT-ROBOT-1: Compact reference design kit for robotics and automation based on STSPIN32F0A"
- ST DB3798 "STEVAL-ESC002V1: Electronic Speed Controller reference design based on STSPIN32F0A"
- TI SLUA887 "Bootstrap Circuitry Selection for Half-Bridge Configurations"
- Diodes DN1156 "Gate Drivers in BLDC Motors"
Parts
101| Qty | Value | Footprint | References |
|---|---|---|---|
| 12 | 10uF/50V | Capacitor_SMD:C_0805_2012Metric | C23, C24, C25, C26, C27, C28, C29, C30, C31, C33, C34, C37 |
| 9 | 100nF | Capacitor_SMD:C_0402_1005Metric | C3, C4, C5, C8, C9, C11, C16, C19, C22 |
| 6 | 1.78k | Resistor_SMD:R_0402_1005Metric | R12, R15, R20, R23, R28, R31 |
| 6 | 10R | Resistor_SMD:R_0402_1005Metric | R9, R10, R17, R18, R25, R26 |
| 6 | 24k | Resistor_SMD:R_0402_1005Metric | R11, R14, R19, R22, R27, R30 |
| 6 | DMTH4007SPS | moco:PowerDI5060-8 | Q1, Q2, Q3, Q4, Q5, Q6 |
| 6 | NetTie_2 | NetTie:NetTie-2_SMD_Pad0.5mm | NT1, NT2, NT3, NT4, NT5, NT6 |
| 4 | 220nF/50V | Capacitor_SMD:C_0805_2012Metric | C7, C14, C17, C20 |
| 4 | MountingHole | MountingHole:MountingHole_2.2mm_M2_ISO14580 | H1, H2, H3, H4 |
| 3 | 100nF/50V | Capacitor_SMD:C_0402_1005Metric | C15, C18, C21 |
| 3 | 10k | Resistor_SMD:R_0402_1005Metric | R2, R5, R6 |
| 3 | 12k | Resistor_SMD:R_0402_1005Metric | R16, R24, R32 |
| 3 | 20mΩ/3W | Resistor_SMD:R_2512_6332Metric | R13, R21, R29 |
| 2 | 1k | Resistor_SMD:R_0402_1005Metric | R7, R8 |
| 2 | 1uF | Capacitor_SMD:C_0402_1005Metric | C10, C12 |
| 2 | 6.8pF | Capacitor_SMD:C_0402_1005Metric | C1, C2 |
| 2 | CAN | Connector_JST:JST_SH_SM03B-SRSS-TB_1x03-1MP_P1.00mm_Horizontal | J2, J8 |
| 1 | 100k | Resistor_SMD:R_0402_1005Metric | R3 |
| 1 | 10uF | Capacitor_SMD:C_0805_2012Metric | C13 |
| 1 | 10uF | Capacitor_SMD:C_0402_1005Metric | C6 |
| 1 | 120R | Resistor_SMD:R_0402_1005Metric_Pad0.72x0.64mm_HandSolder | R1 |
| 1 | 18uH | Inductor_SMD:L_Taiyo-Yuden_MD-3030 | L1 |
| 1 | 1uF | Capacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolder | C36 |
| 1 | 22k | Resistor_SMD:R_0402_1005Metric | R4 |
| 1 | 24MHz | Crystal:Crystal_SMD_3225-4Pin_3.2x2.5mm | Y1 |
| 1 | A | moco:wire_2.2mm_rectagnel | J5 |
| 1 | B | moco:wire_2.2mm_rectagnel | J6 |
| 1 | Blue | LED_SMD:LED_0603_1608Metric | LD2 |
| 1 | C | moco:wire_2.2mm_rectagnel | J7 |
| 1 | Debug | Connector_PinHeader_2.54mm:PinHeader_2x04_P2.54mm_Vertical | J1 |
| 1 | GND | TestPoint:TestPoint_Pad_D1.0mm | TP1 |
| 1 | MA702 | Package_DFN_QFN:QFN-16-1EP_3x3mm_P0.5mm_EP1.75x1.75mm | U3 |
| 1 | RESET | Button_Switch_SMD:SW_SPST_EVQP7C | SW1 |
| 1 | Red | LED_SMD:LED_0603_1608Metric | LD1 |
| 1 | STPS0560Z | Diode_SMD:D_SOD-123F | D1 |
| 1 | STSPIN32G4 | moco:VFQFPN 9X9X1.0 64 PITCH 0.5 | U1 |
| 1 | TCAN337 | Package_TO_SOT_SMD:SOT-23-8 | U2 |
| 1 | V+ | moco:wire_2.2mm_rectagnel | J3 |
| 1 | V- | moco:wire_2.2mm | J4 |
Questions
How big is the Moco pg4 PCB?
It measures 40 × 40 mm and has 4 copper layers, 1.6 mm thick.
What parts does the Moco pg4 use?
101 parts, built around the STSPIN32G4, TCAN337D and STPS0560Z. 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 Moco pg4 KiCad files?
From the ziteh/moco repository on GitHub, at the commit this page was made from: the board is hardware/moco-pg4/moco-pg4.kicad_pcb and its schematic hardware/moco-bkd8316/moco-bkd8316.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Moco pg4 design in my own project?
Its repository publishes it under the CERN-OHL-P-2.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).
More from ziteh/moco
5- 4 layers

- 4 layers32 × 32 mm

- 4 layers

- 2 layers

- 2 layers35.5 × 41 mm

Similar boards
- 4 layers80 × 80 mm

- 4 layers40 × 40 mm

Ziteh moco moco sc1
punkfab/pcb-corpus
235 real KiCad boards from open-source hardware repositories, prepared as a placement and routing benchmark
118 parts1 - 2 layers191.3 × 181.7 mm

IO Card G3
PerMalmberg/IO-Card-G3
This is my custom I/O card, third generation. Main purpose is to serve as an alarm system.
400 parts7MIT - 4 layers77 × 127 mm

- 8 layers50 × 43.3 mm

FOC CONTROLLER V1
mathieupommery/ESE_2526_ROBOTCHATDELAMUERTE
We first wanted to make a three omniwheeled robot with FOC control on brushless motors.
297 parts1 - 4 layers58.9 × 48.4 mm

Apppd
chithigun23/ANUFS-APPPD
An update to the Accelerator Pedal Position Plausibility Device to remain compliant with the use of a paddle shift system.
103 parts - 4 layers80 × 80 mm

Telemetry
chithigun23/ANUFS-Telemetry
To use custom hardware to measure parameters and dynamics of an ICE Formula SAE car.
159 parts - 2 layers82.5 × 49 mm

Obd2dash
EthanPope07/obd2dash
An ESP32-S3 CAN-to-BLE bridge for an iPad vehicle dashboard. The firmware discovers each ECU's supported current-data PIDs and forwards complete raw responses through a versioned BLE GATT stream.
22 parts