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.

Continue reading “Hacking R/C Brushless Motor Controllers for Use in Big Robots”

A Simple And Educational Brushless Motor

Sometimes there is no substitute for a real working model to tinker with when it comes to understanding how something works. Take a brushless motor for example. You may know how they work in principle, but what factors affect their operation and how do those factors interact? Inspired by some recent Hackaday posts on brushless motors, [Matt Venn] has built a simple breadboard motor designed for the curious to investigate these devices.

The rotor and motor bodies are laser-cut ply, and the rotor is designed to support multiple magnet configurations. There is only one solenoid, the position of which relative to the magnets on the rotor can be adjusted. The whole assembly is mounted on the edge of a breadboard, and can be rotated relative to the breadboard to vary the phase angle at which the drive circuit’s Hall-effect sensor is activated by the magnet. The drive circuit in turn can have its gain and time constants adjusted to study their effects on the motor’s running.

[Matt] has made all the design files available in his GitHub repository, and has recorded a comprehensive description of the motor’s operation in the YouTube video below the break. Continue reading “A Simple And Educational Brushless Motor”

Automating RC Motor Efficiency Testing

Small brushless motors and LiPo batteries are one of the most impressive bits of technology popularized in recent years. Just a few years ago, RC aircraft were powered by either anemic brushed motors or gas. Quadcopters were rare. Now, with brushless motors, flying has never been easier, building electric longboards is simple, and electric bicycles are common.

Of course, if you’re going to make anything fly with a brushless motor, you’ll probably want to know the efficiency of your motor and prop setup. That’s the idea behind [Michal]’s Automated RC Motor Efficiency Tester, his entry to the 2016 Hackaday Prize.

[Michal]’s project is not a dynamometer, the device you should use if you’re measuring the torque or power of a motor. That’s not really what you want if you’re testing brushless motors and prop configurations, anyway; similarly sized props can have very different thrust profiles. Instead of building a dyno for a brushless motor, [Michal] is simply testing the thrust of a motor and prop combination.

The device is very similar to a device sold at Hobby King, and includes a motor mount, microcontroller and display, and a force sensor to graph the thrust generated by a motor and prop. Data can be saved to an SD card, and the device can be connected to a computer for automatic generation of pretty graphs.

Brushless motors are finding a lot of uses in everything from RC planes and quadcopters, to robotics and personal transportation devices. You usually don’t get much of a data sheet with these motors, so any device that can test these motors will be very useful.

The HackadayPrize2016 is Sponsored by:

Anti-Cogging Algorithm Brings Out the Best in your Hobby Brushless Motors

Cheap, brushless motors may be the workhorses behind our RC planes and quadcopters these days, but we’ve never seen them  in any application that requires low-speed precision. Why? Sadly, cheap brushless motors simply aren’t mechanically well-constructed enough to offer precise position control because they exhibit cogging torque, an unexpected motor characteristic that causes slight variations in the output torque that depend rotor position. Undaunted, [Matthew Piccoli] and the folks at UPenn’s ModLab have developed two approaches to compensate and minimize torque-ripple, essentially giving a cheap BLDC Motor comparable performance to it’s pricier cousins. What’s more, they’ve proven their algorithm works in hardware by building a doodling direct-drive robotic arm from brushless motors that can trace trajectories.

Cogging torque is a function of position. [Matthew’s] algorithm works by measuring the applied voltage (or current) needed to servo the rotor to each measurable encoder position in a full revolution. Cogging torque is directional, so this “motor fingerprint” needs to be taken in both directions. With these measured voltages (or currents) logged for all measurable positions, compensating for the cogging torque is just a matter of subtracting off that measured value at any given position while driving the motor. [Matthew] has graciously taken the trouble of detailing the subtleties in his paper (PDF), where he’s actually developed an additional acceleration-based method.

Hobby BLDC motors abound these days, and you might even have a few spares tucked away on the shelf. This algorithm, when applied on the motor controller electronics, can give us the chance to revisit those projects that mandate precise motor control with high torque–something we could only dream about if we could afford a few Maxon motors. If you’re new to BLDC Motor Control theory, check out a few projects of the past to get yourself up-and-running.

Continue reading “Anti-Cogging Algorithm Brings Out the Best in your Hobby Brushless Motors”

Adding Position Control To An Open Source Brushless Motor Driver

Brushless motors are everywhere now. From RC planes to CNC machines, if you need a lot of power to spin something really fast, you’re probably going to use a brushless motor. A brushless motor requires a motor controller, and for most of us, this means cheap Electronic Speed Controllers (ESC) from a warehouse in China. [Ben] had a better idea: build his own ESC. He’s been working on this project for a while, and he’s polishing the design to implement a very cool feature – position control.

We’ve seen [Ben]’s work on his custom, homebrew ESC before. It is, by any measure, a work of art. It’s capable of driving brushless and brushed motors with a powerful STM32F4 microcontroller running ChibiOS that’s able to communicate with other microcontrollers through I2C, UART, and CAN bus. If you want to build anything with a motor – from a CNC machine to an RC helicopter to an electric long board – this is the motor controller for you.

[Ben]’s latest update considers position encoders. Knowing how fast a motor is turning is very important to knowing how fast a wheel is turning, how much torque the motor is generating, and an awesome step in building the finest motor controller ever made.

Like the last update, [Ben] demonstrates the great control program written for this ESC. This GUI programs the microcontroller on the controller, with protection from high and low voltages and currents, high RPMs, duty cycle changes, and support for regenerative braking.

Thanks [Dudelbert] for sending this one in.

Continue reading “Adding Position Control To An Open Source Brushless Motor Driver”

Open Source ESC Developed for Longboard Commute

For electric and remote control vehicles – from quadcopters to electric longboards – the brains of the outfit is the Electronic Speed Controller (ESC). The ESC is just a device that drives a brushless motor in response to a servo signal, but in that simplicity is a lot of technology. For the last few months, [Ben] has been working on a completely open source ESC, and now he’s riding around on an electric longboard that’s powered by drivers created with his own hands.

esc-for-longboardThe ESC [Ben] made is built around the STM32F4, a powerful ARM microcontroller that’s able to do a lot of computation in a small package. The firmware is based on ChibiOS, and there’s a USB port for connection to a sensible desktop-bound UI for adjusting parameters.

While most hobby ESCs are essentially black boxes shipped from China, there is a significant number of high performance RC pilots that modify the firmware on these devices. While these new firmwares do increase the performance and response of off-the-shelf ESCs, building a new ESC from scratch opens up a lot of doors. [Ben]’s ESC can be controlled through I2C, a UART, or even a CAN bus, greatly opening up the potential for interesting electronic flying machines. Even for ground-based vehicles, this ESC supports regenerative braking, sensor-driven operation, and on-board odometry.

While this isn’t an ESC for tiny racing quadcopters (it’s complete overkill for that task) this is a very nice ESC for bigger ground-based electric vehicles and larger aerial camera platforms. It’s something that could even be used to drive a small CNC mill, and certainly one of the most interesting pieces of open source hardware we’ve seen in a long time.

Continue reading “Open Source ESC Developed for Longboard Commute”

BLDC Controller With The Teensy 3.1

[Will] is on the electric vehicle team at Duke, and this year they’re trying to finally beat a high school team. This year they’re going all out with a monocoque carbon fiber body, and since [Will] is on the electronics team, he’s trying his best by building a new brushless DC motor controller.

Last year, a rule change required the Duke team to build a custom controller, and this time around they’re refining their earlier controller by making it smaller and putting a more beginner-friendly microcontroller on board. Last years used an STM32, but this time around they’re using a Teensy 3.1. The driver itself is a TI DRV8301, a somewhat magical 3 phase 2A gate driver.

The most efficient strategy of driving a motor is to pulse the throttle a little bit and coast the rest of the time. It’s the strategy most of the other teams in the competition use, but this driver is over-engineered by a large margin. [Will] put up a video of the motor controller in action, you can check that out below.

Continue reading “BLDC Controller With The Teensy 3.1”