Software for the HappyGem project
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


This is the software/firmware for the HappyGem, an electronic device based on ATMega128RFA1

Read more about HappyGem on

The project is organized in a way that should allow several different devices and applications to be used within the same software framework.

Directory structure

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)