An Advanced, Low-Cost Robot

for Research, Teaching, and Outreach

Hardware Specifications

Robot Dimensions Robot Performance
* Wheels - 32mm * Min Speed: 15 mm/sec
* Distance between wheels: 82 mm * Max Speed: 250 mm/sec
* Total weight - 330 grams * Run Time: Approx. 4 Hours
Computation User Interface
* Texas Instruments LM3S8962 Stellaris Processor * 3 user mode buttons
* CPU - ARM Cortex-M3 running 50MHz * 15 LEDs
* 256 KB Flash * Radio (2.4Ghz), 2Mb/s data rate
* 64 KB SRAM
InfraRed (IR) Sensors
* 8 IR transmitters * Encoders: 0.0625 mm / tick
* 8 IR receivers * 3-Axis Gyro
* Detect signals in a 68⁰ arc, with 22.5⁰ overlap * 3-Axs Accelerometer
* Localization, Communication, Obstacle Detection * 4 Analog CdS Light Sensors
* Top-mounted IR beacon for global localization * 8 bump sensors for 360⁰ detection: Digital
Power Extras
* 3.7V 2000mAh Li-Poly Battery * 3 Chassis components, 2 Circuit boards, 14 screws
* Low: 140mA system power without LEDs or motors * Internal speaker with MIDI sound output
* High: 650mA at motor stall and max LED output * Smart power control with airplane mode capability
* Average: 510mA at normal motor and LED conditions

Charging Case: This project was started in Summer 2012 in order to build an object that would be able to transport robots safely, store them comfortably, and charge them effectively.


r-one Library API
* r-one Operating System
* r-one Core Library

R-one GUI: The RoneGUI was developed to easily debug software and hardware issues without the use of a specific embedded development environment such as CodeSourcery's Debug tool. It allows you to plug any robot with current MSP430 and 8962 code into a computer via the USB port and give specific commands (motors, leds, radio, and IR) that the robot will execute. Once you remove it from your computer, the robot will resume the program it was executing.

Development Environments: Code Sourcery

To program C on the robots with Code Sourcery, you will need the specific build attached below TODO: Attach .exe to install Sourcery when the upload size limit is larger than 2MB. You will need a license to use Sourcery, which can be purchased from the Sourcery Website.

You will need to install drivers for the Stellaris FTDI boards in order to use them to program the robots - driver files are attached below. In order to properly install them, plug in your board, open Device Manager, and select Update Driver Software for the device. Specify the folder you have placed the driver files in; if the installation was successful, the programmer will appear under "Ports" with no question marks. There are also FTDI drivers for the r-one, which Windows 7 installs automatically. If the automatic installation fails, these files are also attached below, and the same steps will install them.

To program with Code Sourcery, follow these steps:

  1. Step One: Build
    • Open CodeSourcery and build your project by either going to the Project drop down menu or pressing the hammer icon in the toolbar. Now if you have any errors in your code, they will show up now and you will not be able to move forward until you fix the errors.
    • In the Project drop down menu the "Build Automatically" may already be checked, so it may build automatically for you. However, go ahead and build it anyway so that you have the newest .bin file to program the rone with.
  2. Step Two: Debug Configurations
    • Now that you have successfully built your program you now have to program the rone. First, locate the debug button in the toolbar (it looks like a bug...). Now press the little arrow immediately to the right of the bug (this should give you the menu in the picture highlighted in red). Locate "Debug Configurations..." and press that.
    • The Debug Configurations window should now be open. At this point double-click the Sourcery G++ Debug option in the list to the left of the window.
    • At this point you should see a Debugger tab with a red X. Go ahead and click on that.
    • Now that you are in the Debugger tab you can optionally deselect the "Stop on startup at:" box. If you leave this selected, every time you debug you will have to press the play button.
    • At approximately the middle of the page you will see a secondary row of tabs. Go ahead and click on the "ARM Settings" tab. If your JTAG programmer is plugged in to both your computer and your rone then the "Debug Interface" and "Device" drop down menus should be populated. If they are not populated then go ahead and locate the appropriate device in the "Debug Interface" menu (ARMUSB (Stellaris) device). If you select this and you do not see the secondary drop down menu for "Device" try unplugging and plugging in your JTAG programmer and hitting the Refresh button. Once the secondary drop down menu appears, it should be populated. Once you have everything setup here then you can now press the Debug button.
  3. Step Three: Debug Perspective
    • This will then move you to the Debug Perspective. If this is the first time doing this you will get a window telling you that CodeSourcery is now opening the Debug Perspective and will verify that you want to do this. Incredibly redundant since you are the one who wants to debug. Anyways, if you never want to see this supercilious warning again check the "Remember My Decision" box and click yes. The Debug perspective will now open.
    • If you did not perform the optional step above regarding the stop on startup at: you will see a green arrow that you will have to click to run your program. If you unchecked that box then your program is running and it should be doing whatever esoteric task you have given it (maybe blinking a light, maybe priming the nuclear panic button, maybe outputting to the serial port, the world is your oyster!)

FAQ: Other Errors

  • Problem: cannot find -lFreeRTOS
    • Solution: FreeTROS and driverlib are not recognized as CDT projects. The .cproject files have been modified in a strange way, delete the .cproject and .project files and re-import the whole robotcode directory!
  • Problem: Loading 95% - after hitting debug code sourcery progress bar only goes to 95%
    • Solution: If it hangs at 95% it will not move beyond that mark and will not function. You need to kill the process restart the robot and try again. Verify that the debug configuration window has been set up correctly, especially the Device part.
A Low-Cost Multi-Robot System for Research, Teaching, and Outreach
Pose Estimation With Low-Resolution Bearing-Only Sensors
Using Multi-Robot Systems for Engineering Education: Teaching and Outreach with Large Numbers of an Advanced, Low-Cost Robot
Project Type: 
Associated Projects: 
Multi-Robot Systems Engineering
Toaster Charger