Neato Robotics XV-21 Vacuum Cleaner: Cheapest Laser Scanner Ever!

Pulling the LIDAR unit out of a Neato Robotics vacuum cleaner is nothing new. The hard work was well documented four years ago. After watching eagerly from the sidelines since then, I ran across first a Woot! deal (that sold out before I could grab it) then started hunting around eBay for “parts only” robots. This November, I picked up an XV-21 (the pet-strength version), sold “as-is” and guaranteed not to work, for the winning bid of $59 + reasonable shipping. My hope was that the blank LCD was a motherboard or LCD controller problem and I only wanted the LIDAR. When my XV-21 arrived, I quickly disassembled it and got to work hooking it up and talking to it.


The Piccolo LIDAR is quite easy to interface to. It needs power for its DC motor (~3V spins it around 300 RPM) and its electronics module needs +5V (for all recently-made units), GND, and has 3.3V-level serial data in and out. I borrowed the in/out lines of the serial end of an Arduino Uno (tamped down with a simple resistor divider) and in short order was reading this on my laptop:

Piccolo Laser Distance Scanner
Copyright (c) 2009-2011 Neato Robotics, Inc.
All Rights Reserved

Loader V2.5.14010
CPU F2802x/c001
Serial WTD27312AA-0124364
LastCal [5371726C]
Runtime V2.6.15295

It was no surprise to see V2.6 firmware (I might have had older firmware with a Piccolo pulled from an XV-11 but all LIDAR units in the XV-21 appear to be +5V-powered and have the newest firmware). There are code examples out there for V2.4 and V2.6. I grabbed a Python script and was rewarded with a scan of the room!

XV21-scan(I am the “W” shape near the middle of the scan)

I have two immediate plans for this LIDAR: first, a hand-held planar scanner with an onboard graphical LCD for showing off and testing the performance of the Piccolo, and second, integrating it into my robot to provide a SLAM datastream in ROS to map rooms and avoid obstacles.


Leave a Reply

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

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

Google photo

You are commenting using your Google 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 )

Connecting to %s