FocMotorController
Glitch752·focMotorController
About the FocMotorController PCB
FocMotorController is an open source RP2040/RP2350 PCB design by Glitch752, published on GitHub. It is a 4-layer board measuring 72.8 × 52.5 mm, with 55 components from 47 distinct parts.
Its main chip is the Arduino Nano RP2040 Connect, from the RP2040/RP2350 family. Other key parts include the 74LVC2T45DC, C77582, C2960 and C2060769. By type, the board carries 19 resistors, 14 ICs, 9 diodes, 8 capacitors, 3 connectors and 1 module.
From the project
A 12v brushless DC motor controller capable of field-oriented control) (also known as vector control), which is a control system concept that can improve the efficiency and power output of motors using current-based feedback.
A 12v brushless DC motor controller capable of field-oriented control) (also known as vector control), which is a control system concept that can improve the efficiency and power output of motors using current-based feedback.
I wanted to learn how field-oriented control systems (and brushless motor controllers in general) work, so I made a PCB from scratch!
There are a few main components I needed to choose for this project: - MOSFETs: This is pretty much just a tradeoff between efficiency, size, and price. I landed on the STM STP55NF06L power MOSFET, which has a very low static resistance…

Main components on the FocMotorController
FocMotorController bill of materials (BOM)
55 components, 47 distinct parts — part numbers from the project's BOM.
| Qty | Part | Footprint | Refs |
|---|---|---|---|
| 2 | 74LVC2T45DC | VSSOP-8_2.3x2mm_P0.5mm | U1, U2 |
| 1 | C77582 MOSFET A low | STP55NF06L | U3 |
| 1 | C77582 MOSFET B low | STP55NF06L | U4 |
| 1 | C77582 MOSFET C low | STP55NF06L | U5 |
| 1 | C77582 MOSFET A high | STP55NF06L | U6 |
| 1 | C77582 MOSFET B high | STP55NF06L | U7 |
| 1 | C77582 MOSFET C high | STP55NF06L | U8 |
| 1 | C2960 IR2104 Gate Driver A | IR2104SPBF | U9 |
| 1 | C2960 IR2104 Gate Driver B | IR2104SPBF | U10 |
| 1 | C2960 IR2104 Gate Driver C | IR2104SPBF | U11 |
| 1 | C2060769 Amplifier A | SOIC-8_3.9x4.9mm_P1.27mm | U12 |
| 1 | C2060769 Amplifier B | SOIC-8_3.9x4.9mm_P1.27mm | U13 |
| 1 | C2060769 Amplifier C | SOIC-8_3.9x4.9mm_P1.27mm | U14 |
| 1 | Arduino Nano RP2040 Connect | Arduino_Nano | A1 |
| 1 | C157920 JST-PH encoder connection | JST_PH_S6B-PH-K_1x06_P2.00mm_Horizontal | J2 |
| 1 | WJ128V-5.0-3P | WJ128V-5.0-3P | P1 |
| 1 | C8269 Power input | WJ128V-5.0-2P | P2 |
| 1 | C135398 Resettable polyfuse for overcurrent protection | A16-1000 | F1 |
| 1 | C113958 SMAJ15A - TVS diode for voltage spike protection | D_SMA | D1 |
| 1 | MBR1045G | TO-220-2_Vertical | D2 |
Show 27 more
| Qty | Part | Footprint | Refs |
|---|---|---|---|
| 1 | C3646938 Power LED (red) | LED_1206_3216Metric | D3 |
| 1 | C3646937 Status LED 1 (green) | LED_1206_3216Metric | D4 |
| 1 | C3646937 Status LED 2 (green) | LED_1206_3216Metric | D5 |
| 1 | C3646937 Status LED 3 (green) | LED_1206_3216Metric | D6 |
| 3 | C2102 Bootstrap charger | D_SOD-123 | D7, D8, D9 |
| 1 | C47888 470uF electrolytic | CP_Radial_D8.0mm_P3.50mm | C1 |
| 1 | C400087 0.1uF ceramic | C_Disc_D5.0mm_W2.5mm_P5.00mm | C2 |
| 1 | C5375966 Bootstrap A 0.1uF/25v | C_Disc_D5.0mm_W2.5mm_P5.00mm | C3 |
| 1 | C5375966 Bootstrap B 0.1uF/25v | C_Disc_D5.0mm_W2.5mm_P5.00mm | C4 |
| 1 | C5375966 Bootstrap C 0.1uF/25v | C_Disc_D5.0mm_W2.5mm_P5.00mm | C5 |
| 1 | C2927584 Decoupling B 1uF/25V | CP_Radial_D5.0mm_P2.00mm | C6 |
| 1 | C2927584 Decoupling A 1uF/25V | CP_Radial_D5.0mm_P2.00mm | C7 |
| 1 | C2927584 Decoupling C 1uF/25V | CP_Radial_D5.0mm_P2.00mm | C8 |
| 1 | 3.3K 3.3k | R_1206_3216Metric | R1 |
| 1 | 2k | R_1206_3216Metric | R2 |
| 1 | 620OHM 620ohm | R_1206_3216Metric | R3 |
| 3 | 100OHM 100ohm | R_1206_3216Metric | R4, R5, R6 |
| 4 | C25833 Pulldown 47k | R_1206_3216Metric | R7, R8, R11, R13 |
| 1 | C2933621 Gate BH 19.6ohm | R_1206_3216Metric | R9 |
| 1 | C2933621 Gate BL 19.6ohm | R_1206_3216Metric | R10 |
| 1 | C2933621 Gate CH 19.6ohm | R_1206_3216Metric | R12 |
| 1 | C728340 Shunt A 6uohm | R_2512_6332Metric | R14 |
| 1 | C728340 Shunt B 6uohm | R_2512_6332Metric | R15 |
| 1 | C728340 Shunt C 6uohm | R_2512_6332Metric | R16 |
| 1 | C2933621 Gate AL 19.6ohm | R_1206_3216Metric | R19 |
| 1 | C2933621 Gate CL 19.6ohm | R_1206_3216Metric | R20 |
| 1 | C2933621 Gate AH 19.6ohm | R_1206_3216Metric | R22 |
FocMotorController design files
The KiCad project lives in the Glitch752/focMotorController repository on GitHub; these links point at the commit this page was built from.
FocMotorController: common questions
What microcontroller does the FocMotorController use?
The FocMotorController is built around the Arduino Nano RP2040 Connect, from the RP2040/RP2350 family.
How big is the FocMotorController PCB?
The FocMotorController measures 72.8 × 52.5 mm, has 4 copper layers and is 1.6 mm thick.
How many components are on the FocMotorController?
55 components, from 47 distinct parts, with part numbers taken from the project's own BOM. The full bill of materials is listed on this page.
Where can I download the FocMotorController design files?
From the Glitch752/focMotorController repository on GitHub, which has the KiCad layout, the schematic and the BOM; the links under Design files point to each one.
Can I use the FocMotorController design in my own project?
The repository has no license, so all rights stay with Glitch752. Use it as a reference, and ask the author before reusing the design.
Can I test firmware for the FocMotorController without the hardware?
Yes. HardLabs builds a simulation of the board from its netlist and BOM, so you can run and debug RP2040/RP2350 firmware against it before you order a PCB.
Similar boards
RP2040/RP2350
Open Book Abridged Edition
joeycastillo
85 × 115 mm29 parts2LCC-BY-SA-4.08.1kRP2040/RP2350
Corne
foostan
277.2 × 107.5 mm164 parts2LCC-BY-4.07.7kRP2040/RP2350
Corne
foostan
277.2 × 107.5 mm164 parts2LCC-BY-4.07.7kRP2040/RP2350
LogicAnalyzer
gusmanb
57 × 55.2 mm6 parts2LGPL-3.05.0kRP2040/RP2350
Jitx design
gusmanb
55.5 × 65 mm26 parts4LGPL-3.05.0kRP2040/RP2350
Main
google
98 × 71 mm102 parts2LApache-2.02.9k