Hacking R/C Brushless Motor Controllers for Use in Big Robots

[professor churlz] wrote in to let us know his results with modifying radio control ESCs (Electronic Speed Controllers) for use in a large (250lb range) BattleBot’s drivetrain. It’s a very long and involved build log entry that is chock-full of details and background.

If you want something spinning hard and fast, brushless is where it’s at. Brushless motors offer much better power-to-weight ratios compared to brushed DC motors, but some applications – like a large robot’s drivetrain – are less straightforward than others. One of the biggest issues is control. Inexpensive brushless motors are promising, but as [professor churlz] puts it, “hobby motor control equipment is not well suited for the task. Usually created for model airplanes, the controllers are lightly built, rated to an inch of the components’ lives using unrealistic methods, and usually do not feature reversing or the ability to maintain torque at low speeds and near-stall conditions, which is where DC motors shine.” Taking into account the inertia of a 243 lb robot is a factor as well – the controller and motor want to start moving immediately, but the heavy robot on the other side of it doesn’t. The answer was a mixture of hardware and firmware tweaking with a lot of testing.

The build log is full of interesting things including gearing and other mechanical details of the robot, but to get the gist of the brushless motor drivetrain journey there is the section on what led [professor churlz] to think about whether brushless motors – varyingly successful in little bots – would scale up to a ~250lb robot, details about testing and investigation of the motors and controllers he chose, and finally a summary of his conclusions. In the end he found it a qualified success.

Brushless motor control is an area of active interest for many people. [professor churlz] made use of tgy – an open-source tool for modifying the firmware of ATMega-based ESCs, and people who find the abilities of inexpensive Electronic Speed Controllers (ESC) from China lacking have designed their own open-source ESCs.

Here’s a video of some final testing of the combat robot operating with brushless motors and modified ESCs. The performance of the motors isn’t very visual, but it’s still fun to watch it assaulting a helpless piece of hardware as a dummy opponent.

14 thoughts on “Hacking R/C Brushless Motor Controllers for Use in Big Robots

  1. Only needed to read the header to know this was going to be another really interesting Charles Guan related post. [professor churlz] is a new nickname I’d not seen before!

    1. Also interested in this, I’ve got a need to trigger repeated high current (1000A) pulses and automotive ESC’s look to be the cheapest way of handling those currents.

    2. Most of the RC car ones I’ve seen are using silabs microcontrollers.
      I’m sure it wouldn’t be too difficult to write a firmware for them, but I don’t know if there’s any open source ones out there right now.
      I’m not really sure the hall sensors are all that important, though. I have run SimonK’s firmware (the “tgy” mentioned) with reversing turned on a cheap turnigy plane ESC in my RC buggy and it works fine, and is pretty smooth even at low speeds.

      1. The hall sensors are critically important for a couple of specific use cases – basically position control rather than speed control. There, they are essential for the smooth start at near zero speed and they have a side benefit that with the right clever bit of software can be used as a low resolution encoder.
        I’ll leave it to your imagination for all the things that you might be able to do with a 100+watt position controllable servo in the $30 price range…

        1. Yes, for those cases hall sensors would definitely be useful. I was mostly just talking about response at low speeds, where a lot of people assume that it will be really rough, like a lot of the RC car ESCs, and that isn’t always the case. A lot of those escs are just poorly optimized in sensorless mode.
          I agree, though, that it could be pretty cool to have a nice sensored ESC with good open source code. I even considered digging into the project myself, but I am not too enthusiastic about learning 8051 assembler, and I found that the reasonably decent car ESCs tend to be kind of expensive. (I will make due with sensorless for now)

    1. An AC servo driver that processes the same current at the same voltage is the size of a small cinder block, weighs around 20 pounds, and costs 5 figures.

      If I can get 99% the performance at 1% the cost, that’s worth investigating.

    1. They tend to be pretty pricy, and they don’t respond very quickly. You don’t really notice a tenth of a second of delay between when you punch the throttle, and when your bike moves, but it can be a problem when you’re trying to control things with any level of precision.
      Also, they’re usually between 20 and 40A current limited, which is plenty of power at the 36v nominal they’re usually run at, but for a lot of uses you will be running on less voltage, and may want much higher currents.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s