Wednesday, July 28, 2021
Home » EduBots » AmpFlow ESC A Versatile Plug & Play Solution

AmpFlow ESC A Versatile Plug & Play Solution

The right motor controller may be your key to success

David Keefe, a teacher at Ascension Collegiate high school in Bay Roberts, NL, Canada, describes a robot his student robotics team designed for an “X-Curling” competition. He explains why he chose and how his team used an AmpFlow motor controller in this winning robot system. As David recounts, the AmpFlow system is a versatile, programmable, plug & play motor controller with extensive capabilities.  —the editors

This is a factual account of how a student team designed and built a winning contest robot (see the Skills Canada Robotics Competition sidebar) on a tight budget, and of my decision process in researching and selecting a motor controller for this project. Because our school operates on a relatively small budget, it was vitally important that our robotics team gather parts for the robot at the lowest cost. The local car dealership and service station became invaluable sources for various automotive parts, but a variety of parts obtained from salvage really breathed new life and purpose into our “X-bot.” We found parts ranging from motors to gears and chains, and even just pieces of scrap metal and nuts and bolts from an old photocopier in our school. We used wheels from a dolly, chains and sprockets from a bicycle, wiper motors from a car, a 12-volt spill-proof battery from an all terrain vehicle (ATV), a paper feeder from the photocopier; a roller wheel from a boat trailer and household electrical switches.


Four main systems made up the X-bot. These were the drive system, feeding system, shooting system and the radio control (RC) system. The drive system had a relatively simple setup, with a wiper motor driving each of the left and right-side drive wheels. These wheels came from a dolly. A bicycle sprocket was attached to the wiper motor, and another sprocket was attached to the wheel. A length of bicycle chain coupled the (almost identical) sprockets, giving an approximate 1:1 drive ratio for the axles. The front wheels were simply swivel casters, and steering of the X-bot was accomplished by turning the left and right drive wheels at different speeds and/or directions at the same time.

The front of the X-bot shows the puck shooting rollers, bottom center.

The feeding system fed the hockey pucks into the shooting system. A one foot-long piece of 3-inch diameter PVC sewer pipe held the stacked pucks in place until they were fed. The stack of pucks sat on a conveyor belt which was made from the paper feeding mechanism of a photocopier. When the conveyor belt operated, it pulled the bottom puck from the stack and moved it forwards into the shooting system. As one puck moved forward, the entire stack dropped down behind it, and the next puck was pulled from the bottom of the stack.

The shooting system consisted of a shooter wheel located just above the end of the conveyor belt, and a set of roller wheels just below. The shooter wheel was a 4-inch wide roller wheel from a boat trailer, and the roller wheels were small rubber wheels on a thin axle used to feed paper in a photocopier. Acting together, the shooter wheel and roller wheels gripped the puck as it left the conveyor belt. The shooter wheel was directly connected to a rapidly rotating motor, and this served to shoot the puck across the competition surface.

Top view shows puck storage tower and feeding mechanism below.

We used the AmpFlow S28-150 motor to spin the shooter wheel., the source of the AmpFlow hardware, had advised that this was an extremely powerful motor and we should be careful with it. We were expecting good performance, but we were amazed by this little 3.8 pound motor. It rotated very smoothly, and had an incredible amount of torque for such a small motor. It set the shooter wheel spinning instantaneously and shot the puck with amazing force. We also used the AmpFlow motor controller in our design (more about that below).


The RC system was a typical 6-channel controller (a Futaba 6XS) and servos. The only custom-made parts of this system were the household electrical switches (light switches) used to turn the motors on and off in the feeding and shooting systems and the linkages that coupled these switches to the servos that operated them. The linkages were made from pieces of 1/4 inch threaded rod with a thin aluminum U-bracket and pin on each end. When the servos moved, they would push or pull on the linkages and electrical switches, and thus control the corresponding motors. The servos and linkages were not used to control the wiper motors in the drive system, as these were controlled by an AmpFlow motor controller that was connected directly to the RC receiver.

Detail of sprocket and chain drive for the left motor.


Any robot that uses a motor to move itself through its environment has an obvious and critical need for a motor controller. In our case, we needed to control two drive motors independently, with variable speed in both forward and reverse directions. The previous year, we had attempted to solve the problem using light duty (5 Amp) motor controllers designed for RC boats. These controllers would blow fuses as soon as the drive motors came under any strain from sudden accelerations. Our low tech (and low budget) solution was to use a servo and linkage to operate a double-pole, double throw (dpdt) switch that controlled the drive motor. Each drive motor could be set to one of three possible settings: off; full-speed forwards; or fullspeed reverse. This somewhat crude system did not allow for any fine control of steering or speed. We really needed a high-quality, heavy duty electronic speed controller (ESC).

I set out to do some research. While I knew that the price would likely be the biggest obstacle, given our school’s budget, I also knew that I had to get a controller that had the right features. I had to buy a controller, and I also had to do it right the first time. I spent several months searching the Internet, looking for a controller that had the right features and the right price. After extensively researching the issue, I settled on six features that my controller had to have. The controller would need to:

  • operate on a 12 V DC supply
  • control 2 separate channels to allow for independent control of the left- and right-side drive motors
  • operate with our current RC system (the Futaba 6XS) be able to provide a continuous current of 15 A to each drive motor
  • be able to absorb current spikes well above 15 A during brief periods of strain
  • be able to provide variable speed control in both forward and reverse directions.
Rear view shows the conveyor belt made from a photocopier feed system. This positions the pucks in the shooter.

With these 6 criteria in mind, my search quickly led me to the AmpFlow Motor Controller. It had every one of my essential features, plus many more. The price was a little steep for my budget, but I knew this was the right controller for our needs. When I compared the AmpFlow to other models, I kept coming back to the same conclusion. I put in more time and energy to help my school raise the money needed to purchase the AmpFlow controller. I awaited its arrival like a child awaiting Christmas morning!

They say first impressions last. Everything about the AmpFlow ESC, from its heavy duty 8-gauge wiring to its rugged case and cooling fins, suggested it was very serious robotics gear. The compact 7×5.5×1.5 in. controller fit nicely into our robot. I quickly realized it would easily stand up to the demands our X-bot would place on it, and have plenty of reserve capacity to spare. For example, the Skills Canada regulations impose a maximum of 15 amps in any one circuit; the AmpFlow can provide 160 A per channel for up to three minutes, and it can handle current spikes of up to 300 A at up to 40 volts. (A single-channel version is also available with twice the rated output). We obviously had no worries about overloading it!


Power panel switches are at lower left in this top view.

The AmpFlow is also very user friendly. It was extremely simple to hook-up and start using, and literally in just a few minutes, I had it installed and was driving the X-bot around. There were only three connections to make: connect the AmpFlow to the battery, the drive motors, and to the RC receiver. That was it and we were up and running! After using the AmpFlow for a short time, we explored some of its many programmable features. Programming is done via switches and LEDs on the AmpFlow, or through an equally user friendly computer program. We found the program to be the simpler of the two methods, and used it to program two key features.

First, we programmed the Motor Control mode to Mixed Speed/ Steering, which combines or mixes the forward/reverse and left/right steering information from one joystick, and sends it to both drive motors (it has built-in “elevon” mixing). This mode allowed us to use a single joystick to drive the X-bot, as opposed to using two joysticks in a tank-style driving mode. This freed up the driver’s other hand to operate both the feeding and shooting systems.

We next programmed the programmable throttle curves. The AmpFlow’s default setting is a linear curve, where the power output is directly related to the joystick position. (For example, setting the joystick to its maximum position delivers maximum power to the corresponding drive motor.) As logical as this throttle curve might sound, we found it made the X-bot very difficult to steer accurately when only small amounts of steering were needed. This was particularly important for us since the steering was also used to aim the direction of the pucks once the X-bot was parked. We needed an exponential throttle curve (to diminish control stick input sensitivity around the center of the stick throws).

Programming in an exponential throttle curve gave us fine steering control. Moving the joystick to near its maximum position quickly increased the power delivered, and enabled quick turning while driving around the competition arena. Although a number of programmable transmitters provide for exponential throttle curves, the AmpFlow will spare you the cost of a more expensive computer radio, because it has this feature built-in to the controller.

Futaba servos turn household switches that power on puck feeding and shooting motors.

While there are many other user programmable features, we opted to leave them in their default settings for the Skills Canada competition. In addition to radio control, the AmpFlow will also accept inputs from a joystick, computer, or microcontroller. It has adjustable current limiting and over-heat protection. It operates in open or closed-loop speed mode and the motors may also be operated as heavy duty position servos with feedback from optical encoders or low-cost position sensors. Several inputs are available for connecting switches or sensors via AmpFlow’s 15-pin connector. The controller may also be connected to a PC to enable data capture, storage, and configuration of parameters using the included serialport cable and the convenient graphic computer interface.


With the AmpFlow controlling the driving, we were able to focus our attention on operating the X-bot’s other systems. Although we were virtually able to forget about the AmpFlow, its brightly colored blue case attracted quite a bit of attention among our competitors; and it quickly became the envy of the other robotics teachers at the competition. After a little show and tell, they all agreed that I had done it right the first time by selecting this unit. The 2-channel AmpFlow motor controller is available from for $595 and the AmpFlow motor that we used in the puck shooter is also available for $299.

I am proud to say that the AmpFlow played a huge role in helping our robotics team and their X-bot win the Silver Medal in the 2005 Skills Canada Robotics Competition. While the focus of future robotics competitions will continually evolve, at least one thing will remain unchanged in our future X-bot’s designs—their locomotion will be commanded by the AmpFlow motor controller! 

Team members prepare for competition. AmpFlow motor controller is the blue component at the top rear of the X-bot.


Ascension Collegiate is a senior high school, serving students from grades 10 through 12, situated in a rural setting. While considered a large school by local standards, its student population of 800 makes it a small school– with an equally small budget— according to most national and North American standards. For the past two years, it has offered a basic course in Robotics and has also created an extra-curricular Robotics Team. While exploring many aspects of the exciting field of robotics, the primary focus of both the robotics class and team has been to compete in the annual Skills Canada Robotics Competition. This competition is held at both the provincial and national levels, with the provincial winners moving on to represent their province in the national competition. Further information about the Skills Canada organization can be found on its website at

The exact challenge, or scope, of the Skills Canada Robotics Competition changes annually. The 2005 competition was “X-Curling.” It required students to design and manufacture a remote controlled robot capable of driving around a 24 foot by 24 foot competition arena, and shooting hockey pucks a distance of approximately 8 feet across a smooth melamine surface in a simulated game of curling.


Futaba, distributed exclusively by Great Planes Model Distributors, (800) 682-8948, (650) 593-6906

Skills Canada Robotics Competition

X-Curling challenge details

Words by David Keefe