Myrddin Dundragon c1bd7d653a Adjusted the Design Document.
The Design Document is now the Product Design Document (PRD).
It was rewritten to be a bit more in line with just describing the why
and what of the product, not the how. It might not be perfect, but it is
good enough.

The README was adjusted to document that we are using the weasyprint
pdf-engine for pandoc. I had started with just using the LaTex engine,
but when you get to heading level 4, the heading is classified as a
paragraph and not a proper heading.

Also, all generated documents (*.pdf) were removed from the repository.
2025-07-27 12:04:20 -04:00
2025-07-27 12:04:20 -04:00
2025-07-18 08:42:32 -04:00
2025-07-18 08:42:32 -04:00
2025-07-27 12:04:20 -04:00

MicroBadge

License-Shield LinkedIn-Shield

MicroBadge is a software application suite for the BBC micro:bit v2, designed as a digital conference badge.


Table of Contents
  1. About The Project
  2. Project Structure
  3. Getting Started
  4. Copyright & License

About The Project

This project provides a modular and extensible application framework for the BBC micro:bit. It supports multiple interactive applications with a shared UI and rendering infrastructure. It uses message-passing channels and safe numeric arithmetic via bounded, clamped, and wrapped integer types.

Features

  • Modular application management with a switcher component.
  • Menu, Snake, Badge, and future NFC applications included.
  • Real-time rendering to the micro:bit LED matrix.
  • Button input driven by asynchronous event channels.
  • Renderer abstraction for pixel-level control.
  • Channel-based messaging for input and output decoupling.
  • Safe integer handling using bounded, clamped, and wrapped types.

Built With

Project Structure

src/
├── main.rs                 Entry point of the application.
├── menu/                   The Menu Applicaiton.
├── badge/                  The Badge Application.
├── snake/                  The Snake Application.

Getting Started

Prerequisites

The Rust discovery book has a great section on how to setup a build environment.

Make sure you have the correct bulid target installed.

rustup target add thumbv7em-none-eabihf

Build and Flash

To build and flash the program to your Microbit just run:

cargo embed

Documentation

To generate all the documentation you will need to have pandoc and weasyprint installed.

Design Doc

The [Design Doc][./docs/design.pdf] is generated with pandoc from the markdown file.

pandoc ./docs/design.md --pdf-engine=weasyprint -o ./docs/design.pdf

Software Design Doc

The [Software Design Doc][./docs/sdd.pdf] is generated with pandoc from the markdown file.

pandoc ./docs/sdd.md --pdf-engine=weasyprint -o ./docs/sdd.pdf

UML

[UML][./docs/uml/] is generated using Plant UML on the *.puml files.

plantuml ./docs/uml/*.puml

Copyright 2025 CyberMages LLC

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this library except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS

Description
MicroBadge is a software application suite for the BBC micro:bit v2, designed as a digital conference badge.
Readme 15 MiB
Languages
Rust 99.9%