Sun SPOT V5.0 Red Release

Sun SPOT V5.0 Red Release

Its been a busy summertime so far and I realized that I haven't yet mentioned our new release here... so, here's the scoop: The new v5.0 Red release is available now from SPOTManager.  As always, remember it includes an emulator so you can play with it even if you don't have any physical Sun SPOT devices.

Here are a few interesting things to check out in the new release:


Updates to Solarium

Solarium includes several new views that add significantly to its usefulness. Radio View, Robot Simulator and Deployment View. Each is described below. Also, there is a new demo that shows how to add your own extentions to Solarium (SolariumExtensionDemo ).

Robot Simulator



Solarium now includes a robot simulator that lets you program a virtual Sun SPOT-based robot to navigate a maze and other virtual obstacles. These robots are based roughly on the iRobot Create which is a fine little robotics platform used in the IAROC competition among other things. From Solarium, simply open the RobotView and then click on "Add Robot." This will create a robot and virtual Sun SPOT to control it. You can even run multiple robots at the same time in the simulator. Its quite fun. Try the tutorial here.



Radio View give you a visualization of the radio space of your Sun SPOTs. Its tells you which devices can talk to each other and the relative signal strength of the connection in each direction. This makes it much easier to construct multi-hop experiments and understand issues with your network topology. Click on a node to get information about its transmit power, MAC filtering and routing manager. Click on a link to get information about the strength ofJust open a Radio View from within Solarium to try it out.

Deployment View

Deployment View is a tool for managing the code on networks of Sun SPOT devices within Solarium. Think of it as a three things, an abstract way to define your network in terms of the roles that the different devices on your network, a way to assign devices to those roles and finally a distributed make-like tool for keeping the software up to date on your network. For example, I do a lot of demonstrations that including showing off the Bouncing Ball demo. Abstractly I can set up a deployment that includes two Sun SPOTs that each play the role I'll call ball bouncers. When I need to do a demo I can pick any two Sun SPOTs that happen to have charged batteries and OTA and assign them to these roles. Then I simply click the "Deploy & Run All" and the appropriate code is deployed to the Sun SPOTs that I have assigned. The power of this tool becomes apparent when imagine more complex scenarios where many devices have many different roles. Individual Sun SPOT devices can have multiple roles and individuals roles can be assigned to multiple devices for flexibility.The real place that this tool shines is during development. Here it acts like a distributed "make" tool. When you change your source code, the deployment view will figure out which of your devices need to have been affected by the changes you made to your code. It will then automatically deploy and start the new code to the devices that need updating. This means that a single click of a button can update the code to your entire network. This tool is in its infancy, so we hope to get a lot of feedback on how it could evolve to be more useful.

Radio Stack Improvements - LQRP

This release includes major improvements to the reliability of radio transmissions. Additionally, the radio stack includes a new default routing protocol called the Link Quality Routing Protocol (LQRP). This routing protocol takes into account the not just connectivity, but also the quality of the connections when choosing a route. Previously, the system would choose the route with the least number of hops. Sometimes that would include long hops that had very poor link quality. Now the protocol includes the intelligence to choose a route that makes uses good quality links in order to maximize the overall quality of the link. This change is not interoperable with previous releases of Sun SPOT software. In fact, can show some confusing behavior because broadcast is compatible between V4.0 Blue and V5.0 Red while direct messages are NOT compatible. This means that protocols use broadcast to find services and then follow up with direct messages will get confused unless all participants are running the same version of software.

Crypto Library

The Sun SPOT platform includes advanced cryptographic capabilities. Many people don't even know that they are using Elliptic Curve Cryptography every time they deploy code to their Sun SPOTs, but they are. The system verifies the owner and validity of the code during deployment.

Now there is a demonstration of the SSL library for the Sun SPOTs based on the code in Sun's reference implementation of Java ME for cell phone. The Sun SPOT SSL library includes support for TLS 1.0, support for server-side SSL/TLS, support for Elliptic Curve Cryptography cipher suites (for now, only ECDH-ECDSA-RC4-SHA and secp160r1 are supported).


SPOTWebDemo is a host application that starts up a simple web server and lets remote users interact with a collection of SPOTs in the vicinty of the attached basestation using a standard web browser. Authorized remote users can monitor the state of sensors, applications and other system statistics. They can also install, start, pause, resume, stop and remove applications. This allows you to do many of the functions that you would do in Solarium, via a standard web browser.


Many applications on Sun SPOT devices collect data. Yggdrasil is a data collection framework to allow you to stream sensor data to a centralized repository. The demo provides libraries and sample code to use the framework. The way that Yggdrasil works, the Sun SPOT sends sensor samples to host for the first time. The host does not recognize the sensor, so it queries the Sun SPOT. The Sun SPOT responds with handshake information and metadata about the sensor. Now the host knows about the sensor and begins to print out the sample data as it arrives.



AirStore is an experimental shared data repository for Sun SPOT applications. It is designed to make a common usage of Sun SPOTs much easier... sharing simple data. Currently, when you write a program and want it to share data with another Sun SPOT over the radio, you have write some code to set up and transmit your data. Similarly, you have to write code to receive the data on the other side. AirStore attempts to make this much easier. With simple one line puts and gets, distributed applications can share primitive Java data types. One Sun SPOT application can set a variable x with

AirStore.put(x, 17);

and another can get x with

int x = AirStore.getInt(x);

The system works in cases where all devices are within broadcast range of each other and do not sleep. Thus for UI experiments or simple robot control, this method can work well. The data types supported are: int, double, String, boolean, byte, long, plus arrays of these types.

If you look in the demos folder you will find documentation, and inspector (host application) as well as several example programs including a rather interesting integration of Sun SPOT with a popular programming environment for kids called Scratch.

Other Enhancements

TWI (two-wire interface) is now supported to both the eDemoBoard and main ARM9 processor board.

You can now limit received radio packets to those from a sender on a whitelist or not on a blacklist.


Post a Comment:
Comments are closed for this entry.

Roger Meike, Senior Director of Area 51 and Director of Operations Sun Labs


« August 2016