This is the software/firmware for the HappyGem, an electronic device based on ATMega128RFA1
Read more about HappyGem on http://happygem.org
The project is organized in a way that should allow several different devices and applications to be used within the same software framework.
Everything that is specific to the hardware goes in here. Every module on the hardware has to be abstracted into normal C functions. Different hardware modules might require different drivers, which is why they are seperated in folders. The simulator will also require simulated drivers.
Services that build on top of the drivers to create higher-level functionality that is shared across apps. For example a service that keeps track of happygems that are within range.
An app can be a game, some kind of utility (a clock, flashlight, etc), or anything else that the user will interact with.
A collection of firmwares. A firmware is a complete software package that can be uploaded to a happygem. It integrates various apps, and will also contain code deciding how/when to activate different apps.
A simulator used to discover how a collection of happygems will work together (not implemented yet)