views:

614

answers:

4

I'm curious how many people out there (well, on StackOverflow at least) have played with Sun's SunSPOT technology. SunSPOTs are wireless sensor devices that can also control robotic platforms, like the Systronix TrackBot. Fortunately, there's an easy-to-use Java API for programming them.

I'm interested in whether:

  • You're playing with this for work or for fun
  • Whether there are other platforms that you're working with instead
  • What compelling applications you see for SunSPOTs and other wireless programmable controllers

EDIT: I'm noticing a renewed interest in this question. If SunSPOTs or other controller devices have become a part of your work, can you describe what you're doing?

+4  A: 

My team is using SunSPOTs as wireless real-time or store-and-forward data collectors for scientific experiments in high school and college classrooms. The project is funded by an NSF grant and is being worked on at a university in Massachusetts. It is educational and non-profit in nature. The goal is to collect, store, view, and visualize data collected from many different types of devices (including SunSPOTs) in real-time... all from within a web browser. We have a Java XML-RPC web service paired with a MySQL databse that handles all the back end work. To actually collect the data, we are using a Java applet (necessary for talking to the actual hardware devices from inside the browser).

We have used the SPOTs to transmit real-time sensor data from the on-board sensors as well as analog and digital inputs. For example, we have attached a GPS unit to the analog pins, which records the data and transmits it back to the host machine when it's in range. Then we do a Google Maps visualization of the GPS coordinates along with the sensor data that was collected at each point.

SunSPOTs are the only wireless sensor platforms we are working with right now, although we are strongly considering integrating cell phones with Bluetooth-capable sensors. We would like to use Android phones because they are really open in that way. Imagine connecting a temperature sensor to a Bluetooth transmitter, which streams temperature readings to your cell phone, which transmits the readings over a cell or wifi network to a central data store. The possibilities really are endless for that type of thing.

Now for the bad news. We have had our share of frustrations with SunSPOTs, mostly involving the SDK. The SDK is always changing, and it is poorly documented in many areas. Many libraries are marked as experimental or dangerous. Many times the documentation says not to use a particular library for a particular purpose, but it doesn't suggest an alternative. Even simple things like storing data on the device are really quite difficult. There is an easy way to store things, but sometimes it can malfunction and corrupt the device or data. There is a more difficult way that is safer, but less flexible. Radio communication is also overly complex. There's a simple way to do it, but it is marked as "test purposes only" and "don't use this for important information". One of the main features of the device is the ability to do wireless communication. At least make it straightforward and stable. There are lots of little things like that about the SunSPOTs--missed opportunities.

Another frustration involves portability. It is really difficult to make a program that someone can use to plug in a SunSPOT and read data off of it. Just trying to make sense of the dozens (yes, dozens) of Ant scripts involved in a seemingly simple task such as building a MIDlet and deploying it to an attached SPOT can take a long time. It would be nice to give someone a SPOT and ask them to collect data for a weekend and upload it to our website from home. Outside of having them download and install the entire SunSPOT SDK, there's no easy way to do that.

Despite the downsides, the SunSPOTs are probably the best wireless sensor and control platforms out there. The Java API, though lacking in some key areas, is still easier to understand and use than most (all?) other similar platforms.

William Brendel
A: 

In my senior project, we're working on a system to allow for dashboard type monitoring of a local area network of SPOTs and also wide area monitoring of the local consoles from a master console. We plan for this to aid with sensor testing and also to allow developers of SPOT applications to monitor the data of one or more SPOTs alongside their actual application. So, for instance, the developers of a robotics application would be able to see a graphical representation of the SPOTs accelerometer readings. For now, we're using this within the TCU computer science department, but down the road it might be something we'd contribute back to the community after it is cleaned up and made a bit more robust for different environments.

jxpx777
A: 

I am doing my final project and we are using the SunSPOT as a platform to build on. We are combining the spot with several other sensors and actuators (Skyetek RFID reader and Simple vib motors from digi key). We are trying to explore what having all these different things can do for you on your wrist and using the device as a cell phone replacement (i.e. would could you do it you never had to take out your phone, it was always just there). So far we have been able to use the spot for some snazzy gesture recognition, communicating between spots to form a group and integrate with out simple devices. It is kinda neat and if you want to hear more or would like a better explanation leave a comment.

Our project site can be found at http://www.eng.uwaterloo.ca/~smaclell/ME482/

One of our team members was a former Sun co-op student working with the spot team. He was using the spots for some sophisticated remote sensing in a low power scenario. He could not say very much about it as it was a bit hush hush.

smaclell
A: 

Using them as part of a research project in academia for fault tolerance detection for wind turbines.

They are very good because it removes learning curves and resource limitations of smaller motes. Probably won't be used as the final deployment technology but definitely useful for proof of concepting ideas.

steve