Sun SPOT SDK Release Notes
Sun SPOT Development Kit: yellow-101117-1
This is release 6.0 of the Sun SPOT SDK (a.k.a. Yellow)
When reporting problems or bugs please be sure to specify which version of the SDK you are using.
This release has been tested against Power-Control-AVR firmware version 1.105 (rev6) and 2.07 (rev8).
It may not work correctly with another version.
Summary of Major Changes
New Rev8 hardware
- 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 AT91SAM9G20 with a master clock speed of 133.3248MHz (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.
- 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.
- 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
- 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.
- Downgrading to Red will work, but afterwards the SPOT must be unplugged from USB, shut down and restarted for the eDemoboard to be recognized.
- The ant target "deploy" now by default removes all unused app suites, and sets the specified deployed Midlet (#1 by default) as the only one to run on startup. A new target, "codeply" deploys BUT leaves app suites in place and simply adds the deployed Midlet to the already existing startup list.
Full change history
- The Battery code does not always correctly set the maximum power after a calibration cycle. This will cause erroneous battery level indications.
- Changing the clock speed to save power during shallow sleep causes the ARM to crash (bug 1386). Because of this the setShallowSleepClockMode() method in the AT91_PowerManager class has been disabled.