before there was arduino...

The Parallax Boe Bot

Something that may not be obvious from other articles is that my house is a mess. Our home is a very loving, but very lived in space. In one of our decontamination episodes with my youngest son’s room, we found this box sitting on his shelf with all his board games, unopened and unused:

box1

I asked my 13-year old son if he wanted to put it together sometime and he said yes. We then forgot about it for a few months. But finally, I took it off the shelf, dusted it off and then suddenly realized that we had stumbled on to three of my interests:

  • programming
  • electronics
  • retro technology

Which incidentally, are the keywords I’m using to tag this blog post.

The Background

I love sharing my hobbies with my kids, whether its programming or pen and paper RPGs. This seemed like a great opportunity to make use of something that has sat on the shelf for quite a while. And not just my son’s shelf. My wife estimated that this was a hand-me-down from when my son was about 3 years old and he’s now thirteen. So our friends’ kids probably had this kit sitting around for many years. You can see some of this evidence with the sample laptop and system requirements here:

box2

The copyright in the instruction manual says “2003-2010” which means at least the design of this kit is between ten and seventeen years old. Windows 7 came out in 2009, so that puts the kit closer to 2010, or they just didn’t update the software. What really makes it retro however, is PBASIC. PBASIC is fairly primitive and reminds me a lot of programming in commodore basic. More on PBASIC in a bit.

box3

What’s in the box?

In short, this:

What's in the Box

Sadly I didn’t take pictures of the parts before I put it together. The Parallax Boe Bot came with the circuit board, which contains ports for GPIO and motors, a breadboard and a place for the microcontroller. Then there’s all the mechanical components: wheels, a frame, screws, etc. Finally an assortment of electronic components like LEDs and resistors.

It also contains a fairly thick spiral binder with detailed instructions for assembly, testing and projects to do with your Boe Bot. Compared to some other online documentation I’ve seen for Raspberry Pi’s and such, the instructions for the Boe Bot are top notch. They not only explain the what, but also the why, giving you a solid foundation in the underlying theory behind the projects you’re doing. Since this stuff is geared towards educators, this makes a lot of sense. I have seen other arduino project kids on amazon that offer no information other than how to put the kit together and what code to type in, all in broken english with zero explanation of what you are doing or why it works. Parallax’s material is a breath of fresh air. I really can’t recommend it enough just for the book.

Getting Started on Windows and Mac

Getting started was the hard part. This is an old device, so information on it is a bit more scarce than it otherwise might be and some of the online documentation and links are outdated or outright broken. The one flaw is that the manual does NOT include much in the getting started department as far as finding software for your computer and sending code to the device. I finally emailed the company directly and surprisingly, they emailed me back almost immediately. I was a bit worried that I would not be able to use the robot, but they assured me it was still supported. They sent me a couple of links that got me started and with some additional googling, I was able to get up and running. I’ll save the gory details of the search and trial and error and give you what worked.

Windows is the easiest thing to get up and running. The manual makes reference to windows software which you can download below.

BASIC Stamp for Windows

Windows is the easiest to deal with. It was literally plug and play, compared to the tinkering with different drivers and stuff that I tried with Mac and the Chrome IDE. I recommend using Windows if you can, even if its for just troubleshooting to rule out any issues with the operating system.

For Mac users like me, I didn’t get far with the Chrome IDE which was my first choice. Instead, I found a version of MacBS2 (Mac Basic Stamp 2) that Parallax actually modified to work with newer OSX operating systems.

MacBS2

If you absolutely must use Mac, then the BS2 software is what you want. One thing I am still unsure about is whether you need a driver. If MacBS2 doesn’t work automatically, you might try this page:

Mac FTDI USB Driver

I never tried anything with linux. If you can get the Chrome IDE and some Linux drivers, its supposed to work but I suggest you email Parallax for help.

Finally, the entire book that came with my Boe-Bot is available online as a PDF. This will give you the full overview of how to work with the robot:

Robotics with the Boe-Bot

The Help File

There is one downside to the book that I’ve seen so far. The first chapter of the book that came with my Boe-Bot goes straight into dealing with servos and other slightly advanced topics. There is no basic introduction the book, but instead requires you to read the help file that is in the windows version of the Basic Stamp Editor software. This will get you started using simple DEBUG statements and troubleshooting any connections to your device. I really felt like this should be in the book, instead of referencing something else.

The online version of the helpfile is available below.

Basic Stamp Help

However, at the time of this writing the navigation isn’t working and search doesn’t seem to do anything either so it may be better to run the help file directly on your computer for the best experience. In any case, the help will enable you to identify which board you have, in my case the “Board of Education - USB”. There are also serial versions of the boards as well as a “Homework” board that differs slightly. In any case, I’ll try to link to each step in the process to the live version of the help file so you can walk through them as well as show some screenshots. I’m assuming my “Board of Education - USB” for all of the below steps.

Once you figure out which version of the board you have, there’s a few things to do:

  1. Inspect all the different parts of the board
  2. Assemble some of the robot, including the feet, power and the microcontroller itself.
  3. Test and identify your board
  4. Run a PBASIC Program

The diagram of the board looks like this and you can easily see the different switches, servo headers, power supply, I/O, etc. start

  1. 9V Battery Clip
  2. Barrel Jack
  3. Voltage regulator
  4. Power Indicator LED
  5. Servo headers (X4 and X5) and Power Select Jumper
  6. Power header (X3)
  7. Breadboard
  8. I/O Pin Access Header (X2)
  9. AppMod header (X1)
  10. Reset Button
  11. 3-Position Power Switch
  12. Socket for BASIC Stamp
  13. USB Programming Connector

The assembly steps involves merely putting on the rubber feet as well instructions on where to place the Microcontroller, power and USB connection:

The rubber feet: start

The Microcontroller placement and power/usb options: start

Finally, you need to power on the board. There is a 3-part switch. 0 for off, 1 for power to the board, and 2 for power to the board and motors. This is handy because sometimes you want to test things without the robot moving around on you!

start

Basic LEDs

So what can this thing do? Well, it seems at least somewhat similar to an Arduino device. The typical “Hello World” for an electronic device is to get some LEDs blinking. In addition, we can use PBASIC’s DEBUG command to print out a message on the screen. Unlike the help document, I figure we can combine these 2 steps if you want to follow below.

You can read the specifics in the official book above about the LEDs and resistors and there’s a lot of information about wiring a basic circuit like this all over the internet. So I’ll just show you a screen grab of the circuit from the book and the code my son and I used to get the LEDs to blink.

The book has you setup to LEDs and two 470ohm resistors. Like newer devices, it has GPIO pins that you can turn on and off with programing. Below is a screen grab of the circuit:

start

The two pins we care about are p12 and p13. These are the I/O pins we’ll turn on and off. Like any breadboard, the device automatically has pins wired underneath the board from left to right so the LEDs hook up one pin two the right of their resistors, and then the LEDs are just plugged directly into the “Vss” pins, which go to ground. I was a bit confused by the labels on the board “Vss” and “Vdd”, but these seem to be related to Mosfets for Voltage Drain and Voltage source. Once those are wired up, we can move on to activating them via code.

You’ll need to plug in the device to your computer’s USB port and launch the Basic Stamp software on windows or MacBS2 software on Macintosh computers. Start a new file (“File->New” typically works) and plugin in the following code for getting the LEDs to light up:

' {$STAMP BS2}
' {$PBASIC 2.5}
DEBUG "LED IS ON"

DO
  HIGH 13
  PAUSE 250
  HIGH 12
  PAUSE 250
  LOW 13
  PAUSE 250
  LOW 12
  PAUSE 250
LOOP

The first two lines are essentially “Macros” that tell the Boe-Bot’s microcontroller the version of the hardware and the version of PBASIC you are using. Both the mac and windows software has buttons or menu items to add these in automatically, or you can just copy and paste every time you start a new file.

The DEBUG command is essentially a “print line” type function, although more limited. It will run on the Boe-Bot’s microcontroller, but then echo back into the software for debugging purposes.

The DO command starts a loop, which in this case is endless because we have no conditions. After that, we use HIGH and LOW commands to turn on pins 13 and 12. We intersperse the PAUSE command for 250 milliseconds so the LEDs aren’t flashing faster than we can see. Putting this whole thing together will cause the LEDS to blink with one on, then the next on, then the first one off, then the second one off and repeat indefinitely.

To push the software to the device and run it, we just hit the “play” button that looks like an arrow or F9 on the windows version of Basic Stamp. You’ll see something like this:

Updating the Boe-Bot

And voila, the LEDs should start blinking back and forth as expected!

blinking
blinking
blinking

Next Steps

I tried to cover the bare basics to make getting started with this device as simple as possible. There’s a lot more my son and I have worked on since then, such as getting motors adn wheels attached and a speaker to work with the device. I’ll try to swing back and add post a few more updates to working with this old device.


retro electronics programming iot