The Term "embedded sensor web" describes the future Internet, where the networking of big machines like PCs will make only a very, very small part of the big picture. This "Internet of things" will connect devices of our daily use, like pencils, doors, cars, trees, .... These devices are augmented with sensors, that allow to detect temperature, movement, current position, etc.
Combining the sensor data of a lot of small devices results in information about the environment. If you get to know about the movement of all devices in an area, you get the big picture of something big happening there (car being stolen, storm passing by, ...), without the need for big and very expensive machinery like specialised alarms, satellites for earth watch and so on.
Vordiplom or BSc (no BSc students!!!)
- knowledge of the programming language C
- basics of operation systems
- telematics and/or mobile communications
- basic software management skills
- ability to work in a team
What will you do in this course?
- You will program our small sensor board, consisting of a microcontroller, attached sensors and communication devices (radio modules, bluetooth). You learn: Microcontroller programming, extend your knowledge of C, handle communication hardware and program small and inexpensive devices.
- You will make a plan how to set up a bunch of these small devices, that builds up to a big, powerful, yet flexible distributed network. That means, you learn: How to organize the routing between these units, how to bring the information into the WWW and how to make sure, that the failure of one device does not kill the complete network.
This terms course will be focused on solving a task in a complex scenario. Students will work in groups of about 6-9 participants. The ability to work in a team is a must.
A total work time of at least 150h per person is required for successful participation. Read the requirements for successful participation below!
A customer requirement specification of the problem scenario will be handed out at the begin of the semester and solved by each team. Think of each team as a small fictional company. Competition is good for business :-)
09.04.2008, Course Introduction
- First Meeting
- Introduction to the course
- Handout of the project/customer requirement specification
- Required work for successful participation
- Preliminary team forming
23.04.2008 - 19.07.2008
- Supervised lab hours, team meetings and milestone presentations
07.05.2008, Milestone Talk
- Task assignment to team members
- General approach to solve the problem
- Interface definitions, selected routing protocols, management application prototype
04.06.2008, Milestone Talk
02.07.2008, Milestone Talk
- Preview of final event
- Overview: What's finished, what's missing?
- Hand in your presentation slides (PDF only!)
16.07.2008, Final Event
- Presentation and demonstration of your solution
- Hand in your work; deadline is 24:00!
- Return hardware
Additional dates might be announced to present milestones of your work!
No exam, but you have to attend at all Wednesdays and present your work at the end of the semester (using the official presentation template).
Your (commented) source code must be handed in on schedule as well as a paper (40-50 pages) typesetted with LaTeX including:
- Introduction to the problem and the task to solve
- Related work (papers must be also handed in)
- Description of your solution
- Guide to your solution
- Non mandatory features
- Remaining problems (why couldn't they be solved?)
- API of the developed source code (as addendum) created with Doxygen
- Presentation slides (PDF)
The paper has to be written in english!
A minimum of 150 work hours per person is required. This means additional work has to be done besides the lab hours.
There are no typical assignments as every team has to work to solve one big problem scenario.
At the 16th of April we will do some first steps together in class. This should give you an introduction to the ScatterWeb² firmware and what foundation is available.
Working outside the lab
- The MSPGCC toolchain is needed to compile. Please have a look at the official website. Windows binaries should be provided as installer.
Linux users should refer to this guide to compile the binaries on their own. (It worked for me)
Debian packages are available here. (tested)
You can use any text editor or IDE (e.g. Eclipse, Visual Studio, KDevelop, ...).
To access the repository a Subversion client is needed (e.g. svn, kdesvn, Tortoise SVN, ...).
Windows users should know that Cygwin is needed. Usual problems reside in multiple incompatible cygwin1.dll files and usage of make of a version lower than 3.81.