Development Kit Simplifies Wireless Communications

DN Staff

August 5, 2010

7 Min Read
Development Kit Simplifies Wireless Communications

Engineers might think wireless communications always involvescomplicated protocols such as Wi-Fi, ZigBee, Bluetooth and others. This kit from Synapse Wireless will dispel thatnotion as engineers and designers set up experiments and work throughdemonstrations of wireless control and data exchange. The kit includes twotransceiver/MCU boards, called RF Engines, an experiment "protoboard"and software. I enjoyed working with the kit and recommend it highly, eventhough I hit a few rough patches while performing this review.

Synapse created the Synapse Network Appliance Protocol (SNAP)that lets a network of Synapse RF Engine modules operate as peer-to-peerdevices. Each RF Engine uses an IEEE 802.15-4-compliant transceiver, the sametype of radio used for ZigBee, 6LoPAN and other network protocols. A SNAP-basednetwork, though, requires no hub or central network coordinator, but you can connecta PC to a network through an RF Engine and the Synapse Portal software. Becauseeach engine includes a microcontroller, in addition to wireless communications,you have as many as 19 I/O lines for digital, analog and serial signals.

The MCU in each RF Engine includes a SNAPpy interpreter thatoperates on a subset of Python-language commands. Developers load a SNAPpyscript into the MCU's Flash memory - via a wired or wireless link - to controllocal operations. A network of Synapse RF Engines requires no start-up time to"configure" itself, so setup of communications will occur almostinstantly. The engine modules automatically form a multi-hop mesh network thatoffers a sustained throughput rate of 38.4 kbits/sec, according to Synapse.

I quickly located the documents and manuals on the includedCD-ROM and printed those needed to run experiments. A Quick Start Guidedescribed and illustrated the hardware Synapse provides on the protoboard, onwhich I mounted one of the RF Engine modules. Diagrams clearly showed jumperlocations and pin legends, and text explained what I/O pins and jumpers connectto LEDs, a pushbutton and a serial port. The 19 I/O pins from the RF Engineconnect to screw terminals and to a 24-pin header, which makes the signalsreadily available for experiments and development work. Instead of using thesupplied batteries and battery holder to power the protoboard, I used the 9-Vpower cube.

Development Kit Simplifies Wireless Communications

Development Kit Simplifies Wireless Communications_A



The 51-page "EK2100 Evaluation Kit Users Guide"includes tutorial information and lab exercises, as well as information aboutother reference documents and about the RF Engine modules and how they work. Anout-of-the-box exercise let me set up the hardware and confirm a wireless linkexisted between the two RF Engine modules. The Synapse Portal software Iinstalled on a lab PC could then act as the "control center" formodule configuration and for loading Python scripts into the modules. ThePortal software that comes with the kit operates with as many as six nodes, butyou can purchase a license for the Synapse Portal software when you need tomove beyond six nodes. A final networkdoes not need a PC, but it can offer advantages I'll explain later.

During installation I went through the usual Windows set-up operationsfor a new USB device - the "bridge" RF Engine module connected to thelab PC that will communicate with the same type of module on the protoboard.(You can connect a "bridge" transceiver to a PC through a serial portinstead of using a USB port.) The Users Guide includes many helpful screenimages and information about the kit's software and hardware. And thedemonstration exercises or experiments include good step-by-step instructionsand helpful illustrations.

Development Kit Simplifies Wireless Communications

Development Kit Simplifies Wireless Communications_B


The second demonstration required connecting three LEDs and aphotocell to the screw terminals on the protoboard and loading new scripts intothe two RF Engine modules. Sometime during the loading steps I made an errorand the RF Engine on the USB port stopped communicating. It took a lot of timeand trial-and-error work to solve this problem.



No matter what I tried, I could not re-establish communications.The Portal software indicated it had discovered a SNAP USB device, but I stillcouldn't figure out how to get it to communicate with the protoboard. The UsersGuide lacked troubleshooting information, so I registered for the SynapseForums and found a suggestion about clearing out any Python scripts. Thattechnique didn't do the trick.

Eventually, I unplugged the USB stick and connected theprotoboard to a lab PC through a serial port. (You'll need your own 9-conductorcable for serial-port communications.) Then I reloaded the firmware (ver.2.2.16) in each RF Engine, which solved the problem. I cannot say mytrial-and-error approach will always get modules back "on the air." Ihope Synapse includes troubleshooting information in the next version of itsdocumentation. Information about how to get an unresponsive RF Engine back tobasic communications would help, too.

The remaining exercises went well and I could flash LEDs, detectlight levels and log sensor data. A temperature-sensing experiment didn't workquite as expected, but when I substituted a small potentiometer for thethermistor, the program gave a good result.

The final experiment used a Python script on the lab PC todisplay sensor data on a scrolling graph. Python on a PC gives developers awider range of capabilities than the Python subset that runs on the RF Enginemodules. Thus, you can use the Synapse Portal software and an RF Engine to actlike just another node, but with enhanced capabilities. A Python script could,for example, fire off an e-mail alert to you if a sensor output goes over orunder set limits. Or, you could get regular updates of sensor information astext messages. To me, that aspect of the Synapse kit should make it attractiveto engineers and other product creators.

The SNAP Reference manual provides a bit of information about howto send e-mail, and a Google search will help uncover useful information abouthow to use Python on a PC to create and send such messages.

The Synapse website will link you to the Forum site to downloadmanuals, software and documents. This section of theForum is difficult to find, so here's a direct link: http://forums.synapse-wireless.com/showthread.php?t=9.You must register, but registration doesn't ask for much information.

While trying to run the final experiment, I encountered anambiguous instruction that caused me to wonder how to proceed:

Step 1 - Switch back to the Node View pane in Portal and Uploadthe script call "PortalManyMeter.py" to the Portal node. This file will belocated in the "My Documents\Portal" folder.

I tried to upload the script but got an error message. Theinstruction should say ...

Step 1 - Switch back to the Node View pane in Portal and click onthe Portal node. Then click on "Change Portal Base File" in the NodeInformation window for the Portal node. Select the script called"PortalManyMeter.py," located in the "My Documents\Portal"folder. Then click on Open. This action uploads the new file to the Portalnode.

Those are the type of seemingly minor problems that cantemporarily derail someone. Also, the Synapse documents use Portal in severalcontexts to identify the Synapse Portal software, to identify certain devices,and so on. I found that "looseness" confusing in a few places.

I had a couple of other "nits" to pick with the Portalsoftware. First, the software displays Python scripts in a helpful format thatuses colors to identify statements, comments, functions and variables. But, thesoftware lacks a way to print those listings. I don't want to have to cut andpaste listings into a text editor before I can print them.

Second, the Portal software can download scripts, but it has noinherent debug capabilities. One Forum member suggested flashing an LED on theprotoboard to indicate a Python script continued to operate properly. Thattakes me back to debug techniques on the '70s. I suppose you can use one of theserial ports to transmit debug information back to a PC's "terminal"program, such as HyperTerminal. But that means you must include code in the scriptto control the serial port - assuming you don't need it in your application.And you need a PC with a serial port or a USB-to-serial-port adapter.

Again, I liked this kit and the Synapse hardware and software.I'd jump at the chance to learn more and run some of my own experiments - aftergaining some experience using Python.

Sign up for the Design News Daily newsletter.

You May Also Like