Hot Dog! Scary new BLDC board, are you brave enough?

Hey, back to the topic of the Hot Dog…

I’ve been playing around with tiny design ideas, inspired by the Hot Dog, and trying to see how small a board can be…

I’m just not understanding how this works - I know I have just the picture and parts list, it would be interesting to see the schematic… are you actually using the TDM3412?

Because to my understanding, the MCU runs at 3.3V, while this MOSFET has VGS ±20V. The MOSFET is dual-N-channel. So I can see how you can switch the bottom channel, although I would assume the MCU can’t provide enough current (or will burn in the attempt to provide it)? Wouldn’t you need a gate resistor to limit the current? But in any case, with threshold voltage of 1.8V you have 1.5V headroom to switch on the low side FET…

But for the high side, don’t you need a charge-pump? If the supply voltage is say 20V, how does the MCU provide >21.8V to switch on the high side FET? Conversely, with gate voltage of 3.3V this would limit your supply voltage to <1.5V?

Or is my understanding of all this quite wrong?

1 Like

Here’s my attempt so far:

It’s a 12.5 x 17.5mm BLDC controller with on-board MCU and sensor, for mounting on a motor.


  • Should work for 4.5-18V, max 1-2A
  • STM32G431 MCU
  • MA782 sensor
  • Current sensing via MCU’s built-in opamps
  • USB/Serial, CAN, I2C, SWD (all TTL, just the MCU pins, transceivers etc to be supplied externally)
  • Needs separate input of 3.3V for MCU/logic

There are a number of things that still need to be worked out, and I have not routed it yet (although it looks like it may be possible :slight_smile: )!

The MOSFETs used have to be P-Channel/N-Channel types, P-Channel for the high side. The concept is to use the tiny MIC4414/MIC4415 low-side FET drivers to drive both sides of the MOSFETs. The 4415 (inverted input) drives the P-Channel. The VGS rating of the FET limits the max supply voltage permissible so the supply voltage can be used directly to switch the FETs.
One of the things I’m unsure of is whether I can use the N-Channel driver IC to drive a P-Channel FET in this way, but so far I have not discovered a reason why not…

For the current sensing, I currently have an inline configuration, but I’m not sure it will be easy to bring the common mode into the MCU’s range (only VSSA to VDDA :frowning: ). So I think I’ll have to change it to a low-side sensing configuration, which will make the routing more difficult. If anyone has any ideas for how to handle the common mode issue, I’d be intested to learn!

For the board size, I think I will have to make it a little larger to make the phase pads easier to solder… also, I know that it can’t be produced as pictured, with castellations on all sides… the plan here is to add a removable “daughter-board” with the USB and SWD ports so it is easy to program it initially. Then, once programmed it can be cut away from the daughter-board to make it tiny-small. :slight_smile:

I think I might make it a little longer, and use some 3x3mm FETs which should bring the power up quite a bit. The current FETs are small, but not ideal. As it stands it would be better to use a small driver IC than the discrete FETs, so that should be improved.

Note that this design will not be cheap to produce. It will need tiny vias, probably will need blind vias, has a BGA MCU and will need at least 4 layers, maybe 6… so I am not sure I will really complete and produce it as is.

Feedback is welcome!

2 Likes

Not sure. Specs say i dont. Thats why I want to make only the power stage, else its hard to test. But you are correct I need to overcome the high side voltage. This is just a toy right now.

looks amazing

О_о I even took a ruler to understand how small the board is :slight_smile:

Do I understand correctly that a separate solution with power transistors and a power measurement circuit in comparison with a ready-made driver in the form of a single microcircuit is done to reduce the cost?

Or to have more flexible options for current and voltage sensing per phases?

I don’t quite understand this, can you explain more?

In the case of a remote position sensor, how long can the interface for connecting to the MCU be?

I would like to avoid installing the board on the motor, because it heats up and the power section of the board heats up.
In the case of a separate controller board, you can make perfect cooling for it and cooling for the motor, but maybe I’m wrong?

It would be great to see schematic board for better understanding how it works.

Great, very interesting and educational. Do you have a schematics? Can’t really tell much from the layout.

Cost could be a reason - this solution uses fairly cheap ICs - the FET drivers are around 60c each, the MOSFETs also <$1. Most drivers cost more than $4, and still need external components in addition.

I think the main reason to do it is that the integrated drivers can do up to 5A or so for some models, but not more. But a discrete MOSFET solution could do 40A or even more, depending on the FETs and cooling solution. But my design currently doesn’t achieve that, so it still needs some work :slight_smile:

Another reason could be the current semiconductor shortage - many driver ICs just aren’t available.

No, even if your driver has current sensing you’re not forced to use it. And you can use your own sense resistors and opamps or current sensors instead. Inline sensing is always achievable, and low-side sensing can be done depending on the exact driver model.

Sensors need to be fast and low latency, so a good protocol is SPI or SSI. But these protocols are intended for on-PCB communication, and aren’t really designed for longer signal paths via wires. Practically speaking, 10-30cm is realistic. Usually you have to lower the SPI clock speed somewhat (i.e. 20MHz won’t work over cables, but 4MHz might). The connection is sensitive to noise. If you can shield the cables, and run them twisted around GND lines you might be able to improve things.
There’s some other threads in the forum on this topic you might find interesting as well.

I think your intuition is correct that if you are pushing performance then heat is a big problem. At low torque levels the FOC control means low currents and low heat. But if you push the motor, heat is just part of the game.

I would have assumed in your application cooling is no problem since moving air is always available?

I’ll post the schematic from my other PC in a moment. As I mentioned, it isn’t finished though!

1 Like

Current state of the schematic, unfinished!

Note: don’t build this as is! It really is untested an unfinished - the sense resistors should have different values, etc…

1 Like

This is the best explanation i have ever seen!
It seems now I understand the architecture I need

How about to use this for current sensing?

No need additional components, power, shunts.
Complitelly protected MCU from current it measures current only when the transistor is on, and turns off protecting the microcontroller pins when the transistor is off.
This can solve the problem of burning off the ground at the shunt resistor.

Very nice! I learn new components all the time, I hadn’t seen this one before.

in the context of the PicoESC it is perhaps a bit big, but in any other context it is actually quite small.

As I mentioned, I don’t think I’ll actually finish and produce the pico - its a bit too small, and it will be expensive.

But I think I might try designing a slightly larger, more practical version, and those sensors look like something one could try out! They’re even less expensive than a shunt resistor…

Interesting solution, however think about that you need 6 of these and create a mid-point for bidirectional sensing with a diode each, or need 6 ADCs (still needs a diode) to create custom inline sensing logic, or use 3 for high or low side, still need the sensing logic. That sensor is unidirectional and measures a single mosfet.

Yeah, it only replaces the shunt resistor, and will still require amplification… but its also very cheap. Cheaper than a precision high wattage sense resistor. It’s only good for high(?) or low side sensing, using the FET itself as the sense resistor, so to speak. I think the intention is low-side. Inline sensing won’t work with this.
I think the advantage may be the fact that you don’t have any sense resistor needed, wasting power in heat and changing the motor’s impedance. I’m not sure what the disadvantages are, but I’m sure there must be some of those too… its always a trade-off, isn’t it?

True. However, how is this any different than a low cost Hall-based current sensor?

This one is 50 cents, in stock, bidirectional (inline possible), no common mode limit, and available for SMD.

The hall-based sensors I learnt about from your previous posts, they’re awesome!
I would say the difference is the Hall-based one can also be used in inline sensing, but it is a little larger, which is probably not relevant normally, but for Hot Dog sized designs obviously makes a difference.

The new hall current sensor are very small, but all are out of stock. What we see are the old big ones, no one wants to buy. Go to Allegro and check what they make. Some are really small.