Quiet motor control without an encoder, gimbal motor

Hey, I am trying to make an open source Energy Recovery Ventilator. Part of the system is a roots blower (animation: Roots Pump Two Lobe - YouTube ) My question is: can I drive a small gimbal motor, about 32 mm diameter (they don’t say the power rating) in a quiet way with this kind of system?

I have searched this forum for info on open loop control, and while it was useful, there are some videos that indicated that there is a lot of noise being produced, somehow.

Fans don’t work because they allow too much air to come through when wind blows against the side of the house, plus the pressure they give isn’t really enough. Finding a suitable centrifugal blower has proved impossible, producing my own roots blower seems to be the best way.

However, I am having major problems getting some affordable, quiet motors.

My plan is to have some “backup gears” on the outside of the enclosure, which prevent the vanes from getting too far out of their ideal positions, and this simplifies things. There is spacing between the two gears such that they have to rotate a few degrees before they actually engage each other. I.e. there is a lot of “backlash”.

Then, there is a photointerrupter that is broken by the tooth of the gear, one for each vane. By detecting when the photointerrupter is broken for each vane, and knowing the RPM, I can tell, relatively, what the position of each vane is relative to the other one of the pair. The arduino can adjust the rpm using a PID loop to make sure the slave vane follows the master precisely enough to prevent the gears from ever engaging, except maybe briefly during start up and shutdown, hopefully.

I think this should work, the problem is getting the noise down to a reasonable level, and also doing it all at a reasonable price. These boards listed on the website are way too expensive and hard to get. I have 2 roots blower, total, so 4 motors, the motors are 3 phase, so if I have 12 half bridges, I should be able to control all the motors? Why can I not just use 6 of these full bridge modules, for $2.6 CAD each? (should be 800 ma each)(1 stücke L9110S DC Stepper Motor Driver Board H Brücke L9110 für arduino| | - AliExpress) Their response time and so on should be adequate, I think? I think they have enough current capacity, each motor should draw about 0.5 amps at 12 volts and 80 percent of it’s max rpm (which is about 3000 rpm at 12 volts). I can add heatsinks perhaps if they are overtaxed.

Do you think this is doable? Would one arduino uno be able to do this? I don’t think it has enough independently controllable pwm pins. Also it has to run the PID loop.

I wish there was just an economically priced board I could use. There are some chips that could be used to make such boards that I have come across, but they are just chips, and gate drivers usually, they need the h-bridges, too.

I can’t use encoders because they are too expensive, at 10 euros each that’s 40 euros I would have to spend just on encoders.

here is a video of my existing system, as you can see it is far too noisy. I am hoping replacing the belt drive will solve this.

these are the most promising motors I ordered. I ordered two each of several motors, but I like this one because air can flow into the motor and cool it, so I expect better power output YUNEEC 12V Mini PTZ Bürstenlosen 2715 Motor Drei phase NdFeB Hohe festigkeit Magnet Doppel Kugellager 3S 4S 180KV Flugzeug PTZ|DC Motor| - AliExpress

also ordered this guy Mini PTZ Bürstenlosen Motor 2208 Äußere Rotor NdFeB DC 12V 260KV für Rc Drone Mobile Kamera Flugzeug Zubehör Doppel kugellager|DC Motor| - AliExpress
and this guy
DC 7,4 V 12V Modell Flugzeug Gimbal Motor 3 phase Bürstenlosen Motor 6mm Hohlwelle 360 Grad PTZ Motor für Überwachung Ausrüstung|DC Motor| - AliExpress

Gimbal motors should be non cogging, so at least that noise source is covered.

After searching around for options, there is listed on the main page documentation the L298N board, which somehow has 3 half bridges, apparently. It’s not actually clear. The silkscreen indicates 3 outputs, though. That is probably the cheapest driver stage option I can find, coming to a total of about $16 for the driver stage for 4 motors, plus the arduino, I will probably have to dedicate an arduino to this task alone, if one is even enough. The challenge will be to make it quiet, then, and that’s if I can get all the details working at all.

1 Like

Those are good motors you found.


You found some inexpensive motors. I’ve tried this one: Mini PTZ Bürstenlosen Motor 2208 Äußere Rotor NdFeB DC 12V 260KV für Rc Drone Mobile Kamera Flugzeug Zubehör Doppel kugellager|DC Motor| - AliExpress
and I didn’t like it. It was a bit “wobbly”.

While these motors are perfectly fine, I am not sure you will get continously 3W out of them, nor 3000 RRM. You’ll have to test. I really don’t think it would work in open loop mode, they will overheat quickly.
They’re also not exactly what I would call low-cogging… gimbal motors have less cogging when they have high pole counts, but these ones only have 6 or 7 pole-pairs.

This is the cheapest driver option I know of. It should work fine for the size motor and power requirements you have. It is inefficient compared to a MOSFET driver, so it gets hot and definitely needs a heat sink. The boards I have all come with heat sinks. It’s not the best option for silent operation as it has slow switching speeds and you won’t be able to use high speed PWM.

I would recommend a BluePill (STM32F103) or BlackPill (STM32F401) rather than a Nano or Arduino Uno - they are much faster MCUs, don’t cost much at all, have better PWM support and more RAM/Flash. RP2040 is another MCU with a lot of power at low cost.
Using one per driver will probably make your life easier.

The problem is the logic the driver applies to the signals. For 3-phase driving you need to drive each phase separately, but most cheap drivers apply logic to the inputs, effectively controlling the half-bridges in a combined way. Here is the truth table for the L9110S:
The truth table for the L298 would be H H H H in the last row…
You might be able to use one of these boards per motor phase, so 12 of them for 4 motors, by using only IA/OA, and tying IB to GND…

Definate no. It has only 6 PWM outputs and can drive only one motor using these cheap boards, since 6PWM lines are needed per motor in such a setup.
Also it is nowhere near powerful enough in terms of speed and RAM to handle 4 motors with SimpleFOC.

In fact you should probably consider 1 MCU per motor when doing 6-PWM control.

:slight_smile: don’t we all! But I would say there are several of us here working on exactly this problem right now!

Thanks a lot for the input! Sounds like I have my work cut out for me :(. Looks like I won’t be using the l298. Hm. I will look into the blackpill, sounds like it is more suitable than the older bluepill. I hesitate to use anything even sligthly off the beaten track though because I find that support quickly evaporates, and I really need the option of googling in case of issues, my skills are a little too weak to make efficient work of solving problems that tend to arise otherwise. If I can get away with it I will probably resort to one arduino nano per motor, they are $6 CAD each from aliexpress. Add the hbridge boards and motor and I am looking at $20 per motor, probably. Crap. That might not be viable.

It’s bad news if these things cog, I won’t be able to solve that noise.

If I get less than 3 watts and 3000 rpm I can still carry on, accepting the reduced airflow rates. I think it will be okay whatever comes around.

It’s conceivable I could drive more than one motor with the same driver, that could get complicated fast but could be viable. They all have to be in close enough to the right angular position. They won’t be able to “skip steps” (It would be similar to driving a stepper motor with one of those silent drivers I guess? but with none of the fancy current limiting or whatever) easily, relative to each other, because of the backup gears.

I found this chip, if you are interested, which implements the FOC driver logic, but it needs the mosfets too, still, it would be good for a board: AMT49406: Code-Free FOC Sensorless BLDC Motor Controller

$2.3 cad per chip (like 1.7 USD). Less in quantity (digi key usually charges extra I think). If it would be suitable for gimbals, that would be a hot application that could sustain sales of the board. One of the boards could be produced with some mosfets maybe, or combined with some other nice boards. There should be better hbridges available for cheap, they are very widely used. Then all we would really need is a little breakout board for this chip, maybe the demo board would be ok. I looked into buying a demo board but they don’t want to tell you the price, probably it’s too much anyway, they tend to charge a lot for demo boards.

Trinamic has a chip, too, but the only boards for it are like 70 USD each, so forget that.

I researched using a 3 channel DAC and op amps, 3 op amps per motor. That could still work at low power, it would waste a lot of power as the excess energy from the voltage reduction is dissipated in the op amp of course, but if I could find a cheap dac it could work, op amps can be had for a dollar each of suitable power dissipation, but I was surprised to find that there seemed to be no cheap DAC boards around. Hm. Bummer. I would have thought they would be cheap. Shit.

I am surprised such an approach is not used for gimbals, it seems like it would give the smoothest motion. I can only assume they have gotten things worked out with more efficient approaches already in the gimbal control boards. Too bad they didn’t make their solution modular so others could use the components for other undertakings with viable efficiency. I am trying hard not to make such a mistake in my own development work. The roots blowers will be modular and reusable for other purposes, a large one would make a good fan replacement.

There are many driver ICs, and quite a few with FOC control. In fact, that may be the best solution for you - then you can control speed and direction using just 2 microcontroller pins, only one of them PWM. With such a driver a Nano really could control 4 motors.

I hate to say it though, because such a driver can’t be used with SimpleFOC, of course, which does FOC in software.

Plenty of chips out there in this space, also Toshiba, Monolithic power, ST-Micro, Texas Instruments, and more.

I don’t think I would try this :slight_smile: but if you do, let me know what happens…

You can build a small driver stage (inverter) with transistor switches (that’s kind of what the L298 is) or FETs. Some FET drivers are maybe able to directly drive small BLDCs, and of course you can misappropriate a number of other half-bridge / driver type ICs intended to drive steppers, DC motors, solenoids, etc… I can’t imagine that any of this would be much cheaper than the cheapest driver+FET type solution though, and would probably have significant disadvantages.

STM32 microcontrollers are hardly off the beaten track… you could always go for an original Nucleo board from ST-Micro. The small ones cost only about twice what a BlackPill costs, and they have Arduino-Nano compatible pinouts and come with documentation and support from ST-Micro.
Or if you like the Arduino boards and the Nano form-factor, a Nano 33 IoT, Nano 33 BLE or BLE Sense will give you all that, but using a up-to-date 32 bit MCU.
If you want to run FOC in software, esp. for multiple motors, you can really use the extra MCU horsepower. Arduino Nanos are slooooow by today’s standards.

But I must state again that IMHO the motor won’t be very quiet in open-loop mode. You’ll have to close the loop with a sensor to get quiet and energy efficient operation. But maybe it depends a bit on the motor. You’ll have to try!

I got a teensy 4.0 and ordered the l298 boards and some 3 phase motors. I want to use the gimbal motors, but I can’t get any in a reasonable time frame. I got some on the way from china but that’s all.

I don’t see why open loop has to be noisier than closed loop? Surely if the sine wave is a good enough approximation then it should be essentially silent. With stepper motors they have various wacky current limiting systems and so on which produce noise, however there is none of that here.

But it does have to be a nice sine wave. That is why I considered the DAC and op amps approach. Hopefully I won’t have to do that, it is expensive, which defeats the purpose. I will test things to see what kind of noise levels I can reduce things to. Capacitors, higher switching frequencies, etc. may all be helpful.

If things really go poorly maybe I can buy a proper VFD… that’s too expensive though. and they might produce noise too. Most things just aren’t designed to be low noise, it is very hard to achieve.

Still working on this. No success thus far. I would use a chip as mentioned above, but I can’t be making my own PCB and I can’t find any boards that use those chips anywhere. I am having problems with overheating and jerky motion with the l298N board. Jerky motion open loop with a gimbal motor, arduino nano and L298N - #2 by Anthony_Douglas