Richard Saville, aka the Average Man, came up with the design for the MotoZero while watching his favourite TV show, Sons of Anarchy. That biker influence has led to the coolest-looking motor board we’ve ever seen, resembling an exposed engine with its chunky terminals and twin socket-mounted driver chips. The attention to detail even extends to some piston graphics on the board. That’s right, by the way: you get not one but two motor driver chips, enabling the MotoZero to control four motors independently. While the L293D chips used here have been around quite a long time, they do the job well enough – for fairly low-powered motors, at least.
This review was written by Phil King
Design considerations
It’s obvious that a lot of thought has gone into the MotoZero’s design. For starters, the terminal blocks are high-quality and chunky, making it easy to connect your motor wires; their screw-heads are a decent size, too. So these blocks should stand up to prolonged use. Grouped in pairs, after sliding the ridge edges together, to avoid them being easily twisted out of place, the main terminal blocks’ positioning on either side of the Zero-sized board is ideal for powering the wheels on each corner of a robot. A fifth terminal block is supplied for the wires from your chosen power supply; alternatively, you could solder them directly to the board holes. One caveat to mention here is that, due to its low cost, the MotoZero lacks any protection from reverse polarity, so you need to make sure that your battery pack is connected the right way round!
Since the MotoZero is supplied in kit form, you’ll need to assemble it, which involves a fair amount of soldering. While some people might be put off by this, Richard reckons it’s all part of the fun of playing around with electronics. Depending on your soldering skills, it should take 30-60 minutes to put together; helpfully, the comprehensive PDF manual contains a step-by-step assembly guide illustrated with photos, while the board itself is clearly marked out with component positions and labels. It’s recommended to solder on the 40-pin GPIO header first, followed by the two chip sockets, then the four motor connection terminals, capacitor, and optional fifth terminal block. Just slot in the two L293D chips and you’re ready to roll.
Twin drivers
Once the MotoZero is assembled, it’s ready to control connected motors once slotted onto a Raspberry Pi. Incidentally, while the MotoZero’s form factor is a perfect match for the Pi Zero, and Zero-sized robots, it can be used with any 40-pin Pi model.
As mentioned, the L293D driver chips are old technology, but still a good choice here since they are low-cost – thereby helping to keep the overall price down – and able to handle a wide range of voltages: from 4.5V to 36V. Handily, they also have built-in overheating protection and feature integrated flyback diodes to prevent damage from sudden voltage spikes from the motors. And even if they do get damaged, the socket mounting on the MotoZero makes them a cinch to replace.
One slight downside to using L293D chips is that they only supply 600mA continuous current per channel (i.e. motor). This means that you will need to use motors with a stall current not much higher than that – the manual states that you can get away with around 700mA, so long as you’re careful to avoid stalling the motor and also keep an eye on chip temperature.
When it comes to controlling them, each motor channel is assigned three of the Pi’s GPIO pins (which have been chosen carefully to avoid using any with special functions such as I2C, SPI, and UART). While the first two pins are turned HIGH/LOW or LOW/HIGH to make the motor turn forwards or backwards, as per usual, the third pin acts as a master on/off switch. While you might well wonder about the point of this ‘enable’ pin, one benefit is that it can be used with pulse-width modulation (PWM) to control the speed independently of direction.
Although the Python coding process will be similar to that for most other motor boards, one major plus point is that the MotoZero is getting its very own output device class in the excellent GPIO Zero library (although at the time of writing, Ben Nuttall was still working on this), which should make it even easier for robotics novices to control motors with very few lines of code. Note, however, that if you want to attach any robot sensors – such as line follower or ultrasonic distance sensor – you’ll need to either wire them directly to pins by using a stacking GPIO header (instead of the one supplied), or stack a HAT underneath the MotoZero.
Final word
4/5
While it lacks some of the advanced functionality of more expensive motor boards, including servo control and GPIO inputs/through-holes for sensors, the MotoZero offers great value for money, looks very cool, and has the unusual ability to control four motors independently.