Programming wireless devices can
be a chore, but the use of scripting
languages like Python can turn rapid
frustration into rapid development.
I tested this theory with the Synapse
Wireless EK2500 development kit,
which I combined with iRobot’s Create
here in the lab (see “Commanding The
iRobot Create” at www.electronicdesign.com, ED Online ID 16148).
Most w ireless development for
802.15.4-based solutions is done in C or
C++. This often requires in an 802.15.4 protocol or a ZigBee protocol
stack. Downloading
via JTAG tends to be
fast but tedious since
a connection to the
device is required.
Tools like Ember’s
InSight development
kits solve this issue
with backdoor development
boards (see
“A ZigBee InSight,”
ED Online 16484).
The boards include
an interface to a second,
wired network
with a host processor
that handles the
wireless device’s programming
and debugging. It is one of the
best solutions I have found.
It took less than an hour to wire up Synapse’s
SN171 Proto board to the iRobot
Create (see the figure). I had to unplug the
iRobot Command Module with its 8-bit
Atmel AVR to get access to the iRobot Create’s
serial port.
Synapse’s Portal Pro software runs on
the PC that connects to the wireless network
via another board. This makes the
PC part of the mesh network running
Synapse’s own SNAP (Synapse network
appliance protocol).
Each Synapse board contains a SNAP
RF module that runs SNAPpy, Synapse’s
16-bit integer flavor of Python. Python
can also run the PC, providing a consistent
development environment. A Python virtual
machine executes compiled scripts on
the module.
The Python environment runs on top of
the Synapse system software, including the
802.15.4/SNAP protocol stack. Its remote
procedure call (RPC) interprocess communication
system is also consistent across
the wireless mesh network, which provides
script download capability. Including this
underlying system means the SNAP
already handles the
network management,
so programmers
concentrate
the application
instead of the
communication.
There are limits
to the current
system, including
fact that it only
basic debugging
capabilities. But it is easy
applications on the
PC, debugging facilities
are impressive.
LOOK OUT FOR ALTERNATIVES
Of course, programming alternatives for
low-power wireless solutions aren’t limited
to Python. Some Java alternatives are
even in the mix.
Sentilla offers a Java virtual machine
( JVM) that runs on a Texas Instruments
MSP430 and is paired with a Chipcon
802.15.4 radio (see “The Challenge: Handling
1000 Cores Wirelessly,” p. 18). The
advantage of Java is a development and
deployment infrastructure that spaces
the network from this tiny mote to enterprise
servers.
The bottom line is that options are available
if you look for them. The time you take
to find them will often pay off in reduced
development time.
IROBOT • www.irobot.com
SYNAPSE SEMICONDUCTOR •
www.synapse-wireless.com