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. See details below.
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.
- 41 x 23 x 70 mm
- 54 grams
Sun SPOT Processor Board
- 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
- USB interface
- 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
SPOT libraries support both old rev6 and new rev8 hardware.
- Added IPv6 support to radio protocols.
- New Resources API to support writing device drivers and other system resources that can be used by MIDlets running in separate Isolates. Please see the javadoc for com.sun.spot.resources.Resources for details. Note: removes the existing performance penalty of accessing system resources from a separate Isolate.
- New Sensor API to provide generic interfaces to common sensors and actuators for SPOTs. These interfaces need to be in the base spotlib, so that they can be used in SPOT applications without needing to refer to a specific implementation (e.g. transducerlib or user specific library for a different daughtercard). The initial set of interfaces are defined in the com.sun.spot.resources.transducers package. See the javadoc for com.sun.spot.resources.transducers.ITransducer for details on the metadata associated with each sensor.
- New Condition class to regularly test a sensor (via software polling) to determine if a condition is met and when the condition is met then to invoke a callback. See the javadoc for com.sun.spot.resources.transducers.Condition for details.
- New basic Task class to specify some code to be run starting at a specified time and then repeated periodically. See com.sun.spot.service.Task for details.
- New BootloaderListenerService replaces BootloaderListener.
- New IDeepSleepListener for registering/notifying listeners when SPOT wakes from deep sleep.
- New IStandby Interface: used by rev8 accelerometer & tricolor light sensor.
- New ADJDS311TriColorLightSensor class.
- New TriColorLEDArray class.
- New (virtual) WatchdogTimer class.
- Four serial lines are now available:
- one from the sensor board: edemoserial://
and three from the main processor board:
- serial://usb & serial:// which both go to RX1/TX1,
- serial://usart & serial://usart0 which both go to RX0/TX0,
- serial://usart1 which goes to RX2/TX2
- one from the sensor board: edemoserial://
- Changed FiqInterruptDaemon to support multiple listeners for different events & added a method to disable button presses from causing a reboot.
- Improved IToneGenerator API.
- Rev 8 eDemoboard speaker controlled by a ToneGenerator.
- All MIDlets now run in child Isolates. The SPOT can be configured to run several different MIDlets at startup.
- Added new spot.restart.mode property to control what happens when all MIDlets finish. Recognized values are: restart (reboot SPOT = current default), off (SPOT goes into deep sleep) or continue (SPOT goes into shallow sleep & continues to listen for OTA radio commands).
- New Gateway Server to run multiple host services to/from SPOTs.
- Solarium can now deploy to SPOTs using old SDKs (provided OTA & config page format still same).
- Added shared basestation support to radio view.
- Demos updated to use new Resources & Sensor APIs so they can work with both rev6 & rev8 SPOTs.
- New HostQuerySpots Demo that shows how to send commands to SPOTs via the radio (OTA) from a host app.
- New InfraRed Demo.
- New Solarium demo: Robot view as plugin jar file.
- New Geiger counter demo app.
- New IPv6 demos.
- New Sensor.Network demo.
- New Web-of-Things demo.
- TelemetryDemo on host can now display data from multiple SPOTs.
Improvements & Bug fixes
- New SPOT SunSPOT-Programmer's Manual: combines old Owner's Manual, Developer's Guide and Solarium User's Guide.
- Shared basestation is now the default.
- Conversion of analog inputs (including the accelerometer) has been slowed down by default to ~58Hz in order to fix a problem where the ADT7411 was reading incorrect values for A0. New ADT7411 method, setFastConversion(boolean), to change the conversion speed.
- Improved performance of GC up to 40% (bug #1461)
- Fixed bugs in shared basestation radio implementation making it more reliable.
- Improved radio performance & reliability.
- Speed up writing to flash by using faster write_words instead of write_word.
- During upgrades now only update the bootloader if it differs from the new SDK's bootloader.
- Fixed a radio bug where an app that only transmitted would block.
- Fixed old bug in ant run for remote SPOTs so ant exits when the SPOT app finishes.
- Updated remote printing to work in the new multi-isolate world.
- Lots of bug fixes.
- Use standard IDEs. e.g. NetBeans, to create Java code
- Integrates with J2SE applications
- Sun SPOT wired via USB to a computer acts as a base-station