Discman Powered Mower

Moved to here. Have a nice day 😁

19 thoughts on “Discman Powered Mower

  1. It seems unlikely that the mower is examining minute details of ringing and overshoot in the signal, as this would require a lot of processor power for seemingly no good reason. When you ‘scoped the signal applied to the perimeter wire, did you examine it closely for distortion? 0.7 ohms is quite a low resistance, and at only 8KHz the impedance of the (essentially) straight perimeter wire won’t be much higher than the resistance. I’m pretty sure the humble LM386 was never designed to drive such a low impedance, and I’m rather surprised that it works at all in this case. If you have a closer look at the waveform you may find severe distortion.

    You could always feed the signal from the original perimeter switch, (with appropriate attenuation as required), into the LM386 and run the test again. This would either implicate or absolve the LM386.

    If the LM386 is the culprit, then have another go at reverse-engineering the output stage of the original circuit. (Sharpen your meter probes to help pierce the conformal coating, or use sewing needles attached via clip-leads). It may be the case that if you can duplicate the original loop-driving circuitry your CD recording will work as expected.

    If you do get it working, it would be interesting to play around with the signal timings to get a feel for just how sophisticated the mower’s signal-examining capabilities are.

    1. First of all, thanks for such an helpful comment. You make some very good points.

      Regarding the issue of placing a very low resistance of 0.7 ohms on the output of the LM386, I did add an additional ~5 ohms of resistance in series with the perimeter wire when driving the signal (I mention this above but perhaps not clearly enough; you can just about see the resistor in the bottom left of my breadboard in the photo). As a result the output of the LM386 was loaded with ~6 ohms which I think is in its acceptable range. Is this what you meant?

      Your idea of feeding the (suitably attenuated) signal from the genuine perimeter switch through the LM386 is an excellent point. A friend also suggested this to me and I should really do it because, as you point out, it is very likely to resolve the issue of whether the LM386 is at fault. I’ve added it to my TODO list for next time!

      I may also take up your suggestion of trying a bit harder to overcome the conformal coating and reverse engineering the output stage of the original circuit. I think the conformal coating I’m dealing with is a bit nastier than some types and so I’m not sure if the sewing needles will work but I’ll definitely give them a go.

      Thanks again!

    2. The other thing I should say is that I did look at the signal both from the genuine perimeter switch and from my discman+LM386 with my ‘scope across the perimeter wire while.

      In each case the signal was “dirtier” than when using a simple resistor in place of the perimeter wire but much more so for the original perimeter signal (I should really rerecord this data and post it). It’s not completely clear to me what is the dominant effect causing this but it makes me think that the mower may have learned (in calibration) to look for the distortions in the signal from the original perimeter switch and doesn’t like my cleaner signal as much. This was one of my thoughts when I suggested than recalibration might work but it’s hard to be sure.

  2. Thank you so much for sharing your research! Many of us in the RoboMower community have been wondering about the possibilities of improving or replacing the perimeter switch to get more power or a longer timeout, etc. Your findings are a great contribution to the base of information on the device.

    We’ve started documenting some of the RoboMower inner workings at http://robomowerwiki.com/index.php/RoboMower_Internals. There is a link there for the data sheet on the fluxgate compass module you mentioned. I believe the compass is only used so the mower knows what direction it’s facing and maybe to help in keeping a straight path. I know if you move it while it’s mowing it will go right back to the direction it was heading.

    There are four sensor coils, one in each corner of the mower, that are used to detect the perimeter wire signal. You can go into the service menus and watch the real-time values for each of them.

    I just did some searching and found several RoboMower patents. I’ve added links to them from the RoboMower Wiki page I mentioned above. Looks like the one you want is here: http://www.europatentbox.com/patent/EP1906205A1/abstract/349290.html

    1. Wow, thanks Doug. I’m embarrassed that I hadn’t found your Robomower Wiki already; it certainly is a mine of information. I’m delighted that you think my investigations here might help the effort documented on your wiki to understand how the various robotic mowers work.

      Although I had intended to cease my investigations, I have been sufficiently encouraged by your comments and others’ (e.g., those on hackaday) that I plan to carry out one final set of experiments. Hopefully after that, I will know how to make a *reliable* perimeter switch and this may be useful to you. I expect to get this done the weekend of July 10th.

      Lastly, thanks for the patent link. I should have looked at this already! After a quick read through, it is a *very* useful document though there are definitely some differences between the hardware I was working with and that described in the patent.

      Good luck with your project!

  3. Oliver,
    Great post on your research. Thanks. I inherited an RL550 but the magnet attached to one of the drive pinions is mangled. Anyone know how special this needs to be? COulc a common magnet segment be used?

  4. Great blog!

    For some time there the RL 2000 is around now. I heard it has a new ‘digital’ perimeter switch and it is said to be conscious of being inside the wire. This in contrast with the older types which would just notice passing the wire.

    1. Thanks Frans, I’m glad you’re interested.

      I had not heard about the RL 2000’s perimeter switch so I must look into it when I get a chance. If it is the case that the new perimeter signal is somehow digital (perhaps modulated digital data on a carrier but who knows!) then it would make the whole setup more robust and could well remove the need to calibrate the mower. Also, it would be impressive if the mower can tell the bounded from the unbounded component of the perimeter loop as you say. All very interesting so thanks again for bringing it to my attention.

    1. I don’t think the board is sold separately I’m afraid. Perhaps someone can tell me different though?

      If you’re willing, you should be able to build your own switch using the details here. I’m pretty sure it would work perfectly and reliably if you were willing to recalibrate the mower.

      In any case good luck with whatever path you end up taking..

  5. I have built a perimeter switch for a lawnbott professional mower. Its just a sine wave generator at around 7khz. Pretty simple.

    Funny thing, I first used my laptop to generate the exact frequency, but due to a bit of low frequency noise on the output (as seen on analgue scope), it played havoc with the mower.

    Instead I built a sine wave generator from a kit for around 20quid, hooked it up to a 50w car amp, and altered the frequency until the lawn bott took off. This is working perfectly. The lawnbott isnt that sensitive to the actual frequency say+- 100hz works ok as long as it is constant.

    Perhaps the distortions created by recording and replaying the signal through the discman are giving you similar issues?

    Perhaps a sine wave generator at 8khz with brief off periods will do the trick?

    1. Hi Clive,

      Congratulations on your success with Lawnbott. A 50W amp seems like a pretty beefy piece of kit to generate what I imagine is a fairly weak signal but the most important thing is it worked. I am particularly interested to hear that your Lawnbott is robust to approximately a 1% change in frequency. Anyway, great work!

      Thanks for your comments on my situation. The possible distortion caused by my recording and then playing back the signal through my discman (as well as subsequently amplifying it with the LM386) must surely explain why my recorded signal did not work. Indeed I connected my ‘scope up while running this early experiment and did observe some mild distortion/noise (some of which I mention above).

      However the signal I generated using python and played back through the discman+LM386 was extremely clean (again, I looked on the ‘scope while testing in place with the mower). In fact it was a good deal cleaner than the signal which I measured in place for the actual Friendly Robotics perimeter switch. So from that I decided it was likely the mower was calibrated to some of the artefacts/glitches present in FR perimeter switch’s signal and if I was willing to recalibrate with my clean signal, the mower would work. This would also fit with why replaying the recorded signal did not work because the glitches were higher frequency than audio and would have been smeared. Of course the filter in the mower *shouldn’t* be sensitive to these but I’d guess it is a bit.

      I never tested recalibrating because I didn’t own the mower and didn’t want to mess with its calibration due to the outside chance of ruining it.

      In any case, thanks again for the interesting data and good advice and congratulations on building your own solution.

  6. My brother suggested I might like this blog. He was entirely right.
    This post actually made my day. You can not imagine just how much
    time I had spent for this info! Thanks!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s