Open main menu

Changes

3,473 bytes added ,  23:09, 26 April 2020
[[File:Neato Wifi Adaptor install.jpg|none|thumb]]
So now i have a fully functional Neato with a full control from any place in the world ;) I can remotely start cleaning in full cycle, or change its schedule, or use it full manual, or, even, just play like with RC car!
 
<br />
 
== Open source Linux for Neato ==
Newer models (XV-14/XV-15/XV-21/XV-25 ???) with board revision 64 are running on Linux Kernel 2.6.33.7
 
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”
[[File:Neato XV-11 Photo of CD.jpg|thumb|Neato XV-11 Photo of CD]]
[[File:Neato XV-11 Folders of CD.jpg|thumb|Neato XV-11 Folders of CD]]
 
 
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 presense 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
 
<br />
 
=== 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.
help
Cmd not recognized.
getversion
NeatoBootVer,2.0,0
 
=== Supported commands at bootloader console ===
{| class="wikitable"
|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
 
=== Neato open source code ===
The files are clearly identified as open source! (106MB)
 
http://www.axifile.com/en/F2D0DB4C4E
 
(note: if this link doesn’t work anymore, then there was no use for it in the past 30 days... let me (KPPlayer)
 
know and I’ll upload again.)
 
=== Other resources ===
http://www.nxp.com/products/microcontrollers/arm9/LPC3143FET180.html Vendor info and datasheet for the NXP LPC3134
 
http://dfu-util.gnumonks.org/ USB DFU (Device Firmware Upgrade) Utilities. DFU possible?
 
http://www.lpclinux.com/LPC313x/LPC313xMain How to get Linux running on a NXP LPC313/4/5