Open Source Linux for Neato XV-

Return to Index

Neato Linux

Newer models (XV-14/XV-15/XV-21/XV-25 ???) with board revision 64 are running on Linux Kernel
The open source parts of the code are provided on the CD labeled as “Neato Vacuum User Guide” that comes with the robot. The source is located under the directory “LinuxSrc”

The source contains few Neato specific bits related to the operation of the robot, however some intresting details are disclosed:

The unpopulated footprint (J2) on the PCB Rev 64 is indeed a SD Card footprint, and the source reveals that the kernel has SD Card support.

The presence USB Gadget drivers of suggests that the Neato has USB OTG support and “Ethernet over USB” capabilities (unconfirmed)

Mystery .raw file \LinuxSrc\rootfs\etc\test_map.raw (400KB). Could this be sample LIDAR data?

Contents of the file \LinuxSrc\rootfs\etc\Issue: “Welcome hackers!”.

Readme.txt of the LinuxSrc folder

Bootloader access

Bootloader access can be achived by isseuing the following command to the robot over USB Serial connection.

testmode on
setsystemmode PowerCycleCDC

(*CDC = Communications Device Class ????)

The Neato then reappears on the serial bus (on Windows you might have to unplug and reconnect the USB cable for this device to appear) as an another device “XV-11 BOOTLOADER”

Accessing this device offers a limited console over USB serial with no local echo.
Contents of the folder LinuxSrc\boot indicate that U-boot is, or was used as, bootloader on the Neato at some point “[Hopefully u-boot doesn’t make it to production, but if it does..], LinuxSrc\boot\arch\arm\cpu\lpc313, line 453.
The Neato bootloader console does not support any of the standard U-boot commands.

Cmd not recognized.

Supported commands at bootloader console

Command Usage Description
GetVersion getversion Prints version information
Boot boot boot the robot OS
Upload ? upload firmware to the robot?
download firmware from the robot?

Looking for commands at the bootloader console
The bootloader console matches input stream “byte by byte” to find the first match. For example input “bootxyz123hskdfhskdjfhksjd”, triggers the “boot” command, ignoring any trailing charachters. This implies that there are no variations on commands like “bootusb” (unconfirmed).

Flashing the Neato

Warning messing around with the bootloader could potentially brick your robot with no known method of recovery
Using the bootloader console it might be possible to flash the Neato using a custom firmware (unconfirmed).

upload code
File size invalid

Other resources  Vendor info and datasheet for the NXP LPC3134  USB DFU (Device Firmware Upgrade) Utilities. DFU possible? How to get Linux running on a NXP LPC313/4/5

Return to Index

Leave a Reply

Your email address will not be published. Required fields are marked *