In traditional (e.g., Internet) programming models, problems such as routing, retransmissions after lost packets, or transient failures of nodes and links are hidden from the application. The goal of EmStar is to facilitate a more direct interaction with underlying modules by doing away with strict layering, but in a way that does not sacrifice very much modularity or layers of conceptual abstraction.
The EmStar execution environment makes your code easier to debug. The same code and configuration can be run on real nodes (either using low-power radios such as motes, or 802.11), as a pure simulation, or in a hybrid mode that combines processing done in simulation and communication, sensing, and actuation on real (physical) channels. The same source code can be used in any of these modes without changes. Developers can seamlessly iterate between simulation and reality.
This page has resources that describe what EmStar does and how to use it. We don't yet have formal documentation because the code is still new and in flux. So, for now, the emstar user will have to rely heavily on reading source code of example programs and the framework itself.
Code in CVS is not guaranteed to work. We periodically make stable releases for people who don't want to live on the bleeding edge:
| Release | CVS Tag | Release date |
|---|---|---|
| EmStar 1.3.2 | EMSTAR_RELEASE_1_3_2 | February 20, 2004 |
| EmStar 1.3.1 | EMSTAR_RELEASE_1_3_1 | February 12, 2004 |
| EmStar 1.3 | EMSTAR_RELEASE_1_3 | February 11, 2004 |
| EmStar 1.2 | EMSTAR_RELEASE_1_2 | February 4, 2004 |
| EmStar 1.1 | EMSTAR_RELEASE_1_1 | January 29, 2004 |
| EmStar 1.0 | EMSTAR_RELEASE_1_0 | November 18, 2003 |
There is also another list intended to host a discussion of design issues and design directions in EmStar. By using this channel, we hope to be able to discuss planned changes to the system in a broader community, and get new design ideas and feedback.
Finally, for EmStar developers working from our CVS repository, several CVS mailing lists are relevant.
EmTOS: Debugging TinyOS Code using EmStar
-- Compile your NesC code as an EmStar binary, allowing you to use
the full EmStar debugging facilities. You can even run NesC programs
on our simulator, or on our network of real
motes using our ceiling array!
L. Girod, J. Elson, A. Cerpa, T. Stathopoulos, N. Ramanathan, D. Estrin, "EmStar: a Software Environment for Developing and Deploying Wireless Sensor Networks", to appear in the Proceeding of USENIX 04, also as CENS Technical Report 34. .ps, .pdf
J. Elson, S. Bien, N. Busek, V. Bychkovskiy, A. Cerpa, D. Ganesan, L. Girod, B. Greenstein, T. Schoellhammer, T. Stathopoulos, and D. Estrin, "EmStar: An Environment for Developing Wireless Embedded Systems Software" .pdf, CENS Technical Report 0009, March 24, 2003.