R1 Embedded Source Code 1.0

Here is the source code for R1 version 1.0. It’s just the embedded half – I still have to license the host code.

It’s Open Source under the GNU General Public License. This means that you can do anything you like with the code but, if you distribute copies (even compiled copies burned on to chips) you must also distribute the source code with it. Including your modifications.

If you want it with a different license, contact me.

The code compiles and runs fine with Cygwin make. It would take some skill to get it to compile under a different environment such as the Arduino IDE.

I’ll try to explain what’s going on in the code in later postings. For now, Click Here to download.

– Ralph

Why Use XBee Communication Modules in R1

A Facebook friend of mine asked me why I chose the XBee modules for the R1 system. I’ll answer here so others might benefit.

There were basically three classes of wireless link technology in the running: Low cost digital radio, XBee and WiFi. I ruled out WiFi without really testing it because I was afraid the robot communications might get bogged down if someone else in the house was watching Netflix or doing a download. I don’t really have any evidence that there would be such a problem but, I didn’t want to put down the money and find out later. That left the choice between radio and XBee.

Pros for XBee

  • No special software is needed on the host computer. The PC “sees” nothing but a standard serial port.
  • No special software needed on the Arduino. Just connect the Tx and Rx pins and it’s off and running.
  • Two way communication. Many of the cheaper radio modules are one-way. R1 needs to “talk” back to the host as well.
  • Error detection and correction. I’ve seen dropped messages but, never an incorrect message.
  • XBee “looks” like a standard serial link so, I can download new Arduino firmware through the wireless link – no need to connect a programming cable. I do, however, need to press the reset button on the Aruduino – there are articles on the internet about how to do it without pressing reset.
  • More than two nodes can be involved in an XBee network. It would be possible to control multiple robots from one host computer.

Cons against XBee

  • Expensive – considering the cost of two XBee modules and two adapter boards, it’s the most expensive “part” of the system.
  • The 1mW “regular” XBee modules are unreliable when the robot is in a different room than the host computer. Several retries are often required when doing a sensor scan because of dropped data. The Pro modules may be better in this regard – I’m not sure.

That’s all. Thank You!

– Ralph

Adafruit – An Awesome Vendor

I highly recommend Adafruit Industries as a supplier of electronic components.

Her site (I think of the store as a “her” so, that’s the pronoun I’ll use here) promotes education and creativity in the field of electronics especially for women, young people and artists. However, it appeals to me a great deal too and I’m not in any of those categories.

One time, I ordered a bunch of parts from her and after putting them in the robot, I thought one of them was defective. I posted on her “help” page with info about the problem. She handled my case very politely and sent a replacement part free of charge. A couple days later, I found out I WAS WRONG! The part wasn’t broken at all! Maybe I’ll send a couple of customers her way and make up for the money she lost…

Whenever I need a part, I’ll always check Ada first and if it’s on her site, I’ll buy it from her – no doubt.

– Ralph

R1 Parts List

This is a partial parts list for making a R1 robot. There are some small electronic components like resistors and capacitors that are not on the list because I got them from my preexisting supplies. There are also some hardware store components like electrical tape missing. However, this list has the main components.

Of course, a bunch of tools are needed (including a soldering iron). A digital multimeter is highly recommended. Continue reading