BLDC driver form-factor

I’m wondering what the best form factor is for a BLDC control board. Several (many) people in this forum are working on so many variants fo boards for BLDC control, including myself, and each solution is unique in its own way. I’ve made a first attempt, and I’m pretty clear on the fact that the result is not yet what I need. I’ve got lots of ideas where it could go, but I’m not at all clear on which is best, or better said, what the next step should be…

Here’s a pic of my first effort, a simple breakout board for the STSPIN233. Amazingly, it works. It does 3PWM, and the driver chip has all kinds of integrated protections, and its integrated MOSFETs handle up to 1.3A RMS, so it will handle most of the gimbal motors nicely. This version of my board has no current sensing. It is however, quite small. That’s it next to my finger, and a bluepill (clone) for comparison:

Unfortunately, whlle small, its not that convenient to use. The next version will pay more attention to interfacing with the other components of the overall system, because this solution leads to “a mess of cables”.

Some thoughts on this:

  • the SimpleFOC board is cool, and I look forward to seeing the current sensing version, but for my purposes I must admit it is a bit large, and I don’t want to use an original Arduino type board.
  • I’m also very interested in driving more than one motor, but I am not sure I want each one to have a ESP32 like in the Dagor controller David is working on, nor do I want it tied to a specific MCU form factor like the SimpleFOC board.
  • it would be nice to drive a wider range of motors, but this definately requires more advanced protection circuitry and current sensing
  • of course each application is different, and the need to integrate will lead to specific boards for specific use cases.
  • but for reusable modules, and while testing / integrating solutions into a final build, it could be nice to have some more generic approach.

A generic BLDC module form-factor?

What I am wondering is if there could be something like the Polulu stepper motor modules, but for BLDC. The modules are widely used, also because they have a standard pinout. But on the modules there are a few different driver chips that are used.

What would be the benefit? Well maybe different driver solutions could be tested with different power stages and current sensing modules. Everyone could use the MCU of their choice, just with a simple carrier board that connects the Bluepill (or ESP32, or Arduino Mega, or whatever) to the modules. And when you decide to switch driver during development, you could keep the other parts to reuse…
And the setup would be greatly simplified for newbies if things were a bit more standardized.

What are people using them for?

Another question I have is what everyone is using them for? For me it is to build small to medium robots, which I want to build for fun… so I am more interested in smaller motors, and small form factors for the boards. But this might be quite different for other people?

3 Likes

This is a cute board. And i could see a pololu a4988 approach appealing to low power prijects. It would enable prototyping without pcb manufacture.

I’d like to see how this would approach could be adapted for your medium sized robot projects.

1 Like

Thermals is going to be your biggest deciding factor in developing a bldc driver. A driver for a 50W motor is a wholly different than one for a 1kW motor.

You can’t expect 1kW from u less than a thumb-sized driver.
STSPIN233 is operating up to 10V at probably 1 amp.

That’s a fair point, and I have little experience of that - but also something I am saving for a future me to discover. At the moment I’m focused on smaller motors, which don’t need 1kW of power. Its just for “little” robots… That’s also why I’m interested in a small form factor for the solution, otherwise I’d just use the SimpleFOC board and be done.

Incidentally, I’m not the first person to think of this idea… check out the BLDC modules for the “Click Board” format from MicroE: https://www.mikroe.com/click/motor-control/brushless

Unfortunately, none of them will work with SimpleFOC because they are all for 1-PWM or I2C control, i.e. have the BLDC drive integrated… I’m not sure the Click Board format would easily support 6-PWM with current sensing… too few pins. Its more intended for I2C or SPI connected devices, I think.

I’m still thinking about this. One nice format is the “Feather” ecosystem from Adafruit. Making BLDC boards in Feather format would have the advantage of there already being a rich ecosystem of compatible MCU boards, although compared to a BluePill clone or Wemos ESP32 they are of course expensive…

Hey @runger
I love your board!
It would be soo cool to have such a small board but you are right that it’s not clear at all how to approach this problem.
I agree that the reducing the amount of wires is an interesting benefit for this types of boards.
Did you think of integrating the sensor on it as well and make the wires a bit more compact ( one cable 10 wires or something on like that), maybe you just need a fancy connector. :smiley:

Here is one more very small bldc driver based on drv8318 driver. It seems not far from you’re trying to achieve!

Hey cool, thanks for the tip!

Yeah, that module looks a lot like what I was thinking of. Of course I shall order one! I have to admit I don’t like ordering off eBay anymore, too many bad experiences. Much prefer AliExpress these days.

As for integrating the sensor, I did think of that, but I feel David has that direction well covered, and I’m already on the pre-order list for the Dagor controller :slight_smile:
In the meantime I have my own little board of the AS5048 sensor, in both I2C and SPI versions, which I’m using.

It’s hard to decide these things, but I feel for a small robot it might be better to have 1 integrated board in the end, where everything except the sensors is contained one one board, i.e. at least 2 motor drivers with power stage, MCU, battery management, etc… that keeps the cables to a minimum and is easy to use. Having per-Motor controllers with the integrated sensor is (my feeling) better for a middle or large sized robot, and also robot arms and animatronics, where a central board could be too far away from the motors/sensors to make I2C/SPI lines feasible. For those cases David’s integrated sensor form factor is better, I think.

So (and this may change) I think my current goals are:

  • intermediary stage that is for testing and exprimentation, in a “reusable” form factor (as described above) where different drivers could be tested with different MCUs and sensor combinations, without having to custom make new boards each time.
  • a final version which integrates everything more tightly - maybe in feather form factor, or to fit Nano33 / blackpill / ESP32 Wemos modules

But lets see how it goes. I have already changed my mind several times :wink:

2 Likes

this seems pretty perfect for our little swarm robots:) TIll now ive been packing the drv8313 which is quite large. The swarm motors need way less than an amp to run and the lower voltage could be helpful as then I would not need to do any step up from the 2 cell battery…also saving some power.

@runger curious if your also using the current sensing on that board you have made?

Hey, @Adam_Donovan, no the tiny board doesn’t have any sense resistors or current sensing.
I’m working on the next iteration, and am of two minds about whether to include it or not. On the one hand, it would be nice to have a complete BLDC solution, including the current sensing. Many motors exceed the STSPINs fairly low rating, so controlling the current could be very useful.

On the other hand the STSPIN doesn’t do current limiting, so you’d have to add comparators and limiting circuitry externally if you wanted that, or do it in software. Adding all that, and sense resistors, and current sense amps, would use a significant amount of PCB space and you don’t get the principle advantage of the STSPIN - its tiny size.

A compromise could be to include 1-shunt low-side sensing, which could be used to limit current via the MCU, but probably not for current control.

If you have any thoughts on the matter I’d be really interested to hear them!

If current control is desired, I have a new favourite integrated FET driver chip: the DRV8316. It can do up to 3A/8A(peak) and 40V, and has built-in, well, everything, including current sensing and current amps, configurable current limiting, etc… all on 5x7mm, so less space than a STSPIN233 with all the features added in external circuitry, and twice the power!
There’s also the STSPIN830 - haven’t tried it yet, it seems to be somewhere “in between” the other two, both in terms of power and features.

There’s also this design: https://fishpepper.de/2017/03/23/tinypepper-esc-how-to-build-your-own-v0-5/
It’s based on a SiLabs 8-bit MCU and is for the old BLHeli, but the basic design could be adapted to a different MCU. It barely bigger than my board, but includes the MCU and is a 4-in-1 ESC for 4 (tiny) BLDCs! Basic idea is that for such low currents you can directly use logic level FETs and don’t need any driver at all.

The way you describe your small swarm robots, I think we have similar interests - smaller lower powered drivers rather than high-powered ones that take up lots of space (and use lots of power).

I’m working on the next iteration of my design - the STSPIN233 based board will drive at least two motors, I’m thinking about more. How many motors are used in one of your swarm bots, if I may ask?

I’d be very happy to share anything you’re interested in!

1 Like

Currently we use 3 rcx gimabl motors for the drive of the robots. But this will extend to 5 per robot as we are mounting an movable arm. IF you look at our page you can see some black and white images of a design for our robots holding a triangle shaped thingy:)
https://hochschuh-donovan.com/portfolio/empathy-swarm/

1 Like

@runger I sent you a PM.

@runger have you done any stm32 boards before? I am thinking a low power design could go really nice with this. for example a STM32L412KB.

I’ve done a few designs, but none I have dared to put into production so far. The next ESC will be my first with MCU on-board.

I’m tossing up between 3 MCUs atm:

  • ESP32 (PICO)
  • STM32 - but there are so many to choose from!
  • nRF52840

each has its advantages and disadvantages, makes it hard to decide.

I don’t know what it’s like for ESPs, but for the STM32 most of the most popular references today are pretty hard to come by due to a shortage of semiconductors. Something to keep in mind when selecting one because it seems that this issue is not going to be fixed in the short term.

I strongly support this effort! I think there could be a big shift in accessibility if there was a drop in module for BLDC. Definitely important to pick the power range we want to play in as that so strongly shifts the requirements.

The applications I am looking at these days are generally within about 50W for linear motion, and lower speed direct drive. I’m a big fan of throwing an ESP on everything, it’s just cheap and cheerful.

I’m curious on your take of having a drive + motion controller module vs just drive where MCU handles lots of IO and math to plan and manage PIDs.

I’m not exactly sure if this is relevant, but I just ordered one of these to play with!
https://www.digikey.ca/en/products/detail/stmicroelectronics/B-G431B-ESC1/10321670

indeed yes however not impossible to get from aliexpress for now. Mouser looks good for restock of the particular types I would like to use in June or July and thats about the development time I would need.