|Note: This tutorial requires voiding your Neato XV-11's warranty and removing the laser from the robot. Your robot will not work without this laser present. For using the robot inside ROS, please see: The Neato Robot Stack.|
|Please ask about problems and questions regarding this tutorial on answers.ros.org. Don't forget to include in your question the link to this page, the versions of your OS & ROS, and also add appropriate tags.|
Connecting the XV-11 Laser to USBDescription: This tutorial will show you how to remove the XV-11 vacuum cleaner's built in laser and connect it as a stand alone laser scanner through USB.
Tutorial Level: INTERMEDIATE
Next Tutorial: Running the XV-11 Node
So you want to use the XV-11 laser without gluing the vacuum robot to the top of your iRobot Create? This tutorial will show you how to remove the laser and connect it using an FTDI serial to USB adapter while also drawing power for the motor from USB as well.
Removing the Laser from the Robot
RobotShop.com has created a nice video explaining how to disassemble the XV-11. You can stop following this walkthrough when you can remove the four screws holding the laser in place. The approximate timestamp is 2:15.
Before you disconnect the wires, be sure you are statically grounded and in a cat-free zone. You should now have the laser unit removed. It should look like the following:
Understanding the Connections
The four wire plug is a 3.3V serial connection. The red wire requires +3.3V and the black wire is ground. The Orange is "TX" or transmits from the laser. The Brown is "RX" and receives for the laser, but does not appear to be used since the laser begins outputting data as soon as the motor is spinning at the appropriate speed. The electronics inside the laser require approximately 120mA peak to operate.
Note: Brown is actually labeled "TX" and Orange is labeled "RX" on the PCB inside the laser. My best guess is that these are written in the Neato XV-11 frame instead of the laser frame, such that RX on the laser PCB goes to RX on the Neato's onboard computer.
The two wire plug connects directly to the motor. The motor is typically powered by 12V pulses at 25% duty cycle. This works out to a constant potential of +3.0V from the red wire to ground. The motor requires approximately 100mA peak at 3V to operate.
An Example Connection to USB
Now that we know the connections that need to be made, we can set up the unit so that it is entirely powered and interfaced to through USB.
- XV-11 Laser Unit
Sparkfun FTDI Basic Breakout - 3.3V. http://www.sparkfun.com/products/9873
- A sacrificial USB mini cable.
- Connecting wire
We used a Sparkfun FTDI Basic Breakout 3.3V as our USB to serial converter. This allows the laser to show up as a /dev/ttyUSB* device and be mapped using the FTDI udev rules. Unfortunately, this board does not create enough power to run the electronics.
You will need a 3.0V regulator for this project. 3.3V will spin the motor too fast and the unit will not output data. We actually used the REG104FA-3, but I do not recommend this part as the surface mount pins are fragile, easily broken, and this part has unnecessary features. The part listed above should be fine for this project, but does require filter capacitors.
Once you have gathered all of your pieces, you will need to carefully remove the outer layer from your USB cable. Once you have the inner four wires exposed, you need to tap into the +5V and Ground to create the following connections:
Note: We have left off the diode to protect the laser from the inductive motor creating large spikes of voltage. You may want to use one to guarantee safety of your laser.
In this diagram, you can see that we've powered the laser from 3.0V instead of 3.3V. This has worked fine in our application. Remember that the motor needs 3.0V instead of 3.3V or it will spin too fast.
The RX pin of the FTDI adapter will be connected to the Orange wire. The Brown wire does not appear to be necessary or used, and can be ignored.
Once you have everything connected, be careful of shorting and test it out. It may be a good idea to run this from a bench power supply before plugging it into a computer.
Once you have verified that everything is working, you should have something that looks like this and you can move on to the next tutorial!
Additional USB Connection Option