Yet another high-power 50A integrated BLDC Board

Posting my high-power integrated BLDC development board. Got it down to about $30/board.

If anyone is interested, I’d be grateful for reviews/comments. Any input is appreciated. Yes, I know there are some issues with this driver, however, I need low PWM, so it’s OK for my purpose.

I’ve made the schematics public. I am still testing the other board, but once I am done, in two weeks I will order this one. As said, please let me know if you have any input/feedback. I managed to squeeze it on a 5x5cm board, about the size of a matchbox.



It’s been along time since I visited simple foc.
Do you or anyone else have a foc board that does step and direction with encoder.
I’ve built a linear tubular bldc motor.
Looking at implementing it into a 3d printer.
Thanks in advance.
Simon Laker.

From the very little I know about this you need a board to drive a brushless linear stepper actuator with a step counter? How many phases your actuator has?

It’s a 3phase bldc.
Running on 24v , will be running on 48v
The tube holding magnets has 48 magnets.
6coils in the winding.
Have a linear encoder magnetic for closed loop.
Made all by myself.
I’m a electric motor rewinder.
So redesigning and winding motor no problem.

Interesting, that’s a complete custom hardware.

IMO, without detailed engineering schematics, a sample hardware motor for testing, and set of requirements I don’t believe anyone on this board can help you. This is beyond a hobby effort.

Also, it seems like a re-write of the algorithm to account for limits on both ends.

Thank you for taking the time to respond.
I’m just trying to keep my options open.

I have a odrive and am trying to implement it with this machine.
It’s not really set up for linear motors but I’m giving it a crack.
Even redesigned windings for low resistance to get it closer to there requirements .

Back to the topic. I am revising the board. Will post an update once I’ve fabbed and tested. Replaced the G030 with F103, and added current sense. Removed the pots, no space. Replaced the USB connector to Micro one in stock. Also increased the capacitor buffer and added a vanity label. All signals were rerouted. Probably add a thermistor for temperature check.

Since the board is getting rather messy I am fabbing separate panels to test one by one and will order a full board once each panel passed separately.

I’d add a driver for a 12V fan. And, if you will be using the board inside a housing the connectors should face outward. An onboard potentiometer may not be a big bonus, but if it had an external connection you could build a custom servo with it.

That’s a great suggestion, except I would go for a 3.3v fan, 12V driver just for the fan would not fit anymore. The board is a very tight squeeze as it is. The current 3.3v can supply up to 1.5A, plenty for a fan. Or I could go liquid cooling but that’s insanely expensive (Fluorinert) and mechanically complex (added fluid lines). I can squeeze a fan connector next to the LED.

The housing actually will be “inside-out” with cutouts, that’s why the connectors are facing outward, but that’s also a good catch, thanks.

Edit: The cooling will be on the back with thermal vias and a large heatsink.

Edit2: There we go. Thermistor and fan connectors added.

1 Like


I read your previous post about the IFX007T where you mentioned that the device gets extremely hot after using it for a few minutes. So, in this current design is it resolved? I just tested simple FOC on the IFX007T eval board. I faced a similar problem i.e. device temp rising rapidly. I am using Arduino mega 32 KHZ for testing. If you have found the solution kindly can you share?


Set pwm frequency 10khz or lower. On some arduino this is impossible; you may need to change mcu. Also get a big heatsink.

Thanks for your reply. Apologies for asking too many questions. As in Arduino, we are unable to change the PWM frequency. So, now I am using the STM-32 Nucleo board and it says that its PWM frequency is configurable but the driver.pwm_frequency command is not working. Can you please advise how were you able to achieve 10 KHz frequency on ST controller. I am using Platform io. IDE.

how do you know is not working? did you confirm with an oscilloscope? also, please post the code. thanks

Yes, I checked with the Oscilloscope. Now using Stm32duino I was able to change the frequency. After checking at a different frequency, I think these ICs are not ment for BLDC. At 10 kHz and lower the heat dissipation is low but clearly can hear high pitch noise and at 20 kHz there is no noise but the IC starts to get hot in a few minutes. I am thinking to run the motors using DRV8305 IC.

Many thanks for your help.

Moid Khan

the noise is from the low quality capacitors and bad motor windings not from the chips themselves

Just had chance to comment better.

The IFX007 and its twin BTN8982 are meant (designed) exactly for BLDC. On my demo board I don’t get any noticeable noise. It’s what’s connected to the board that makes the difference. Also, you cannot drive the ICs without a heatsink. They are designed to run with a heatsink. In addition, the production grade boards are sealed, and you won’t get any noise out anyway.

The real source of the noise is either capacitors or motor coils, or both. High quality motors have also sealed coils, so you won’t hear noise there. Cheap ones sing like loudspeakers. Actually, I’ve seen somewhere someone was jokingly making a cheap BLDC play music.

Hope this is helping.


Updated the board for INA225 due to INA240 shortage. Once I order and fab and test will post public link.


Many thanks for your comment and explanation about the noise. I will try to change the caps and will check. I was driving these IC In drive-alone code. So, the motor was not connected. AT 10 kHz the IC works fine except for the high pitch noise.

Thanks for sharing your board, it helped me in understanding the board development along with the in-line current detection. I am now making this current sense setup for my project using the DRV8202 driver. Currently, my board is messed up but once everything is working I will share my board.

Moid Khan


Welcome. It is easy to design a board that works for educational needs. However, designing a production grade board take a lot more effort and it’s a lot more expensive (we are talking tens of thousands $) exactly due to all these issues. It’s a well known 80/20 rule of engineering design, it takes 20% effort to get 80% functionality and 80% effort to get the other 20% done. Except in hardware design it’s more like 90/10 or even worse. And it just happens that these 10% are the ones that from end use perspective are the critical ones, such as noise, heat dissipation, and signal quality. That’s why the industrial motor driver boards cost $1000 per board. And the ones you buy off aliexpress cost $10.

On the capacitors selection, you may want to consider tantalum capacitors for the critical components.
The solid tantalum electrolytic capacitors offer the highest capacitance per unit volume (CV product). Only the dual layer or supercapacitors have higher CV products. In the 1 μF range, ceramics are still smaller and have lower ESR than tantalums, but solid tantalum capacitors do not suffer as
much from the effects of temperature, bias, or vibration. Tantalums cost several times as much as a ceramic capacitors, but in low noise applications where the piezoelectric effect cannot be
tolerated, tantalums are often the only viable choice.

On my boards, once I’ve finalized the design, I’ll replace all critical capacitors with tantalum.

Tantalum caps have the bad habit to keep burning once they catch fire. Plus they are very expensive. I’ve used a combination of alu-elco’s and ceramic caps with good results.

When you design something you can learn from other people’s work. ( just take it apart ) When something is mass-produced, you can bet that a lot of effort was put into designing it. And you can always stay on the safe side instead of trying to find the limits of reliability.