Ego Z6 Autonomous Mower Conversion

I’m happy to share the STL files, it’s probably the best way to make sure they don’t get lost :slightly_smiling_face:

I’ve attached a zip containing all the files I haven’t already posted.

The main Hall sensor box might need a bit of explanation as I squeezed the PSU in as a bit of an afterthought. It sits on a little ledge held in place by one of the case screws. I could do this because some of the PSUs I received had a bit of extra fibreglass attached so I could drill a hole in this.

Unfortunately I didn’t take any photos of the completed box and I don’t really want to take it to pieces again.

The USBbracket and USBbracketCover files are for a port I added to make programming the ESP32 easier. This isn’t strictly necessary but was useful during development…

It’s designed for this cable.

The screws for the USB C breakout boards are 2.5mm, all the others are 3mm.

I second your recommendation of using an electric mower if starting from scratch. Another advantage is that it’s much more responsive without the lag of servos and hydraulics.

EgoSTLfiles.zip (124.4 KB)

2 Likes

Thanks again Martin for more and more information.

Your mower project is so sanitary and clean. Congrats on really great execution and for leaving your expensive warranted mower so un-molested. It really satisfies my type-A personality. I hope to get something done on this project over this long American Independence Day weekend coming up.

My ESP32 is likely a bit newer. It has USB-C not micro USB for the programming port, so I’ll need a different jumper cable. It’ll be handy to be able to plug into the laptop directly.

Thanks Bob. I’m actually really pleased that you and Max are able to make use of this stuff, it makes all those hours probing with a logic analyser seem more worthwhile.

If you are using a different ESP32 board just make sure it doesn’t use an S2 or C3 version of the ESP32 as these variants only have 2 UARTs and you need 3 for this project.

Have fun with the build at the weekend…

1 Like

Totally agree… no cut wires, just plug & play; love it. Also, the reuse of existing fasteners. Simply great.

It still puzzles me how you have cracked this protocol… and I cannot imagine how many hours of your life you spent on this. I am not a CRC bit-shifter guy, hence, I truly appreciate your work even more.

How did you go with the fine-tuning of the steering?
I said elsewhere I am selling the Cub Cadet ZT2; it sold within two days… it was the better mower, but no fuel, as in being electric beats the other short-comings. The ZT2 was also smoother and more predictable to operate.
What I noticed on the EGO Z6, when going levers full forward, retracting (say) the left a bit, still runs the mower straight. The mower only turns significantly when one lever is pulled back beyond neutral. With the ZT2, forwards and backwards motion over lever movement was equal.
I can imagine this will be difficult to control.

I don’t recognise your description of the Z6 steering at all Max. On my mower if I pull one lever slightly back from full forward the mower starts turning straight away. If one lever is fully forward and the other is at neutral the mower almost does a zero turn. I’d say it’s very sensitive and easy to place accurately. Maybe there’s something wrong with your mower?

There is a difference in wheel speed between forward and reverse but this can be compensated for with the MOT_THST_ASYM Ardupilot parameter.

Determining the CRC polynomial was actually quite easy. I fed a few messages into this excellent program and it gave me the polynomial immediately.

I also have never noted needing to pull back much from full stick to begin steering. My mower seems to behave closer to what Martin is experiencing. Left wheel neutral and right wheel full or any amount will pivot about the left rear wheel.

What a great shortcut for the Cyclic Redundancy Check. Nice software.

I began trying to setup the main ardupilot box this weekend. My CubePilot Orange fits perfectly in the housing right where your Pixhawk sits. However, my ArduSimple sourced GPS boards, which includes one big and one piggyback small board don’t fit in the box. Additionally, Yuri mentions that configuring those boards to work with Ardupilot is possible, but a real fiddly pain in the neck. I’m considering purchasing GPS boards which match the pair that you used @MartinRob.

  • Can you share the make and model of those red GPS boards pictured or a link?
  • Second, what is the module on top which is labeled FS-1A10B. Is that an RC radio receiver? Do you only need it for RC control?
  • Third, do you have STL files for the white support shelves that those two modules sit on?

Good to hear you are making progress Bob.

The GPS boards I used were SparkFun GPS-RTK-SMA Breakout - ZED-F9P (Qwiic)

Yes, the FS-1A10B is the RC receiver. You need it for manual control, arming, mode switching, waypoint entry etc.

I’ve attached the STL files for the two support shelves

ModuleSupportSTLfiles.zip (5.0 KB)

Thanks for that. Do you have a recommendation on an RC controller? There is a sea of choices and I have zero experience with Radio Control stuff, other than PWM signals that we use for servos and motor controllers for our bigger robots.

I just went for a cheap one that would do the job, the Flysky FS-i6X with the 10-channel receiver option.

It seems to work just fine but I did make a couple of modifications. It uses AA batteries, and gets through them quite quickly, so I modified it to use rechargeable lithium cells. Also, the throttle joystick was not “return to centre” so I replaced that with one from eBay. I think there might be a kit to do this.

You might be better off finding a transmitter that already has these features.

My daily question for Martin…
Can you tell me about what path you followed to create your RTK base station, or do you have some RTK correction services available locally already?

There aren’t any free useable RTK correction services near me so I went for another UBLOX ZED-F9P as a base station. This time a Holybro H-RTK F9P Base connected to Mission Planner via USB.

I did dabble with connecting both the base station and the telemetry radio via Wi-Fi but I had some reliability issues so I went back to USB. It’s something I want to revisit though as it’s nice to be able to run Mission Planner remotely from the base.

Edited to say: presumably you could use your ArduSimple GPS as a base station.

I’m digging my Radiomaster TX16. Running OpenTX and Yaapu telemetry scripts …

Hopefully you meant EdgeTX, or you aren’t getting the most out of that radio.

Ha yes - EdgeTx…thx for spellcheck!