My previous attempt at building a brushless driver didn’t work out so well. There were a few mistakes in the PCB design that were hard to fix, so this is the second attempt, which I decided to approach a bit differently.
Splinting things into "modules"
The original design was a single PCB that contained both the TMC6200 driver and the microcontroller. This time, I decided to split the new design into separate boards, each containing part of the overall “system”.
- It’s easier to fix or replace a specific board if something goes wrong.
- It allows me to experiment with different microcontrollers.
- It also allows me to test the TMC4671, which is a hardware FOC driver, without needing to make it a permanent part of the setup.
- d̶e̶f̶i̶n̶i̶t̶e̶l̶y̶ n̶o̶t̶ m̶y̶ s̶u̶b̶c̶o̶n̶s̶c̶i̶o̶u̶s̶ b̶e̶i̶n̶g̶ a̶f̶f̶e̶c̶t̶e̶d̶ b̶y̶ t̶h̶e̶ o̶v̶e̶r̶u̶s̶e̶ o̶f̶ m̶i̶c̶r̶o̶ s̶e̶r̶v̶i̶c̶e̶s̶ i̶n̶ t̶h̶e̶ s̶o̶f̶t̶w̶a̶r̶e̶ d̶e̶v̶e̶l̶o̶p̶m̶e̶n̶t̶ w̶o̶r̶l̶d̶.
- It looks cool ?

ThunderMini: TMC6200 Driver Board ( what this post is about )
This is the main driver board that contains the TMC6200, the MOSFETs, and the other necessary passive components, but no form of control or power regulation. You can think of it like the H-bridge modules you can get for DC motors.
Thunder4671 : TMC4671 Control Board
This board contains the TMC4671, which is a hardware FOC driver also made by Trinamic. This chip has some interesting features and will be worth comparing to software-based solutions (this will be discussed more in the next blog post).
ThunderSTM32 : STM32 Control Board
This board contains an STM32G473 microcontroller and a few other peripherals such as a CAN bus transceiver, a multi-color LED, and power regulation, etc.
This board can either control the driver board directly using software-based FOC, or control the TMC4671, which in turn controls the driver. The TMC4671 handles the FOC part, but it still requires a lot of configuration and control to be usable.
All of these boards basically slide into each other and are held together using standoffs and screws resulting in a stack of either 1, 2 or 3 boards based on the configuration of choice.
( yes i know that technically 1 board on its own is not a stack )The Driver ( ThunderMini )


As mentioned, the driver is still based around the TMC6200, which is a “universal high-voltage BLDC/PMSM/servo MOSFET 3-half-bridge gate driver with inline motor current sensing.” It essentially takes care of driving the MOSFETs and also has built-in current sensors.
I put together multiple versions of the PCB using two different MOSFET variants:
- BSC014N06NS – lower resistance but more expensive
- BSC028N06NS – higher resistance but cheaper
Keeping in mind that this was back in 2022/2023, both parts were more expensive at the time and had a larger price gap between them. Both are more than capable of handling the loads I’ll be running; the main difference is that one will produce less heat. At the time, I wasn’t very confident in how well my cooling and heatsink setup would perform.


Front & Back
The TMC6200 has many configurable elements, such as gate drive current, protection thresholds, current amplifier gain, input pin modes, and more. Some of these can be configured by pulling specific pins high or low. However, for maximum control and access to all features, the driver can be run in SPI mode, where most settings can be configured through SPI registers, while also providing error and debugging information.
My design supports both approaches by using solder jumpers on the bottom of the board.
Interactive Schematic View:
Conclusion
This driver board is meant to be a flexible building block, not tied to a specific controller or control method. In the next posts, I’ll look at the two different ways I’m driving it: using the TMC4671 as a hardware FOC controller, and using an STM32 running software-based FOC.
I’ll talk about the pros and cons of each approach, what it actually takes to get them running, and the issues I ran into during bring-up and testing.
I also added TMC6200 SPI support to the SimpleFOC-Drivers project to make integration a bit cleaner, which I’ll touch on in the context of the STM32 setup.

The hardware files for all the boards can be found in the Github Repo.