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