May 17, 2006
What are SunSPOTs?
SunSPOTs are Sun Microsystems Research Lab's wireless sensor devices that run Java on the bare metal, and do real cool, fun, things. Maybe they really don't do anything useful yet, but there are companies and organizations that have interesting uses for them.
SunSPOTs are based on a 32-bit ARM920T CPU and an 11 channel 2.4GHz radio. They currently have 4M of Flash, and 512K of RAM. In deep sleep mode they consume less than 40 microAmps, enabling them to (in theory) run for months. They also contain a three-axis accelerometer, light and temperature sensors, eight RGB LEDs, six analog inputs, and four high/low voltage outputs.
SunSPOTs run the Squawk JVM, which itself is mostly written in Java that runs on the bare metal (no OS required). The current implementation supports the Java ME CLDC 1.1 specification, with software float/double support. Writing a VM in Java is not as strange as it may seem--Sun claims that the Java bytecode representation for Squak is more efficient than the comporable C code. Additionally, using a technology called Suites, application class files are compressed and executed in-place. SunSPOTs also support Java Isolates, which are an implementation of JSR 121. Isolates allow multiple applications to run on one VM transparently, and treat applications as objects, enabling finite control and monitoring of Java ME applications.
The Sun SPOT system uses Java technology to up-level programming. Developers can write a program in Java, load it on a wireless sensor device, run it, debug it, as well as access low-level mechanisms-with standard Java IDEs. The inherent portability of Java makes it simpler to migrate applications among platforms and enables developers to build new wireless sensors devices using off-the-shelf hardware components. Java also eliminates or streamlines many of the low-level tasks of traditional development languages such as C, and for the millions of developers who already write code in Java there is little additional learning curve for building wireless sensor/transducer programs.
Researchers at Sun have added the ability to visually drag-and-drop applications (or simply move them programatically) across SunSPOT devices. The application literally shuts down on one device, and picks up execution on the new, target, device, just where it left off. Some uses for this include load-balancing applications across sensor devices, persistance, app migration from a device with low battery life to a newly-charged one, and "run home" behavior if an application experiences and error condition.
Uses for SunSPOTs
One of most popular uses of SunSPOTs are transducer Network Applications, including the following:
- Environmental monitoring
- Machine control
- Factory process management
- HVAC control
- Structure monitoring (bridges, buildings, etc.)
- Medical equipment and patient monitoring
Some other usage examples include self-aware package shipments, digital set-top boxes that monitor the environment, and cars that check that you didn't leave the iron, coffee maker, or stove on when you pull out of the driveway. See http://sunspotworld.com/action and http://makezine.com/faire/sponsexhib/ for some cool experiments using SunSPOTs.
Want one? Development kits will be offered by the summer of 2006 for $499 that include the following:
- 2 SunSPOTs
- 1 base station
- The Squak VM
- Java SDK
- NetBeans with applicable plugins
- USB cable
Posted by Eric Bruno at 01:03 AM Permalink
|