A Sun SPOT Java Development Kit includes 2 full Sun SPOT devices and a base station, as well as development tools, tutorials, sample code and accessories. A Sun SPOT device is built by stacking a Sun SPOT processor board with a sensor board and battery.
The main SPOT processor board has been redesigned. New features include:
- RAM memory increased to 1 Mb.
- Flash memory increased to 8 Mb.
- Now based on the 400MHz (2.226 times faster then the rev 6 speed).
- Access to the radio (CC2420) is now on a second SPI bus.
Three serial lines are now available:
- RX1/TX1 go to pads on processor board,
- RX0/TX0 go to RX/TX pin on sensor board,
- RX2/TX2 go to the top connector.
Power Controller microcontroller now provides a Watchdog timer that is accessible to SPOT applications for increased reliability.
2.4 GHz IEEE 802.15.4 radio with integrated antenna
3.7V rechargeable 770 mAh lithium-ion battery
65 uA deep sleep mode
General Purpose Sensor Board
The SPOT sensor board has been redesigned. New features include:
- No temperature sensor on eDemo (use temperature sensor on main processor board).
- Now only 4 digital GPIO pins: D0-D3 (no D4).
- Now only 4 analog in lines: A0-A3 (no A4+A5). Sampling takes longer as done via ATmega microcontroller.
- New tri-color light sensor replaces old simple light sensor.
- New MMA7455L accelerometer replaces LIS3L02AQ accelerometer. New accelerometer has three scale ranges: 2/4/8G.
- I2C from sensor board output available on AVR SCL & SDA pins.
- New lo-fi audio speaker lets the SPOT now make sounds.
- New IR receiver (on SW1 input line) & IR transmitter (on SW1 input line).
- By default sensor board ATmega microcontroller now stays awake when main processor board is powered down for deep sleep, and can generate interrupts to wake SPOT up on pin changes, switch presses, etc.
- No longer support hardware threshold interrupts on acceleration, temperature or analog input. Use software monitoring instead.
- Tricolor LEDs now controlled directly by main processor board.
- Serial line from main processor board now available on RX/TX pins. Can also be level switched via SW3.
- I2C from main processor board now available on SCL & SDA pins. Can also be level switched via SW3.
- Squawk Virtual Machine
- Fully capable J2ME CLDC 1.1 Java VM with OS functionality
- VM executes directly out of flash memory
- Device drivers written in Java
- Automatic battery management
More info here.
Ever since the very first Sun SPOTs were delivered to Sun Labs we have relied on shared code resources and building on the work of others rather than re-inventing the wheel every time around. The more complex the Sun SPOT platform gets, the more difficult it can be to remember how to access a specific sensor, network protocol, etc. while writing an application. Understanding this, we decided to make code sharing amongst our community members an integral part of our software experience and encourage our developer community to share freely with one another. To that end there is a new feature in the latest version of the Sun SPOT Manager tool (used for installing and maintaining the Sun SPOT SDK) to make the sharing of code ‘snippets’ (short pieces of Java Code used in Sun SPOT applications) easy and convenient. Download the latest version of Sun SPOT Manager here and start developing Sun SPOT Wireless Sensor Network (WSN) applications quickly and easily!
From Vipul Gupta’s Weblog:
Sun SPOTs are tiny, battery-powered, wireless computers that can be programmed in Java. Different types of sensors (e.g. GPS, temperature, humidity, proximity, light) and actuators (e.g. servos, motors) can be attached to these devices for use in a wide range of applications. This blog entry discusses two web-based services – SPOTWeb and Sensor.Network – for interacting with these devices and collecting, analyzing and visualizing data from attached sensors.
The SPOTWeb service lets remote users interact with a network of SPOTs using a standard browser. Authorized users can monitor the state of sensors, applications and other system statistics. They can also install, start, pause, resume, stop and remove applications. In the following video, I walk you through many of these features (I recommend the HD-version in full-screen mode to minimize the blurriness of on-screen text). You can follow along on your own by downloading the latest SPOT SDK (red-090706 at the time of this writing) from sunspotworld.com and running SPOTWebDemo (it is one of the new demos bundled with the red release).
Sensor.Network is a web-based service for sharing, visualizing and analyzing sensor data collected from a variety of sources, e.g. mobile phones, automobiles, datacenters or embedded devices like the Sun SPOT. Besides supporting a heterogenous mix of data sources, the service supports multiple sensor installations, each of which could potentially be owned by a different entity. It places a strong emphasis on security and privacy concerns and gives researchers and scientists fine-grained control over how their data is shared with authorized partners. Additional details are available in this article. The service is still under development but the following video filmed during JavaOne 2009 provides a good overview of the currently available functionality.
More info here.
A demo of Internetworking with Sun SPOT sensor nodes. The Sun SPOTs are running an IPv6 Stack and connects to Internet via a Sentilla USB Stick running a 802.15.4/HC01 to ethernet bridge and a PS3 running Ubuntu linux acting as a router. The Sun SPOTs run an application that blinks the leads when pinged and that reacts to commands sent as UDP packets to port 61616. The setup also consists of a laptop that runs ubuntu and that is used for sending out pings and led on/off commands to the Sun SPOTs via Internet. Both the PS3 and the laptop are connected to Internet via IPv6 tunnels (go6/freenet6). The PS3 acts as a router and has a 64 bits link prefix for the sensor network and the laptop only has one IPv6 address for its own access. All the nodes also post sensor reading to the global IPSO interop server.
Interesting post on measuring power consumption of the CC2420 used by SunSPOTs. You can find it here.
From Roger Meike’s blog: The upcoming release of Sun SPOT software (Red v5.0) will feature a new robotics simulator built into to Solarium. It allows you to use virtual Sun SPOTs to program virtual robots using the Sun SPOT Java Development Kit. The great thing about it is you can download it and use it for free right now! Even if you don’t have Sun SPOTs.
The simulation roughly mimics the environment that is used in a competition held in San Diego each year called IARoc sponsored by Wintriss School. In this competition students use Sun SPOTs to control and iRobot Create to navigate a maze. The Create is very much like its more popular sibling, the Roomba except it doesn’t suck… by which I mean it has no vacuum… (Roombas are great, BTW) The combination of a Create and a Sun SPOT is fantastic for learning the basics of robot motion and navigation. In the simulation you write software for a Sun SPOT, and then in Solarium, create a new Robot View and Add a Robot. This will create a Robot/VIrtual Sun SPOT combination. Back on the Grid View, you will now see a Virtual SPOT. You deploy and run your software on this Virtual SPOT and it will control your simulated robot. You have your choice of three different environments to run in; an empty room, a maze, or an obstacle course. Each view includes an ‘X’ as a starting point and a ‘O’ as an ending point. Your robot includes sensors that allow you to sense when your robot is over one of these marks. We also provide a sample application that can find the center of the room, or if you poke around in the code a little, you’ll see a simple wall follower. Its just enough to get you started.
A previous post described Vipul’s initial experiment on collecting data from a solar-powered Sun SPOT. That experiment helped uncover and fix several bugs that caused disruptions in data collection. He repeated the experiment again last month using the red-090113 release of the Sun SPOT SDK to test those fixes.
This time around, the SPOT stayed off the power grid from Feb 12 until Mar 3 — slightly over 19 days (that’s more than 1.6 million seconds) — reporting light, temperature and other readings every 10 minutes. Unlike last time, there were no occasions when the SPOT failed to enter deep sleep. There was just one disruption and it was caused by a mySQL table crash, but the SPOT stayed up throughout. Its reported up time as well as the time spent in deep and shallow sleep kept rising at a regular clip throughout the experiment. Overall, the SPOT spent nearly 95% of the total time in deep sleep, around 4.5% in shallow sleep and about 0.5% in active computation.
More info on his blog.
Many WSN deployments require the devices to run for long periods (months) using a combination of duty cycling and renewable energy sources (e.g., solar panels). This technical report is the first comprehensive study of end-to-end data collection from a solar-powered Sun SPOT over a period of multiple weeks.
We ran our experiment for nearly a month and collected sensor data into a mySQL database for later analysis and visualization. This experiment helped us uncover and fix several issues that caused disruptions in data collection — the occasional inability of the device to enter deep sleep, the resulting clock reset due to premature battery exhaustion, and loss of connectivity to the database after long periods of inactivity. The report offers important lessons in the design of a sensor data collection framework and lists both recommended best practices as well as potential pitfalls to avoid.
The report by Vipul Gupta is available here and some comments are on his blog here.
From Stephan Kessler:
Tuesday 24 February 2009 was the first SunSPOT Symposium in central London. It was organized by Dave Cleal and John Daniels (both are from Syntropy (Link: http://www.syntropy.co.uk)). About 30 SunSPOT users and some pioneers met in the building of the British Computer Society.
The morning started with three talks. The first one was from Robert Taylor, he presented the yggdrasil framework (https://yggdrasil.dev.java.net/) for data collection. Bart Braem from the University of Antwerp talked about his “teaching with SunSPOT” experiences, he and his team already made several programming and research projects for the SunSPOTs with students (Website: http://www.pats.ua.ac.be). The last talk was about the KSN RadioStack (http://www.ipd.uka.de/KSN/RadioStack) and was presented by Markus Bestehorn. The KSN RadioStack is communication library for SunSPOTs which provides reliable multihop communication for data intensive applications (slides are available here: http://www.ipd.uni-karlsruhe.de/KSN/publications.html).
The afternoon was all about demonstrations and exchanging ideas. John and Dave offered a session in which they tried to answer all questions everyone had regarding SunSPOTs (they are really brave guys!). The KSN Team presented their (yet to be published, but will be announced at http://www.ipd.uka.de/KSN) over the air management application for SunSPOT testbeds which is capable of node to node software deployment. The guys from the University of Antwerp (Kurt and Daniel) presented a SunSPOT 802.15.4 Packet Sniffer with Wireshark interface and a CTP implementation for SunSPOTs which makes it possible to communicate with sensor nodes using TinyOS (like MicaZ).
At the end we met via Skype video conference with Roger Meike. We talked about the availability of SunSPOTs and the possible integration of software made by other projects in the standard SDK.
It was a great day with much time to exchange ideas and meet. Thanks to John and Dave for organizing this event, it was a pleasure.
From Roger Meike’s Blog:
For those of you who have been following the story of Sun SPOTs for a while, you know that this has grown from a little Sun Labs research project into quite an endeavor. Sun SPOTs are used around the world by students, researchers and hobbyists whose creative minds apply them to exciting new applications every day. We originally built the Sun SPOT as a platform for our own research. They worked out very well, but we pretty quickly realized that they were just too much fun for us to just keep in our labs.
More info here.