Maxon Motors, Flexible Flat Cables, and Motor Axle

(article continued from previous page)

The StreamHawk wireless telepresence robot explores rooms in my house. Although it is incapable of going up and down stairs, it is specifically designed to drive over thresholds or transition strips that are located between rooms.

Semi-autonomous robot driving over a wooden room threshold about 3/4-inch high.

Semi-autonomous robot driving over a wooden room threshold about 3/4-inch high (lowest floor-to-peak).

These strips are practically inconsequential to most human beings and domestic pets in everyday life. Yet, it’s amazing how many robots get stuck on such a short barrier. The strips are particularly problematic for robots with floor sensors.

The design keys to driving over obstacles are:

  1. Provide adequate ground clearance by not including any rigid parts below the height of the tallest object the robot will need to drive over.
  2. The diameter of the robot’s wheels should be more than twice the height of the tallest object to drive over. Four times taller is preferable.
  3. Flexible or knobby-treaded tires climb up better than solid slick tires.

Maxon Motors

There are a number of different methods of applying mechanical power to wheels while still providing adequate ground clearance:

For this robot, I chose the last option.

Miniature Maxon DC motor with encoder and flex cable.

Miniature Maxon DC motor with encoder and flex cable.

I purchased a large group of Maxon DC motors from eBay for $10 each. The motors are labeled 132365. (Similar motors with plastic gears and a slightly different pinout were also available on eBay. They are marked #199232.)

The imprinted number refers to the unique combination of motor, gearhead, and encoder for a particular customer, as opposed to the individual part numbers. Since these are second-hand motors, I had to deduce the individual part numbers of each component by comparing attributes to those listed in the Maxon catalog.

Unfortunately, this motor deviates from the standard Maxon offering in two significant ways. First, it only has one encoder channel (the second transistor isn’t even populated on the tiny circuit board), which means it doesn’t support quadrature encoding. Second, the motor and encoder connector is a thin, flat, flexible cable, rather than a standard ribbon cable and 0.1-inch female socket header.

Flexible Flat Cable

This unique type of cable is called a flexible printed circuit (FPC) or a flexible flat cable (FFC). This Maxon motor uses a 5-pin FFC with 1 mm pitch spacing (1 mm from the middle of one pin to the middle of the next pin).

Individual wires soldered to a flat flex cable.

Individual wires soldered to a flat cable.

My first attempt to connect to the flat cable consisted of soldering individual wires taped to a brass block. Although it worked, let me make this perfectly clear: Hand soldering on a 1mm-spaced flat cable is no fun.

Adapter PCB, flat cable right-angle connector, and motor cable with pinouts

Adapter PCB, flat cable right-angle connector, and motor cable with pinouts

The right way to do it is to use the proper connector. Low-insertion-force connectors with 1 mm pitch are manufactured by Hirose Electric in right-angle (FH21-5S-1DS) and straight (FH21-5S-1DSA). They are available from Digi-Key (#HFG05T and #HFF05T respectively).

The connector can be designed to fit onto a motherboard, or a special adapter board can made to convert each motor to discrete wires. For example, the above adapter board splits off the standard two-wire DC motor pins (M+, M-) so that the motor can be used with any motor driver board. The three sensor pins (+5, sensor output, GND) can either be ignored or they can connect to a microcontroller.

Robot Drive Train and Aluminum Motor Axle

Tall Lego wheels, narrow Maxon motors, a narrow aluminum tube axle, and thin motor cables constructed for a robot with a high ground clearance.

Tall Lego wheels, narrow Maxon motors, a narrow aluminum tube axle, and thin motor cables constructed for a robot with a high ground clearance.

The robot motors attach to Lego wheels with aluminum couplers described in an earlier article. The motors are secured end-to-end with set screws in an aluminum tube. Slits in the middle of the tube allow the motor cables to connect to adapter boards inside of the robot.

The axle begins as a solid 5/8-inch diameter, 5-inch length of aluminum rod cut with a hacksaw from a 6-foot piece. It would have saved time to use a hollow tube, but I couldn’t find one with a 13 mm inner diameter.

Facing, chamfering, and rounding an aluminum rod on a lathe.

Facing, chamfering, and rounding the end of a solid aluminum rod on a lathe.

The scraggly end of the solid rod is faced smooth on a lathe (compare the end of the rod in the left picture to the middle picture). The edge is then cut away with an angled cutting tool to remove sharp edges.

Finally, I tried applying a curved cutting tool to give the rod a rounded end. Visually, it was only marginally effective because the tool has too large of a diameter and I wasn’t willing to be more aggressive.

Drilling a progressively larger hole in a rod on a lathe.

Drilling a progressively larger hole in a rod on a lathe.

A 13 mm hole is fairly large. A hobbyist lathe can’t simply plunge a 13 mm drill into the rod, particularly a rod made of gummy aluminum. The drill would simply seize.

Instead, start with a much smaller hole and work up to the desired hole size with progressively larger drills. Use plenty of lubricant and pull out often to remove material.

I started with a 23/64-inch drill (just under 3/8 inch) and then stepped up to a 29/64-inch drill. Why such weird values? Those drill sizes are rarely used and it avoids wear on the more popular drill sizes in the set.

Finally, a 13 mm diameter drill brings the hole to the size of the motors. Almost.

The portions of the motor where the individual components (gearhead, motor, encoder) are put together are slightly wider than 13 mm. So, the rod hole was enlarged with a 33/64-inch drill (the tap drill for 9/16-18 screws) -- which is about 13.1 mm.

Deburring and chamfering a hole at the end of a rod using a larger diameter drill.

Deburring and chamfering a hole at the end of a rod using a larger diameter drill.

To remove sharp edges and metal projections (burrs), a much large diameter drill is inserted just slightly into the hole. This prevents the motor casing from becoming scratched or the motor getting stuck due to metal particles jamming along the sides. The larger drill also tapers the hole, making it easier to insert the motor into the rod.

After the rod has deep holes drilled on both sides, it is moved to a milling machine vise with a v-groove to securely hold the rod.

Milling motor cable slots and drilling set screw holes in a machining vise with a v-groove.

Milling motor cable slots and drilling set screw holes in a machining vise with a v-groove.

Using multiple gentle passes, an extremely narrow-diameter end mill cuts a slot into the hollow section of the rod for the flexible flat motor cable to stick out. The center section of the rod (where the drill didn’t reach) remains solid, so it is important to cut the slots where the rod is hollow.

Finally, four set screw holes are drilled and tapped to hold the motors in place. By using four set screws (instead of one), less pressure is placed on any single point and the motor is unlikely to fall out due to a loose screw.

Motor Performance

The electric motors perform beautifully on this robot. Even though they seem too small for such big wheels, they have more than enough torque to carry the robot over thresholds. The speed is fast enough to avoid boredom and slow enough to control.

The flexible flat cables are difficult to insert into the adapter connector boards when the circuitry is stuffed into the canister. I’ve resorted to two pairs of smooth-jaw needle-nose pliers to guide the cable while holding adapter board steady.

Fortunately, the front dome is removable for easy access to the motors cables, thanks to the black plastic collar with screw holes. In fact, that’s what we’re going to look at next...