Hackers Welcomed, Here’s Our Protocol

Ever since we created our first prototype, we’ve wanted Romo to be hackable. Inspired by Makerbot and the Seattle makers’ community, we set out to design a universally compatible, flexible, and cheap robot.

With the first generation of robots shipped in December, we have included 3 auxiliary outputs in the front of the robot that you can plug actuators into and draw 5V power from Romo’s battery. We have also provided an iOS library that you can download and use to create your own apps for Romo. But what happens when you don’t have an Apple developer license or have intimate knowledge of how to create mobile apps?

Some of our most zealous users have taken this a step further. For example, Craig helped us by posting the audio signals required online: http://romotive.com/forum/discussion/15/control-signals-decoded. Thanks, Craig! We didn’t want these findings to get lost in the forums, so we’re giving you a bump here on the blog.

Summarizing Craig’s findings:

Left Movement - 950 hz sine wave on left stereo channel
Right Movement- 950 hz sine wave on right stereo channel
Forward Movement- 250 hz sine wave on left stereo channel
Reverse Movement - 250 hz sine wave on right stereo channel
The length of the signal determines how long the particular movement/motor is active.

To add to the above, peSHIr’s (Jarno) mentions that you can also affect the motor speed by modifying the amplitude of the sine wave. Many times, you can make Romo go slower by turning down the volume a few notches.

What does this mean for you? For the December first generation robots, all you need to move the robot is the ability to generate or play a sine wave of 950hz and 250hz continuously.

More specifically:

  • 950hz sine wave on the LEFT stereo channel = Left Motor Reverse, Right Motor Forward = Left turn in place
  • 950hz sine wave on the RIGHT stereo channel = Left Motor Forward, Right Motor Reverse = Right turn in place
  • 250hz sine wave on the LEFT stereo channel = Left Motor Forward, Right Motor Forward = Forward
  • 250hz sine wave on the RIGHT stereo channel = Left Motor Reverse, Right Motor Reverse = Reverse
What about the auxiliary ports? Currently, the auxiliary ports are always on. With the second generation robots, we’re working to get the ability to control these ports by sending  the board specific signals. We’ll post that as soon as  we get that stable.
The next generation of the firmware (available in Feb) will allow the robot to have variable speeds for the robot and better control over the auxiliary ports. For our first generation owners, we’re happy to guide you through updating your firmware.
Robot power!

2 thoughts on “Hackers Welcomed, Here’s Our Protocol

  1. Could you update this post for the second edition Romo? The byte commands are far more difficult to reverse engineer.

    Thanks!

  2. Pingback: Hackers Welcomed: Here’s Our Second Generation Protocol | romotive

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>