<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 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!”. :* [[:File:Readme.txt|Readme.txt]] of the LinuxSrc folder
<br />
=== Bootloader Access ===
NeatoBootVer,2.0,0
=== Supported commands at bootloader console ===
{| class="wikitable"
|Command
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'''''
File size invalid
=== Neato open source code ===
The files are clearly identified as open source! (106MB)
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://www.lpclinux.com/LPC313x/LPC313xMain How to get Linux running on a NXP LPC313/4/5
<br />
== PCB Versions ==
=== Early PCB Version ===
[[File:Neato XV-11 Early PCB Version.jpg|thumb|'''Neato XV-11 Early PCB Version''']]
{| class="wikitable"
! colspan="3" |Neato XV-11 BOM and Parts identification
|
|-
|
|
|
|
|-
|Ref. Desg.
|Manufacturer
|Part Number
|Description
|-
|
|
|
|
|-
|U1
|Allegro
|A3950SEUTR-T
|DMOS Full-Bridge Motor Driver
|-
|U5
|Allegro
|A3950SEUTR-T
|DMOS Full-Bridge Motor Driver
|-
|U16
|ST
|LIS302DL
|3-axis - ± 2g/± 8g smart digital output “piccolo” accelerometer
|-
|U17
|Fairchild
|MM74HC4051MTC
|8-Channel Analog Multiplexer
|-
|U18
|Fairchild
|MM74HC4051MTC
|8-Channel Analog Multiplexer
|-
|U26
|Allegro
|A4490EESTR-T
|Triple Output Step-Down Switching Regulator
|-
|U29
|ATMEL
|AT91SAM9XE128-QU
|AT91 ARM Thumb Microcontrollers PQFP208
|-
|U32
|Winbond
|W988D6FB
|SDRAM (typeno varies) - 256Mb (32MByte) Mobile LPSDR
|-
|U34
|ZETEX
|ZXMHC3A01T8
|COMPLEMENTARY 30V ENHANCEMENT MODE MOSFET H-BRIDGE
|-
|U36
|National Semi
|NC7SZ14
|Tiny UHS Inverter with Schmitt Trigger Input
|-
|U39
|
|
|
|-
|U44
|National Semi
|NC7SZ14
|Tiny UHS Inverter with Schmitt Trigger Input
|-
|U45
|National Semi
|NC7SZ14
|Tiny UHS Inverter with Schmitt Trigger Input
|-
|U35
|ST
|NAND128W3A2BN6
|16MByte small-page NAND flash
(on bottom side of PCB)
|}
<br />
{| class="wikitable"
!Ref. Desg.
!Description
|-
|J1
|Charging Jack
|-
|J2
|UI Board (LCD/Buttons)
|-
|J3
|Direct connection to the ERASE line of the AT91 processor!! Shorting this jumper and rebooting the
XV-11 will result in a complete loss of programming. No known recovery method at this time.
|-
|SW1
|Switch input used to hard reboot the processor. Probably used in conjunction with J3 for development
purposes.
|-
|P1
|Battery pack thermistor input (Thermistor measures ~10k at 70 degrees Fahrenheit on battery)
For battery locations, viewing XV-11 from above with the laser at the bottom and bumpers up top:
Wire Color\Pins
Orange,Blue\1,2 = Left Battery
Yellow,Green\3,4 = Right Battery
|-
|P2
|Main power input
|-
|P3
|Header for Bluetooth module (BlueSMiRF)
|-
|P4
|Unknown. Leads to SPI of the AT91 processor: Probably MMC/SD connection.
|-
|P5
|Bumper switch inputs x4
For button locations, viewing XV-11 from above with the laser at the bottom and bumpers up top:
Wire Color\Pins
Blue\1,2 = Left Side
Yellow\3,4 Top Left
Purple\5,6 Top Right
Orange\7,8 Right Side
|-
|P6
|Header used to communicate with the AT91 via serial connection.
P6:1 Unused (square pad), P6:2 AT91_RXD, P6:3 AT91_TXD, P6:4 Ground
|-
|P8
|LIDAR Motor connector
|-
|P9
|Brush motor Input/Output
Pins
1,2 = Brush motor power
3,4,5 = Input from encoder
|-
|P10
|JTAG. Bottom row: VDDIO (square pin), TRST, TDI, TMS, TCK. Top row: GND, GND, SRST, TDO, RTCK. The JTAG-port unfortunately is software-disabled for debugging the ARM processor core.
|-
|P11
|Viewing XV-11 from above with the laser at the bottom and bumpers up top:
1,2,3 = Top Right Side Wall Distance Sensor (Sharp 0A51SK F 0X)
|-
|P12
|LIDAR power/serial connection
|-
|P13
|Magnetic strip sensors and floor distance sensors (detecting edge before falling down stairs)
For sensor locations, viewing XV-11 from above with the laser at the bottom and bumpers up top:
Pins
1,2,3 = Top Left Distance Sensor (Sharp 0A51SK F 0X)
4,5,6 = Top Left Hall Effect Sensor (Allegro 21E)
7,8,9 = Top Right Distance Sensor (Sharp 0A51SK F 0X)
10,11,12 = Top Right Hall Effect Sensor (Allegro 21E)
|-
|P14
|Speaker
|-
|P16
|Dustbin installed/removed input (Soft rubber button under dustbin)
|-
|P18
|Charging input for wall docking charger
|-
|P19
|Vacuum motor
|-
|P20
|USB Connection to ATMEL processor
|-
|P22
|Right Wheel
Pins
1,2 = motor power
3,4,5 = Input from encoder
|-
|P23
|Left Wheel
Pins
1,2 = motor power
3,4,5 = Input from encoder
|-
|P24
|Temperature input from brush motor, taped to motor (Measures ~10k at 70 degrees Fahrenheit)
|}