A personal rust firmware for the Badger 2040 W
1# Badger 2040 W written in rust
2
3A rust controlled Badge for a conferences or anywhere else you want to be extra
4
5
6
7## Features
8* Display some text to the left like name and job title
9* Display a small bmp image, can alternate images by pressing the c button. This example has Ferris with a knife and a QR code that links to this repo
10* Connects to a [Adafruit Sensirion SHTC3](https://www.adafruit.com/product/4636) via STEMMA QT / Qwiic to get real time temperature and humidity
11* If you set a wifi network in [.env](.env) the badge will set the pico's RTC and display the time one the display.
12* Counts unique wifi bssid's it comes across and keeps those counts unique across reboots by writing to flash.
13
14
15## Timings
16The project is a mosh posh of things to get it ready for an event I am going to this weekend, so it is not always the best code or well thought out. Especially timings, I did not want to always refresh everything as fast as possible for battery and Eink constraints.
17* roughly every 5 mins it checks for new wifi networks
18* roughly every 30 seconds it takes a new temp/humidity reading
19* roughly every min it updates the time display, altho the RTC should keep pretty accurate timing
20* roughly every 30 seconds it updates the top bar that holds wifi count as well as sensor data
21
22
23## This project would not be possible without..
24* [trvswgnr](https://github.com/trvswgnr) for their amazing ferris with a knife image. All i did was badly convert it to grayscale and scaled it down.
25* embassy framework and their great [examples](https://github.com/embassy-rs/embassy/tree/main/examples/rp). Exactly zero chance I would have any of this written without this directory.
26* the [uc8151-rs](https://crates.io/crates/uc8151) crate. Would not be able to write to the e ink display without this great crate.
27* And every other single crate found in [Cargo.toml](./Cargo.toml). None of it would be possible with out those packages and maintainers.