1
\$\begingroup\$

I am creating follow focus system (motor with gears that moves camera lens ring). I think the best choice is BLDC motor (DC geared are too loud, stepper don't have enough torque or too big).

I need a motor to rotate at ~100RPM. The torque needs to be at least 1kgcm. I found some bldc motors that satisfy my needs (like emax 66KV + magnetic encoder for feedback) - most of them are used in gimbal systems.

Now onto the controller. It needs to be small - not bigger than 4cm in any direction. I believe 10W is more than enough. I'd like to be able to power it with 5V - directly from power bank - there is no need for more voltage since it is low RPM low torque project. I did some research and couldn't find any drivers that satisfy those requirements. They are either too big or require at least 7.2V to be powered (RC escs).

I therefore think the only way is to create my own controller. I based it off of this solution (https://simple-circuit.com/arduino-sensorless-bldc-motor-controller-esc/).

My questions are:

  1. Since I am using 5V to power motor and arduino also outputs 5V from its pins can I skip IR2104S gate drivers? 4.3V should be enough motor voltage.
  2. 6 mosfets bridge take up a lot of space. Is there an IC that provide same functionality? As stated before the motor should only need about 10W.
  3. If you notice any mistakes in my plan or explantions let me know
\$\endgroup\$
15
  • 2
    \$\begingroup\$ MCU pins provide voltage but nearly no current. An LED is about the limit. Is your motor weaker than an LED? \$\endgroup\$
    – DKNguyen
    Commented Jan 2, 2020 at 16:32
  • \$\begingroup\$ Rather than starting with an Arduino you'd probably be better off finding a little single-cell drone ESC to re-flash with a customized open source firmware. You'll probably have trouble finding an affordable IC which can handle your current needs; that said its unclear if your project is going to work mechanically, perhaps try it before worrying about minimizing the electronics. \$\endgroup\$ Commented Jan 2, 2020 at 16:35
  • \$\begingroup\$ @DKNguyen - gate drivers are not supplying current to the motor. They are only used to trigger mosfets \$\endgroup\$ Commented Jan 2, 2020 at 16:36
  • 1
    \$\begingroup\$ NO NO NO - do not use an L293 or any Darlington chip. They are absurdly lossy and unusable at low voltage as a result. You definitely need an FET solution. But you probably won't find a readily available and affordable chip that meets your power needs, you are probably looking at small discrete SMT FETs or possibly multi-fet packages. \$\endgroup\$ Commented Jan 2, 2020 at 16:39
  • 1
    \$\begingroup\$ They have an insane saturation voltage. No matter how many you use, you'd lose about a third of your power supply there, all your doubling up would do is share that heat load, you'd still have the waste. They're ancient and unsuitable technology - when you see darlington H bridge chips in Arduino project writeups its a sure sign that the author has no idea what they are doing, but merely following in the path of someone else with no idea either - a problem quite endemic in those circles. \$\endgroup\$ Commented Jan 2, 2020 at 16:42

5 Answers 5

1
\$\begingroup\$

You will not be able to supply the motor with just the GPIO pins of the MCU because the 10W power requirement is too large for the GPIO's to handle. So you will need 6 FETs. you cannot drive 6 Fets without a gate driver to supply the proper voltage.

What I suggest is that you use a motor driver that has integrated FETs and gate driver. DRV10970(http://www.ti.com/product/DRV10970) is close to what you need but you might need a boost circuit to supply the proper voltage. It has integrated FETs, gate driver and control logic.

\$\endgroup\$
6
  • \$\begingroup\$ thanks! By following your recommendation I found 5v version - digikey.com/product-detail/en/texas-instruments/DRV10970PWPR/…. Why do these chips are so hidden? \$\endgroup\$ Commented Jan 2, 2020 at 16:52
  • \$\begingroup\$ The claim that the FETs cannot be driven without a gate driver is false. Suitable ones can be driven directly from an MCU, and typically are in such applications. It's larger devices or using N channel parts as high side switches where this would be a problem - the link in the question does do that, but it's only one of many reasons why that link is not good guidance for this project. \$\endgroup\$ Commented Jan 2, 2020 at 16:56
  • \$\begingroup\$ You are correct, Chris . I am more familiar with using N channel devices to drive motors that is why I say that the MCU would not be able to drive the FETs. I still would suggest using N channel FETs and a gate driver though or an integrated solution. \$\endgroup\$
    – m-walker95
    Commented Jan 2, 2020 at 17:22
  • 1
    \$\begingroup\$ @user3807616 the DRV10970 only works with sensorized motors. It would not work with the EMAX 66KV motor you suggested. \$\endgroup\$
    – Ocanath
    Commented Jan 2, 2020 at 17:50
  • 1
    \$\begingroup\$ @m-walker95 What about mcp8063? It is super small and seems simple to use with just a few pins. It is designed for sensorless BLDC and low power solutions - docs.rs-online.com/8090/0900766b813269aa.pdf \$\endgroup\$ Commented Jan 3, 2020 at 11:16
0
\$\begingroup\$

The first rule of experienced engineers -- find something that works and shamelessly copy. There are a lot of micro RC planes out there that use 10W or less, and are powered by 3.7V (one LiPo cell). Some run brushless. So see if you can find an ESC (or an integrated receiver/ESC -- look to Specktrum).

Alternately, if you use small complimentary FETs (N- and P-channel MOSFETS) then you ought to be able to drive them directly from GPIO. The limitation is the gate voltage you need to use (get logic-level parts and be careful about reading their ratings at your intended gate drive), how fast you drive the motor (10kHz PWM is fast for a motor), and the ratio of available driver current vs. gate capacitance.

Note that if you don't use a dedicated gate driver, you can easily turn on both the top and bottom FET on a leg, and effectively short your VCC to ground. This will be very exciting over the span of a few seconds, and then disappointing.

\$\endgroup\$
0
\$\begingroup\$

A hidden issue with your project is the kind of brushless motor controller you select. In particular, it seems to me that a good follow-focus system should have precise position control. This is pretty much impossible to achieve with your standard off-the shelf sensorless brushless motor ESC, because sensorless control methods don't work at low speed, and to spin up in 'open loop' for some time before they start commuting properly.

You most likely need to be doing some form of sensored motor control for your application, which means finding a motor that has hall sensors built in, or installing them yourself.

\$\endgroup\$
2
  • \$\begingroup\$ I will add encoder to the system. Something like AS5600. Sorry for not mentioning that. \$\endgroup\$ Commented Jan 2, 2020 at 18:47
  • \$\begingroup\$ That's pretty important! You should add it to your question. I think you might want to look into FOC (field oriented control) drivers, which will be compatible with that kind of controller and give you really precise, accurate, and low noise control. You'll probably need to relax your 5V requirement, which is kind of a backwards requirement anyway; pick your motor first, controller second, and work the rest of your design to accomodate them. \$\endgroup\$
    – Ocanath
    Commented Jan 2, 2020 at 18:53
-1
\$\begingroup\$

Have a look onto the datasheet of the arduino and check the maximum current sourcing from I/O, it might be enough or not?? But it's definitely not a proper design solution! No one want to see a design like that! If you want to ride of the driver, use a charge pump, the current to turn on the Mosfet will be supplied by the external 5V through the Capacitor.

\$\endgroup\$
1
  • \$\begingroup\$ This is really not a very helpful answer - mostly you are saying what has already been said multiple times about the MCU pins not being usable to power a motor. As for the charge pump, that is not needed at the supply voltage specified in the question, the linked design only needs it because it tries to use FETs ill-suited to the askers purpose. \$\endgroup\$ Commented Jan 2, 2020 at 17:16
-1
\$\begingroup\$

Since I am using 5V to power motor and arduino also outputs 5V from its pins can I skip IR2104S gate drivers? 4.3V should be enough motor voltage.

Yes.

6 mosfets bridge take up a lot of space. Is there an IC that provide same functionality? As stated before the motor should only need about 10W.

The motor has phase resistance of 7.5Ω so it will draw much less than 10W, but current is more important. Max. current at stall is 5V/7.5Ω = 0.67A. Small FETs rated for 5A or higher should be OK. Three SO-8 package dual N-P MOSFET ICs won't take up much space.

It needs to be small - not bigger than 4cm in any direction

That's huge! An Arduino Pro Mini with another board below (for the FETs etc.) would only be 3.5x2x1cm.

\$\endgroup\$
1
  • \$\begingroup\$ Indeed, the biggest part of it is the Arduino... plenty of "room" for improvement there \$\endgroup\$ Commented Jan 3, 2020 at 2:15

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.