Manicured lawns have obsessed homeowners for centuries, giving the illusion of scale as well as order. However, as our lives become ever busier, maintaining a weed-free, neatly trimmed patch of grass becomes a tall order. Getting a robot lawn-mower to take the strain seems like a sensible solution, especially if, like PiMowBot creator Dirk Weyand, you have a 600 m2 lawn to keep you busy.

Dirk embarked on his PiMowBot project two summers ago, aiming to create a robot that was powerful and reliable enough to mow his sizeable garden weekly. Although other robot mowers existed, such as the ArduMower, they didn’t fit Dirk’s strict lawn-mowing brief in which “the PiMowBot mows the lawn lane by lane so that the lawn gets an even cut.” Instead, he set about creating his own robot mower, recruiting his business customer and co-designer Tim Esser to help with the object modelling and 3D design. One problem: Dirk is based in Schleswig-Holstein in northern Germany and Tim in Berlin, so the two collaborated via email. In fact, they’ve never met. Both have full time jobs, which meant keeping the project ticking along could be quite a challenge.

Dirk aimed to keep the build costs to around €300 – nearly two years later he estimates the project has cost him nearer €1500, though this includes the cost of two 3D printers and two previous prototypes. Now it’s built, there are no significant running costs. “Solar power is free and the built-in hardware is robust and reliable and has no real wearing parts, except the battery,” Dirk says.

A prototype version of PiMowBot shows off its generous solar panel

False starts

The core parts are a Raspberry Pi Zero, Raspberry Pi Camera Module, and Witty Pi mini (a clock and power management module) plus GPS, solar panel, battery, motor, and motor controller.

As well as the Raspberry Pi OS and the Witty Pi software, Dirk made use of standard lines of code from earlier versions of his robot mower. He coded most parts of PiMowBot in REBOL3 since he’s been using the open-source functional programming language for nearly two decades. Python and GPIO Zero are used to communicate with the I2C devices, sensors, and motor control drivers.

Getting a precise orientation reading was a challenge due to the influence of magnetic north, but Dirk overcame this by getting PiMowBot to automatically go through a calibration process each time it’s set up.

He wanted to keep things as straightforward as possible, experimenting with various motors and drivers such as a Waveshare Motor Driver HAT to control the gearing, braking, and acceleration. However, the geared motors drew too much current, prompting a switch to an L298N dual H-bridge module. Further refinements included adding a more powerful motor, which also meant Tim needed to redesign the 3D case.

The final version of PiMowBot was complete by the start of this year, with build instructions and the software all available from Dirk’s website.

The 3D-printed housing has plenty of room for all the electronic parts


“The PiMowBot has two operating modes: an autonomous operating mode without induction wires in the ground, and a remote control mode to directly control the lawn-mower robot via its web UI and the location and orientation sensors on the lawn,” explains Dirk. He’s used the Camera Module for previous Raspberry Pi projects and is keen to further refine the optical object/obstacle detection with real-world testing during the summer months.

Although PiMowBot was intended as a “sophisticated hobby project” to work on in his and Tim’s spare time, Dirk is planning new models, including an XXL PiMowBot model and an intelligent system in which multiple PiMowBots operate alongside each other and share the mowing task. All hail our future mowing gods!

From The MagPi store