Automower!

We’ve run a Husqvarna 450x on a steep lawn using stock firmware since 2017. The experience has been a mix of enormous wins and terrible failures.

The wins:

  • When it works, it’s awesome – it mows and you can sit back and relax.
  • It’s quiet. No more relaxing afternoons shattered by thundering gas mowers.
  • It’s inspiring. It mows a pretty large area for its size – shows what a small relatively simple robot can do if it runs 24/7.

The Failures:

  • When it rains. At first it’d just get stuck at the bottom of the yard. Then we upgraded to the ‘offroad’ wheels. Why in the world wouldn’t that come standard!? it’s a mower! It still got stuck, in the same spot, just digging deeper holes than with the original wheels. So I staked out sheets of chicken wire in the worst spots – where it’d get really muddy. Think like tire chains unrolled all over any spot it’d get stuck. Worked great. no longer gets stuck. Good right? NOPE! It mows the heck out of the bottom 1/3 of the yard. It doesn’t have enough traction to keep the front of the mower pointed up the hill so it usually ends up curving off and inevitably getting stuck with zero battery at the bottom of the hill, creating brand-new muddy patches. I think we ended up with 100’+ of chicken wire protected edge zones before it stopped getting stuck.
  • Wire loops. We have more than 1k feet of wire loop. They tell you just cut the grass and stake a wire down, you’ll be all set. What a joke. I ended up spending ~ 1-2hrs every ~ 2 weeks either replacing cable, hunting for broken wire, fixing corroded connections, etc… wire loops are junk. Single stranded /solid wire will get you much better results but still sucks and still eventually will fail. It’s metal in water with electricity – corrosion will win. Wire is an expensive consumable.
  • Doesn’t have zones? I think the new mowers actually may have zones now. Want to bet if it’s annoying to set up those zones? Probably requires you log in with an email address and a password. What do you bet they patented the idea of mowing the lawn in zones, or using an app to select a mowing zone, or some bs like that. Half the stuff they do on these that makes no sense is ’cause someone has a patent they have to engineer around. The app this mower uses was garbage and won’t let you drive it remotely or restart it remotely.
  • When a board or sensor inevitably goes bad on the ‘bot. Eventually a motor, board, or sensor is going to fail on the robot. For us that meant at least once per year a ~$300 visit to husqvarna dealer who would usually take between 2 weeks and a month to fix the problem, even if you tell them exactly what board or sensor you need. For $300 I should be getting next day shipping of the board to me, not a month later! Since 2017 we’ve had: 2x mainboard, 1x sensor was cracked, 1x charging problem somewhere, 1x power supply, and wheel motors need a rebuild/regrease every ~ 1.5 years.
  • Only husqvarna dealers can install boards. There’s a special dealer only software that lets them see sensors / initialize boards / etc… and you can’t have that software.
  • After it’s been in the shop for a month, your grass has grown so tall that the robot will mow itself a very small ‘nest’ and will just bump into the grass and turn around, mowing the heck out of one little patch of lawn, leaving the rest at knee height and growing. You essentially have to own a backup lawnmower. Which means you then still have to maintain the backup lawnmower!

The last straw:

The final failure happened last fall: the charger dock or possibly a FET on the mainboard stopped working. I decided we’re going to fix this once and for all. Rip out the circuit boards and do something better. I started with openmower, but eventually found it was increasingly complicated to use a different servo amp and mower than the openmower standard. ROS adds complexity not simplicity. Simple stuff has less to fail and is easy to modify.

So: here we go. Simplemower! This is a bare minimum rectangle mower. Can’t even find it’s way home when it runs low on battery – you have to drive it home. It doesn’t backup and retry when you hit something. Yes I’ll eventually do some path/homing code, but honestly it’s working great this year and I need it to mow so code edits are on hold till the grass stops growing!

Important features that are working in new version:

  • RTK. No more boundary loop + ready to create your own navigation algorithm. (You probably won’t like my nav algo and I probably won’t like yours so write your own. Taking full control of your robots makes you smarter, guaranteed!)
  • Zones. I set mole traps, park tractors, work on projects, and kids leave toys all over. I want to quickly say let’s mow upper yard/ back garden/ lower yard /etc…
  • WSDA remote control from a browser. Restart auto mode from a browser. Get most diagnostic info you might want from a browser, easily add/print more diagnostic info to the browser. Change the code of the mower without recompiling…. from a browser!
  • Simple code – single control loop that: checks sensors, checks control input from browser, writes back status to browser, then sends out commands to the servo amp.
  • Uses existing automowers and their fairly reliable and replaceable sensors/motors so that you don’t have weeks of downtime when something breaks! Integrates the bumper and Estop buttons of the automower. Use any SBC with minimum 2x serial, 1x usb, and 5 digital inputs + 1 adc.

So far 300 hours of mowing and works great. See the github for future fixes/plan/more technical info.

Cheers!

-Reworker