Does this project spark your interest?

Become a member to follow this project and don't miss any updates

autoCut - robot lawn mower on steroids

17 82 54
Enjoy this project?
Share on twitter   Share on Facebook

This project was created on 07/06/2014 and last updated 7 days ago.

autoCut is an automatic lawn mower. The goals are:
- Fully automatic operation
- Battery changing station instead of charging
- Long term: Do not drive through the garden in a random manner but with a plan


- Four weel drive with kink steering
- Electric mowing height leveling
- Two 85 watt mowing motors, each equipped with two very sharp blades, able to snap back on hard obstacles
- On the fly interchangeable LiPo-battery with voltage monitoring, about 1 hour of battery live on active mowing
- Wifi network connection for web interface which includes gamepad/joystick remote control
- Modular electronics: a cuple of modules, connected with a power- and I²C-bus with a Raspberry Pi as master

System design of the robot itself:

Overview of the whole system:

  • 1 × Raspberry Pi B (first version) Running Arch Linux; soon to be replaced due to I2C issues (hardware related)
  • 1 × TP-Link USB Wifi dongle with wide range antenna
  • 1 × Power supply module provides UBat, 5V; Battery voltage monitoring, 5V fallback system, fuses
  • 1 × Driving module 4 H-Bridges, Back-EMF speed measurement; hinge angle measurement, automatic drive regulation
  • 1 × Mowing module 2 H-Bridges + ADC for electronic mowing heigt setting, 4 FET driven PWM channels with Back-EMF for mowing motors
  • 2 × 14.8V 5Ah rechargeable LiPo batteries Main power supply
  • 2 × 5V USB power bank Fallback for the system to run even if main batteries disconnected (change batteries)
  • 4 × 6-24VDC geared motors for driving (CHM-2435-1)
  • 2 × 12VDC mowing motors
  • 1 × 12VDC geared motor for setting mowing height

See all components

Project logs
  • Ultrasonic data transmission - proof of concept

    7 days ago • 1 comment

    One of the outstanding features of autoCut is the ultrasonic positioning system. Since no other (lawn mower) robot I heard of has this feature it's a tough one. I posted a sketch on how this could work and I set out to make a proof of concept.

    After some tinkering it works very well, here's a demo:

    This is how it works:

    The signal on top is the one fed into the ultrasonic transmitter. It is 40KHz as long as data is transmitted, and on every 1 there is a phaseshift of half a period (waves get inverted). On the oscillating receiver this causes the amplitude to drop to 0 and then start rising again. So 1es are where the amplitude is zero (blue dots) and 0 are where the amplitude remains high (red dots).

    In this case the data stream is 01100011, written in correct binary: 0b11000110 (least significant bit gets transferred first).

    The signal of the receiver gets amplified, one-way rectified and buffered by a capacitor. This creates a signal the represents the amplitude of the received signal.

    With the help of  a small phaseshift (caused by resistor+capacitor)  comparator creates a digital signal which indicates when a signal starts rising or falling. Now when the amplitude is ~0 and starts rising again, the digital signal switches from low to high. Under friendly conditions this is enough already to decode the data stream.

    To make sure that the switches from low to high are valid 1es (amplitude must be near zero) another comparator is used to create a signal representing the level of the amplitude. To receive a valid 1 the flank from low to high must occur AND the level of the amplitude must be zero. As you can see I also introduced a small XOR-checksum, which will be extended to 4 bit due to occasional false data (2 bit: 25% chance that checksum of corrupted data stream happens to be right).

    So far I'm pretty satisfied with the results. Improvements I'm working on:

    • use MAX232 as amplifier for the transmitter
    • use better receiver/transmitter capsules
    • use a better operation amplifier for the received signal (CA3140 so far which can't do rail-to-rail -> 2-3V max output on 5V power supply)
    • Get bidirectional data transmission and distance measurement working
    • work out a way to spread the sound into all directions

  • Bunch of minor updates

    7 days ago • 0 comments

    Already some time ago I built this prototype of a battery pack:

    It can hold two 14.8V 5Ah LiPo batteries wired in parallel. I did some tests with one battery earlier and estimated from that this should be enough to mow at least 1.5h non stop.

    Apart from connector orientation the design is mirrored. The front face with the two connectors will sit on the robot with the left connector providing the amps and the right one reporting individual cell voltages. The connectors on the other side (facing upwards when battery pack is mounted on robot) do exactly the same. The idea is that the battery changing station can grab the pack and connect to it in one step. The changing station will be a big disk that can rotate, move up/downwards and hold up to 3 battery packs (see sketch on system design)

    The biggest problem on a mechanical point of view is how to craft the docking mechanism. The problem is that this has to be very accurate to work smoothly, but my most advanced tool is a cordless drill... Fine adjustment must be possible via screws with washers in bigger holes or something.

    This are the electronics inside the battery pack. There are two of these simple boards in one battery pack:

    As you can see rather simple, simply a bunch of connectors and solder pads to join everything in parallel and provide mounting options. The PCB is homemade via toner transfer (probably should do a video on my selfmade laminator and etching machine..)

    I also purchased the mowing plates and hood that will be laser cut from aluminium:

    As you can see blades of different sizes and two or four blades per plate can be mounted.

    All in all it's 65€ and the parts will arrive ~ 10. Oct. I purchased at an their website/tools are really great, will see how the parts turn out.

  • Thoughts on the ultrasonic navigation system

    a month ago • 0 comments

    As you might have read I claim the ultimate goal of the robot to be to navigate through the garden with an ultrasonic positioning system. I thought about navigation and positioning since the beginning of the build, but just recently something came up my mind that I think of as an realistic solution: sound

    Sound moves rather slow compared to the speed a microcontroller can process data, thus making precise distance measurement easy. There's a great chance you actually used one of these at some point:

    This is a HC-SR04, a cheap (~5€) ultrasonic distance sensor widely used by hobbyists. The principle is fairly simple: One of the round thingies is an ultrasonic speaker, that transmits a short ultrasonic burst into the world. Eventually this sound reaches an object and gets reflected on its surface (echo). The other round thingy listens for that echo. The delay between transmit and the receive is what the module sends to your microcontroller which can then easily calculate the distance from that.

    Now I want do take this principle one step further:

    Read more »

View all 7 project logs


xaveriusarian wrote 7 days ago null point

can i get full spesification aand sorce code ?

Are you sure? [yes] / [no]

schuhumi wrote 7 days ago null point

Source -> Sure! Theres this GitHub link on the left:
See "Software" folder for sourcecode for all the controllers/webserver/etc

Specification -> I'm not sure what you mean by that.. In case you want schematics etc. -> same GitHub link. But most of the mechanics are crafted by staring at aluminium rods, having an idea and smashing it together. So there are barely any mechanic plans jet

Are you sure? [yes] / [no] wrote 2 months ago null point

Have you considered using a string trimmer instead of blades?

Are you sure? [yes] / [no]

schuhumi wrote a month ago null point

No, but the idea is so good, that I actually tried it out. You can expect an video on that ;) (spoiler: It's to energy expensive)

Are you sure? [yes] / [no]

cBake wrote 23 days ago null point

This. You should consider using the commercially available weed-whacker string, as they have already done all the leg-work figuring out what works well, and it is cheap and easily to find. The energy-expense aspect should be determined by the rotating mass, and the friction of the rotating assembly (given a constant grass inflow), not RPM. The key is gearing your motors down for the proper cutter RPM - figure out what a good cutting RPM is and then gear your motors to operate in their peak efficiency. See motor torque-RPM curves for more info on that.

Are you sure? [yes] / [no]

Adam Fabio wrote 2 months ago null point

Great work schuhumi! Thanks for entering autoCut in The Hackaday Prize! A robot to mow the lawn has been the holy grail of every kid that spent an afternoon with a push mower! You're doing great so far - those mowing videos are impressive! Keep the updates coming, and make sure autCut is prepped for mowing in space!

Are you sure? [yes] / [no]

schuhumi wrote a month ago null point

Thank you very much! Sorry for the gap in updates, you can expect more content soon

Are you sure? [yes] / [no]

J Groff wrote 3 months ago null point

They have a system on some table saws that is some sort of capacitive meat detector and clutch that immediately stops the blade. I recall a dramatic demo where the guy jams a hotdog in fully spun up saw and it left nary a mark.

Are you sure? [yes] / [no]

Byron (odiekokee) wrote 2 months ago 1 point

it's not exactly a's a spongy aluminum block that gets hard jammed into the blade and stops it in 3 blade teeth passing, destroying the aluminum block, blade, and sometimes motor shaft....but still better than a finger. Seen it demonstrated in person with a finger analogue (hotdog). Rather impressive. unless you were really carried away, 3 teeth will barely draw blood.

Are you sure? [yes] / [no]

PointyOintment wrote 2 months ago null point

It's called SawStop.

Are you sure? [yes] / [no]

schuhumi wrote 2 months ago null point

That is a brilliant idea! I used this technique in a POV-Clock before to start and stop it. It's rather easy to implement as long as the circuit ist connected to earth, just measure the time a microcntroller neds to charge a 0V-leveled detector-pin with the internal pull-up to high-level. long time -> someone touches the pin

I will definitely do some testing on this.

(BTW: I'm rather bussy at the moment, but I'll continue on this after thursday)

Are you sure? [yes] / [no]

PointyOintment wrote 3 months ago null point

The blades fold when they hit hard obstacles, but what happens when they hit soft obstacles (like feet)?

Are you sure? [yes] / [no]

schuhumi wrote 3 months ago 1 point

As you can see in the update I'm working on a cover/bumper. But I'm still concerned about this problem, since it's quite hard to tell the difference between bare feet and thick tufts of grass. I thought about IR LEDs and how grass and skin/stones/garden hose (<- all flat surfaces) reflect the light differently. Or something capacitive (did a few experiments some time ago, worked remarkably well) since feet/garden hoses contin lots of water, but I reckon this won't work on wet grass..

Are you sure? [yes] / [no]

jlbrian7 wrote 3 months ago null point

Looks like it should be finding landmines instead of mowing the lawn.

Are you sure? [yes] / [no]

schuhumi wrote 3 months ago 1 point

luckily landmines are a rare occurrence in my garden :) In fact I didn't plan on a mowing robot from the beginning, thus the kinda strange construction. But I like how it turned out and that it is not as boring as the usual designs.

Are you sure? [yes] / [no]

cBake wrote 3 months ago null point

how terrifying. awesome.

Are you sure? [yes] / [no]

schuhumi wrote 3 months ago null point

glad you like it ;-)

Are you sure? [yes] / [no]