<br />
== Motors ==
Data on the drive motors, brush motor, and vacuum fan.
=== SetMotor Command ===
Motor speeds can be set using the SetMotor commands. This command is handled asynchronously, so you can query other commands while the robot is moving. The simplest way to set both the left and right motor speed is to use:
SetMotor left_dist right_dist speed
Some examples:
* SetMotor 100 100 100 - will move the robot forward 100mm, in approximately one second* SetMotor 100 -100 100 - will turn the robot to the right in place, for 1 second.* SetMotor 100 200 100 - the robot will move forward and to the left, for 2 seconds.
The base width separation of the wheel is approximately 248 millimeters. Therefore, the circumference when turning in place is approximately 780 millimeters. Thus, we can turn the robot using:
* SetMotor 195 -195 100 - the robot will turn in place, 90 degrees to the right.
<br />
== Neato XV series WiFi remote control ==
Neato is great in cleaning by it self, it also has good “spot clean” algorithm! But, what if you want to clean just a certain spot? In other words - use it like a regular vacuum?
As you may know, you can manually control Neato right out of the box by connecting it to any computer via usb and, through any terminal program, send commands to robot (for some reason article describing command list on official Neato site is unreachable at this moment, but you can get it by typing ‘help’). The way you can control Neato movements is described here: XV-11 API Commands
This is really great, but how can one use it for robot’s intended purpose if he or she is limited by the length of the wire? Of course you can take a laptop! But for me it was not the answer. Luckily, my friend recently has brought a compact (very compact) WiFi router (Commonly available from eBay as “2g/3g/4g wifi router”, also known as HAME MPR-A5 and MIFI-F5. MPR-A1 and clones are likely to work as well if you manage to fit them in. Some additional material is available on <nowiki>http://my-embedded.blogspot.com/2013/12/mini-4g-router-rt5350f.html</nowiki>) and suggested that we should try to embed it into my Neato.
So, it was obvious that all we needed was to find +5V power supply and connect usb from router to neato’s usb. All that sounds simple, so we did it. (i should say that my Neato has rev.64 main board)
[[File:Neato WiFi Controller attached.jpg|none|thumb|''VCC - Red wire, D- - White wire, D+ - Green wire. (regular USB pinout)'']]
Very soon we realized that, first of all - there is no powerful enough +5V source on the main board, and the second one - Neato’s software blocks it from normal functioning if it senses power supply on its usb
The answer to the first problem was as simple as buying 5V 500mA DC-DC converter ([http://www.digikey.com/product-search/en?FV=fff40042%2Cfff800df%2C1140050%2C114016f%2C11401ab%2C11401c9%2C15c0002%2C8f40010%2C8f40011%2C8f40012%2C8f40013%2C8f40014%2C8f40016%2C8f40017%2C8f40018%2C8f40019%2C8f4001a%2C8f4001b%2C8f4001c%2C8f4001d%2C8f40021%2C8f40022%2C8f40023%2C8f40024%2C8f40026%2C8f40027%2C8f40028%2C8f40029%2C8f4002a%2C8f4002b%2C8f4002e%2C8f40030%2C8f40031%2C8f40032%2C8f40034%2C8f40035%2C8f40037%2C8f40039%2C8f4003b%2C8f4003c%2C8f4003d%2C8f4003e%2C8f4003f%2C8f40041%2C8f40042%2C8f40043%2C8f40044%2C8f40047%2C8f40048%2C8f40049%2C8f4004b%2C8f4004c%2C8f4004d%2C8f4004e%2C8f4004f%2C8f40050%2C8f40051%2C8f40052%2C8f40053%2C8f40054%2C8f40056%2C8f40058%2C8f40059%2C8f4005a%2C8f4005b%2C8f4005e%2C8f40060%2C8f40061%2C8f40062%2C8f40063%2C8f40064%2C8f40067%2C8f40069%2C8f4006a%2C8f4006b%2C8f4006c%2C8f4006d%2C8f4006e%2C8f40083%2C8f40085%2C8f40086%2C8f40087%2C8f40088%2C8f40089%2C8f4008f%2C8f40090%2C8f40091%2C8f40093%2C8f40095%2C8f40096%2C8f40097%2C8f40098%2C8f4009b%2C8f4009e%2C8f400a1%2C8f400a2%2C8f400a3%2C8f400a4%2C8f400a5%2C8f400a7%2C8f400a8%2C1180005c%2C17d4003e&mnonly=0&newproducts=0&ColumnSort=1000011&page=1&stock=0&pbfree=0&rohs=0&quantity=&ptm=0&fid=0&pageSize=25 DC-DC on digikey.com]) A local shop had Peak PSR-7805LF available for a reasonable price so I settled on that one.
[[File:Neato WiFi PCB Power.jpg|none|thumb|Neato WiFi PCB Power]]
Answer to the second problem was a bit tricky! On the router board there is a source of power which can be turned on/off by changing state of its GPIO8 (echo 1 >/sys/class/gpio/gpio8/value), so my friend suggested that we will be able to control usb power supply by one P-N-P transistor witch base must be connected to that gpio. All that going to be great if only router could gave us +5V, but its voltage is only +3.3V. In the end the answer was found: we’d connected +5V from DC-DC to the Neato’s usb through one p-n-p and one n-p-n transistor (with a pair of resistors) controlled by the router’s +3.3V as shown below.
[[File:Neato WiFi adaptor schematic.jpg|none|thumb|Neato WiFi adaptor schematic]]
[[File:Neato Wifi Adaptor solder points.jpg|none|thumb|To get rid of micro USB plug we soldered power supply wires from DC-DC right on router’s board]]
[[File:Mini 4g router pcb bottom.jpg|none|thumb|To get rid of micro USB plug we soldered power supply wires from DC-DC right on router’s board]]
[[File:Neato Wifi Dremel Modification.jpg|none|thumb|To fit router with all the stuff inside neato’s body i’ve made a small ‘modification’ using my dremel]]
[[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!