
There are thousands of DIY mower projects online, this one probably doesn't stand out from the others, but since I haven't seen a similar project in this section for a long time, I decided to share my experience.
This is the first prototype that verifies the basic assumptions in real life.
The device during operation.
The idea of building arose from the desire to automate the mowing process, but due to the difficulties in the shape of the terrain, the mowers advised by experts that would cope with this particular area were quite expensive. The second goal is the (at least assumed) savings (it will be cheaper) and above all, the fun of construction as an added value. The structure consists of as many modules as possible, which are widely available ready-made (housing, wheels/motors, motor controllers, cutting system, battery and its charging system, etc.), the only exception is a dedicated controller for the whole.
Basic description of the structure.
The drive system is built on 3 wheels, two drive wheels from scooters bought once for pennies, have a built-in drive system (bldc motor with Hall sensors), their advantage is high torque, easy adaptation to any construction and resistance to pollution by design. The third wheel is a 360° free turning furniture wheel. The cutting deck is the original engine from the Worx autonomous mower, a custom cutting disc with 3 knives from the Landroid mower (slightly enlarged than the original to increase the cutting diameter). Macalister case, i.e. a toolbox ;)
Electronics.
All 3 motors (wheels and cutting disc) driven by relatively cheap and popular Chinese bldc+Hall controllers, rotation controlled by voltage from digital potentiometers. Current consumption control for all motors on ready-made Acs712 modules, battery charging module on the universal CC/CV module, charging current control on ACS712. Wheel spin control taken from Hall sensor pulses.
The border wire code receiver is an implementation of the system from the Google patent US8392044 with minor modifications. A little more about the border wire later in the description.
The main controller is a dedicated board with pic32mx470. The board contains the necessary digital and analog IO for ADC (acs712) measurements and digital signals from other sensors, digital potentiometers for applying voltage to drive systems, Wifi MRF24G module for monitoring, remote update, etc., GPS module for rough control of the border of a given area.
Mcu powered by a custom OS using the tcpip MLA stack and own drivers for the necessary peripherals. In addition, the OS has a LOGO-like control pseudocode interpreter (forward 10, turn right 90, etc.) with event handling (like "border wire detected" etc.). This allows faster development of the driving algorithm at the testing stage without the need to constantly flash the mcu. The code is uploaded via the built-in http server.
Border wire generator based on pic10f222.
The battery is a custom 4S package built from cell lion LG (bought for pennies) 10FX 10Ah + BMS.
Border wire concept.
The boundary wire (or wire) by giving the appropriate signal creates a virtual fence in which the mower is to move. In this way, the borders of the lawn, flowerbeds, islands, etc. are secured and in some cases the cable can even be used as a wire leading to the base / charging station. It is also worth mentioning that there are "wireless" solutions based on GPS supported by additional local correction increasing the precision of the position. Because this solution requires additional devices and is not very commonly used in commercial mowers (except for a few such as Ambrogio), I decided that my own solution would be based on a classic, proven cable.
In the first concept, I tested a simple signal transmission (30kHz) with its receiver. The system was an implementation suggested on some guide on the web regarding the construction of the transceiver system of such a cable. Unfortunately, during quite intensive tests, this type of solution showed its quite significant disadvantages:
- difficulty in accurately determining the distance from the wire. The wire is detected e.g. 20cm in front of it and 20cm behind it. Theoretically, you could
combine with the sensitivity or transmit power to more precisely detect the moment of exceeding, but this leads to another disadvantage:
- quite a significant dependence of the signal on weather conditions, moisture in the soil right after the rain changes the signal propagation conditions. What tunes in "dry" will run out wet
- a problem with leading the cable to the islands in the middle of the lawn in such a way that it is not detectable by the mower. It would be necessary to bury it deeply, plus possibly twist it together with the return wire to degrade the signal
The above disadvantages completely disqualified this type of solution. It was necessary to reach for a different concept, a bit more complicated, which not only does not have the disadvantages of the previous one, but also, thanks to the physics of the applied phenomenon, solves the problem of connecting cables to the islands. The solution is probably used in all mowers of this type. It is based roughly on the detection of a special code transmitted by the wire and checking whether the received signal is consistent with the expected pattern or inverted. Practically, in the simplest way, this is accomplished by transmitting a modulated signal, the so-called Manchester coding: the wire transmitter generates, for example, a 16-bit code that the mower knows. The position of the receiving coil along the plane of the wire (in front of or behind) determines the direction of the field lines generated by the wire and thus the direction of the currents generated in the receiving coil. And this, in turn, in manchester encoding determines whether the received code will be consistent with the expected pattern or inverted (i.e. all bits switched 1->0 0->1). This determines whether the mower is "inside" the wire loop area or "outside". The reversal of the code is very sharp and occurs just after passing the wire. A strong transmitting signal is not a problem, it's just that you know beforehand that you are approaching the wire, but until the signal reverses, the wire has not been crossed. For details of the implementation of the solution, please refer to the Google patent No. US8392044 where everything is described in detail along with the receiver diagram.
Bringing the signal to the islandsinside the mowing area is not a problem anymore, it is enough to lay the "supply" wire to the island and the return wire close to each other in parallel (forming an omega shape), they do not have to be buried deeper. Wires laid close to each other in parallel only create a signal of the "inside" area, which will be ignored by the mower. Only spreading the wires to a minimum of 4-5 cm creates a detectable "outer" area.
Other sensors supporting the movement of the mower.
In addition to detecting permanent lawn boundaries, it would also be useful to detect unexpected obstacles. Trees, some objects left in the path of the mower, resting animals, etc. Originally, the main such sensor was to be an ultrasonic rangefinder. Unfortunately, the most popular cheap Chinese module HC-SR04 (its clone) turned out to be defective, in the open area it generates a false reflection from time to time as if there was an obstacle nearby. After googling, it turned out that this is some defect in the firmware of these sensors and most of the ones marked as hc-SR04 have it. I bought a slightly more expensive, branded one that does not have this defect, but it does not work well in the field. Placed 10-15cm above the ground (maximum height is limited by the housing), unfortunately sometimes it returns an echo of a nearby obstacle. I suspect the uneven arrangement of the grass causes such echoes. I tried to solve the problem by using more advanced read statistics to reject false positives. However, very narrow obstacles (a thin tree, a shovel left behind) will still be invisible to such a sensor. In tests, it turned out that a fairly effective obstacle sensor is the control of the current drawn by the wheels. This is currently the main obstacle detection method, and so far it is performing satisfactorily.
Of course, if anyone here has a proven ultrasonic or IR sensor that is resistant to the sun, I will be happy to test it. Another interesting solution for detecting obstacles is, for example, a circumferential hose with a pressure sensor. A collision with an obstacle presses on the hose, in which the pressure measured by this sensor increases.
Motor driving the cutting disc.
I decided to use a ready-made solution here, there was no point in messing with a custom drive, since they are available at an affordable price. The choice was between two engines: with or without hall. Previously, I tested one without Hall, unfortunately the nature of the control of such a motor is a bit rough. The controller at start-up is a bit hesitant, he has to jerk the engine to orient himself in the position of the shaft (back EMF). In addition, there is some difficulty in stability at low rpm under load (commutation "knocks" audible). In this case, the cutting disc does not have to rotate quickly. Since my previous experience with Hall engines suggested that such a one is more precisely controlled in low speed ranges, I decided on one with Hall. The choice fell on the engine from the Worx mower model 50032554.
Cutting disc.

The original cutting disc for this engine is a bit small and I want to mow wider, at least 20 cm (the original one is probably 14 cm). The engine has a large reserve of power, so it can handle more with ease. The disc is CNC cut from polycarbonate, 3 knives cutting every 120 degrees are oscillatingly screwed to it. Cutting height adjustment is achieved by selecting the appropriate extension between the blade and the mounting bracket on the motor axis (3D printed element). The cutting height changes very rarely, and actually only once, so unscrewing the 3 screws that fix the extension and the blade is not a problem.
Mowing algorithm.
Most cheap mowers drive randomly, bouncing off the boundary wire or obstacles, changing the angle of reflection so as not to lead to the effect of cornering. Then the mower can loop on a certain closed section, repeating it indefinitely. Some additionally detect local density of grass and can make an additional circle in such a place. Since such a mower drives practically non-stop during the season, there is a high probability that practically every place will be visited by the mower in no more than a noticeable increase, i.e. a few days. In my case, the terrain is quite complicated, it has islands, connectors, etc. That's why I divided it into 3 areas. Going all the way would be inefficient. It's better to focus on one more often because you'll finish it faster and then move on to the next. The whole thing should be completed in a maximum of 3 days. The mower is assisted by GPS in order to roughly mark these area boundaries.
What's left to do.
Shield cover. charging station. Station search algorithm, support with an additional cable leading to the station, docking. For now, there is no concept of charging contacts withstanding currents up to 5A. I'd love to hear ideas on how to do this.
Problems encountered during testing so far.
Phantom wire detection where there is none. It turns out that the rotating knives generate pulses detectable by the Manchester decoder, which from time to time coincide with a 16-bit pattern (we have only 65,000 combinations), i.e. its mirror image. This is not a major problem (the mower just changes direction). I plan to change the transmission frequency so that it does not coincide with the rotation of the shield and possibly change the code to 32-bit, which will definitely reduce the probability of randomly generating it by interference of this type.
A free-turning wheel with an exposed steering bearing is not a good idea, I'm afraid of its quick blurring with clippings. Adding the planned cutting blade guard or replacing it with a shielded bearing wheel may help here.
Cool? Ranking DIY