REVIVING AN ANDROBOT BOB: Part 4
New firmware loaded on co-processor
(also mounting of footlight driver).
Getting New Code Into BOB
Whether the Handy Board is a new one and the
firmware needs to be downloaded, you’re just sending
down the latest Interactive-C program, or you’re just using
the Interactive portion of Interactive-C, you need to have a
connection to the Handy Board. This normally requires
connecting a serial cable to a small charging adapter which
then connects to the Handy Board via a four-pin RJ- 11
cable. The manual firmware download is a bit finicky in that
the timing requirements are fairly strict and it uses a slower
rate (1200 baud) than the normal communication speed
(9600 baud) used by Interactive-C. Since it is rare that the
firmware needs to be refreshed (thanks to the addition of
the NVRAM mod), this isn’t much of a problem. We only
need to do that again if the NVRAM gets corrupted
Close-up of A7 Engineering eb501-SER Bluetooth adapter.
62 SERVO 05.2008
somehow or we want to download a newer image of
the firmware.
Since BOB has his own brain on board, I wanted him
to be autonomous like he was originally intended to be. I
needed to easily send down new code as new features
and routines were constantly created. The ability to use
the interactive portion of Interactive-C helped speed
development along. The solution was just to cut the cord
and go wireless. Bluetooth works well to create this wireless
link. On BOB, I am using an eb501-SER Bluetooth module
from A7 Engineering that has both RS-232 level and logic
level serial signals available. The connection to the Handy
Board is pretty straightforward and only requires +5V,
ground, RX, and TX. It just requires a custom four-pin
adapter made from an old phone cable.
One end was cut off and a six-pin connector was
installed to hook up to the 5V logic level connector on the
A7 Bluetooth module. The four-pin modular connector
on the Handy Board has the ground, RX, and TX already
present. However, it was lacking the +5V supply since the
power lead on the RJ- 11 jack is normally used to charge
the Handy Board. Since the Handy Board in BOB has
been modified to run off a 5V DC-DC converter, another
modification was done to route this +5V to the RJ- 11 so
it can power the Bluetooth module. The adapter for the
hardwired connection was also modified so that it can be
powered from the Handy Board, as well.
Many newer systems already have built-in Bluetooth
adapters. However, these may be a Class 2 device with a
range of only 10 m ( 33 ft). The adapter I used on the PC
was a ZOOM Bluetooth USB adapter, model 4310. This
is a Class 1 device with a small antenna so it is rated at
100 m (330 ft) to match the A7 Bluetooth adapter on the
robot. This provides an excellent range of operation. The
Bluetooth adapter looks like a serial port on the PC. The
first time the adapters are used they have to be paired up
with each other. It is a fairly straightforward process on
the A7 module, but may be different for other Bluetooth
adapters.
Once this is done, it should not need to be done again
unless one of the adapters is swapped out. Now whenever
BOB is powered up, it shows as an available serial port. It
works great for downloading new programs into BOB and
also working with him interactively. The only portion that
poses a problem is the rare occasion for new firmware. It
hasn’t been a problem yet, but I do plan on wiring up a
DPDT switch to toggle between the Bluetooth serial device
and the hardwired serial connection. If I ever do have to
send down the low level firmware again, I can just flip a
switch, plug in the Interface board, and send down the
code. Once there, just flip the switch back and go back to
wireless operation
Building up BOB’s Code Base and
Adding Autonomy
The code for the little co-processor doesn’t change too