Irobot Serial Control Interface Inc
Here’s how to make a serial cable to control a Roomba with your Mac/PC. IRobot Roomba manufactured after October 2005 contain an electronic and software interface that allows you to control or modify Roomba’s behavior and remotely monitor its sensors.
One reason to control a Roomba using Racket is. Which provides a Bluetooth interface for the iRobot. For this in iRobot Roomba Serial Command Interface. I set out this weekend to get an Arduino board to control my. Page 2 of iRobot’s SCI (Serial Command Interface). To “Controlling A Roomba with an Arduino.
This interface is called the or Roomba SCI. When you’re done making this cable/board you can download free software to control the Roomba.
HOW TO – Make a Roomba Serial Interface By & A week ago I got my OSMO//hacker Roomba firmware updater from iRobot. It worked like a charm, giving me a serial port to fully control the Roomba. An interface was needed however, since the crazy mini-DIN 7-pin on the Roomba is very unstandard. So the first attempt at a robust interface between a Roomba and a standard PC serial port is my Roomba Serial Interface. The Roomba Serial Connector It seems people are confused by the mini-DIN 7-pin connector, citing difficulties in obtaining that specific plug. It turns out that mini-DIN 8-pin plugs will mechanically mate with the 7-pin jacks, with the center key hole in the 7-pin female jack taking the middel pin of the 8-pin plug.
Mac high-speed serial cables from the 1990’s work great for this, and I have a ton of those from all my misspent youth doing MIDI on a Mac. So chop up those old Mac serial cables! If you can’t find one, Jameco will. The PC Serial Connector Some computers have an RS-232 serial port. To hook this serial interface cable up to your Mac or other modern computer without an RS-232 port, use a Supported on all platforms and the choice of Mac hardware-hackers worldwide.
Step-by-Step Construction details The Roomba SCI is a serial interface protocol to let you control your Roomba, but the port on the Roomba doesn’t conform to RS232 standards. This board does the conversion.
There are two boards shown here. The first version (larger, encased in lexan), and the second version (smaller, encased in a blue floss box). Circuit is simply a 7805 +5V voltage regulator and MAX232 RS-232 transceiver, appropriate capacitors to make it work and a ‘power on’ LED. Because everything needs an LED. Flickr photo with notes.
Below are parts lists from Jameco (and one from Radio Shack). Jameco doesn’t have the cheapest parts, but they do have an easy-to-use site, ship fast, and carry just about everything that a weekend electronics geek would need. If you want to really scrimp, shop at Digikey or Mouser, and you’ll probably save a few bucks on these parts. Parts Flickr photo with notes.
Parts list (from Jameco): – 1 x ($3.29) – 1 x ($3.95) – 1 x ($0.27) – 1 x ($2.19) – 1 x ($1.40 for 10) – 1 x ($0.69 for 100) – 6 x ($1.20 for 10) And from Radio Shack: – 1 x ($1.79) Luckily I had all these parts in my part drawer, so the actual cost for me was zero. If you’ve ever done any little projects, you probably have some of these parts laying around too. Tools needed Flickr photo with notes. Cutting the cable Strip off the big plastic cover, then strip off about 1/4″ from all the wires inside. Then do a continuity test on each wire to figure out which colored wire goes to which pin on the jack.
Each cable I’ve done has had a different color-to-pin mapping. Circuit diagram Larger version. Putting the components on the prototyping board Cut the prototyping board in two, since only half the space is needed. Place the chip so it straddles the two big verticle bus lines, then start placing parts around it, using the connected pads to minimize the amount of wiring needed.
Of course, a few wires are always needed. For that use snipped leads from parts. Also, create test points using snipped leads to check voltages. It’s really handy to have the vertical bus lines and the three pads joined. This board is like the best thing Radio Shack sells.:) Wire up the cables as shown in the schematic and the pin-to-cable color diagram made for the particular cable, solder them down, and hot-glue the cables to the board for strain relief. Flickr photo with notes.
Testing the voltage After all the parts are soldered, use the +9VDC wall wart power supply to power up the circuit, and check voltages. The LED should light up and +5VDC should be coming out of the regulator. The LED lighting up means the interface is getting voltage from the Roomba. The enclosure is a floss container. Consumer products have a lot of interesting plastic enclosure styles, and so cheap!
This one was something like $2.49. A little time with the diagonal cutters and soldering iron allowed the board to fit. Once it’s in the enclosure, hook up the +9VDC wall wart again and measure voltages on every pin on each cable, to make sure the circuit doesn’t fry the Roomba or the computer’s serial interface. Get the software Now drive your Roomba around like a little tank and play music on it!
For more details on the software, see Special note: This how to will also be posted to the. If you build any Roomba project and would like to contribute to the wiki email.
Serial Control In Library
README.md iRobotcppinterface C interface to control the Roomba iRobot Create through a serial port. Implemented for Windows (tested in Windows 10) and Unix (tested in Ubuntu 14.04).
Robotics project (November 2015) Check the corresponding main files for an example of how to use the interface. Known issues: While the iRobot moves around it stops processing new input (enters a 'wait' state) and stores any succesive commands in an internal buffer to process them after the current movement is completed.
This buffer holds 256 bytes; sending too many commands while the robot is in the wait state will overwrite it and cause erratic behavior. If you do have to send many commands wait until the robot processes some older ones (and the buffer clears) to keep sending commands. This will usually not be an issue unless you send many commands which take long for the robot to process, up to 20 succesive moveAheads or turnLefts still work fine.