When reporting problems or bugs please be sure to specify which version of the SDK you are using.
Incompatible changes to the radio stack in this release will prevent SPOTs running Red from communicating via the radio with SPOTs running older versions of the SDK. For details please see the notes below about the new default routing manager (LQRP) and making OTA operations more reliable.
This release has been tested against Power-Control-AVR firmware version 1.102.
It may not work correctly with another version.
- Both the eDemo board and the main ARM9 processor board now support TWI (two-wire interface).
The ARM9 processor board uses the I2C_DATA and I2C_CLK pins in the top connector.
The eDemo board uses the D2 and D3 pins for SDA and SCK of the TWI interface.
When the TWI is active, the SCK pin is an open drain output
and the SDA pin is bidirectional with open drain output. They require pull up resistors to
+3V and the resistors are not part of the eDemo board. The signal levels are also 3V logic and
will require a voltage translation IC for running at 5V; otherwise the Atmega can be damaged.
New II2C Interface with routines: open(), close(), read(), write(), isBusy(), probe() & setClockSpeed().
See the II2C javadoc for details.
- Solarium has been greatly improved:
- An emulator for an iRobot Create has been added, along with an API to control the Create from a (virtual) Sun SPOT.
- A new Radio View provides a way to visualize the radio connectivity of a network of SPOTs.
- A new Deployment View allows a way to specify the applications to be loaded and run on a network of SPOTs.
- Plug-ins can be added to Solarium to customize how different types of SPOTs are treated. See the SolariumExtensionDemo for an example.
- New demos include:
- AirStore - a data repository that Sun SPOTs (and Sun SPOT Host Applications) can share via their radios.
The goal is to enable simple, one line "gets" and "puts" with which distributed applications can store and access data,
while enabling its use as a "blackboard" style coordination mechansim, similar to a Tuple Space.
- CryptoDemos - a collection of demos showing how to use cryptographic functionality on Sun SPOTs.
- iRobotCreateDemo - a simple demo to bounce an emulated Create robot off the walls in the Robot View in Solarium.
- SolariumExtensionDemo - this demo modifies Solarium to display a SPOT that is running the SendDataDemo with a
unique icon and with a modified popup menu that includes displaying the data being collected within Solarium.
- SPOTWebDemo - This demo 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.
- YggdrasilDemo - This demo uses the Yggdrasil library to
provide an easy way to get sensor data from a Sun SPOT to a host. Yggdrasil
provides support for basic wireless sensor network applications, where the nodes
are able to sleep and mesh. Yggdrasil also supports a simple mechanism of sending
the data through the basestation to a database on a host computer.
- Improved radio reliability:
- Major improvements & bug fixes to both the AODV & LQRM routing managers.
- Changes to make Radiostream more reliable.
- Changes to make OTA operations more reliable. Deploying over several hops now works. Note: SPOTs with an older SDK installed must be upgraded in order to receive commands from the new version of OTA.
- Minor changes to low-level radio MAC-layer.
- The Link Quality Routing Manager is now part of the standard SPOT library and is now the default routing manager. To communicate with SPOTs using the old AODV routing manager add "-Dextra.args=-aodv" to any remote ant command or for Solarium add "-Dmain.args=-aodv" to the "ant solarium" command.
Note that this is an incompatible change: Radio connections will not work between SPOTs running the new LQRP routing manager and those running the old AODV routing manager (e.g. Blue).
- To make it easier to control the radio connectivity of a group of SPOTs, the MAC layer can now be set to throw away any packets from senders not on a SPOT's white list. Actual routing is still be done by the Routing Manager.
To use it set "radio.filter" to "true" and "radio.whitelist" to a comma separated list of
radio addresses, where only the low part of the addresses need to be specified,
e.g. "2DFE,1234" => only receive packets from senders with an address of 0014.4F01.0000.2DFE or
0014.4F01.0000.1234. The properties are read when the SPOT starts up.
Alternatively to provide a blacklist of SPOTs to ignore packets from use the "radio.blacklist" property.
The "radio.blacklist" property is only used if the "radio.whitelist" property is not defined.
- The green and red processor board LEDs can be set to toggle on & off when packets are received or sent over the radio, like the basestation does, by setting the system property "radio.traffic.show.leds" to true & reboot the SPOT.
- The way that new firmware is written to the eDemo board has changed. Formerly the ATmega microcontroller on the eDemo included a bootloader in its firmware and the SPOT application updating the firmware needed to send the new verison to the bootloader. Now the SPOT updater application writes the ATmega firmware directly using the SPI bus.
Hopefully this will eliminate the problem where the eDemo firmware was somehow getting corrupted. And if it does get corrupted it should now be possible to restore it more reliably.
For anyone wishing to downgrade a SPOT from Red to Blue they need to run a special version of the Updater that will restore the bootloader on the ATmega. Please copy the demosensorboardfirmware-blue.jar file from the Red SDK upgrade folder to the Blue SDK upgrade folder and rename it to demosensorboardfirmware.jar, replacing the old version. Then do ant upgrade or reinstall Blue using SPOT Manager.
1284 | Add a new system-restore target to accompany 'ant upgrade' | FIXED |
1309 | Need to run tck nightly | FIXED |
1349 | Radiostream may not notice lost acknowledgements | FIXED |
1365 | [FLOATS] Failure | FIXED |
1366 | CLDC1.1=false was preventing the build to end. | FIXED |
1385 | Need access to system's thread state | FIXED |
1388 | The SPOT SDK is not compatible with rev 7 spots. | FIXED |
1394 | Solarium leaves squawk.exe running | FIXED |
1399 | romizer grabs too many files in resources dir | FIXED |
1407 | Don't wait for an isolate that will never start... | FIXED |
1409 | Whatever happened to -verbose:gc? | FIXED |
1411 | SleepManager.getUpTime() incorrect after clock adjustment | FIXED |
1413 | Expose GC tuning parameter(s) | FIXED |
1414 | Special case stripped KlassMetadata | FIXED |
1415 | Remove SuiteCreator support | FIXED |
1416 | Problems with Debugger-Proxy Sniffer | FIXED |
1424 | destroyApp never called | FIXED |
1425 | Add file name/line number info to assertions | FIXED |
1427 | Add some verbose output for running shutdown hooks... | FIXED |
1433 | "invalid return for non-void method" problem | FIXED |
1435 | SPOTWebDemo treats ownerless SPOTs as "unmanageable" | FIXED |