I hate doing this as one giant commit, but I was under the gun and had to just code as fast as I could, so some common software development things had to be skipped. Mostly git commits. Here we have several mini applications that reside on the microbit. * Menu - The main app switching presentation. * Badge - A name scroller. * Snake - A snake game. The switcher task is the main running task of the program. All the logic goes through here. It will pass the running off to different apps. When an app returns from its main function it will return the next app to switch to. The display task is a PWM LED matrix updater. It will turn on the LEDs for what ever frame is passed to it. It keeps a backing frame for draw calls that occur between new frames arriving. There are several button listeners for input handling. Everything is sent using channels, button input and presentation frames.
MicroBadge
MicroBadge is a software application suite for the BBC micro:bit v2, designed as a digital conference badge.
Table of Contents
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.
Getting Started
Prerequisites
- Properly installed Rust toolchain.
- gdb-multiarch Tested version: 15.0.50.
- minicom Tested version: 2.9.
- cargo-binutils Tested Version: 0.3.6.
- probe-rs-tools Tested Version: 0.24.
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
Copyright & License
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