Website: https://spottr.brunogg.in
Work Done:
pi-bridge authenticates the same way. Leaving them blank keeps the old anonymous behaviour, so nothing broke for existing setupsSpottr-Scanner-0000. Reading the MAC directly from efuse fixed it, and each scanner now shows its real suffix, unique per device and stable across rebootsledSet() only records the state, and the pin write happens in ledUpdate(), which runs from the main loop, but the OTA download blocks that loop entirely. So the LED just froze at whatever brightness it had. Driving it from httpUpdate’s progress callback fixed it, and the pattern is twice as fast now so a quick update is still visiblepi-bridge writes location keys in lowercase, so the two never matched. Pulled the MAC handling into a shared module so both pages normalise the same waylib/status.js and lib/badges.js. The duplicated copies of that logic are exactly what let the floor map and the overview page drift apart and disagree about which scanners were onlineFuture Work
Website: https://spottr.brunogg.in
Work Done:
pi-bridge watches Firebase for a new firmware version and publishes it over MQTT, each scanner compares it against its own version and only updates if it’s newer, then downloads, flashes and reboots itself. The version check runs on each scanner, so one publish updates every outdated node automaticallyconfig, portal, scanner, ota, led and globals) for cleaner, more maintainable codepi-bridge instead of guessing from the last-seen timestampFuture Work
Website: https://spottr.brunogg.in
Work Done:
pi-bridge pings each scanner every 15s over MQTT, scanner replies with a pong, and a missed pong marks it offline within a few seconds.MAC Address. with the pi-bridge verifying each scanner’s MAC and registering unknown scanners into Firebase as unassigned
pi-bridge from one single large file into multiple sub-files (config.py, handlers.py, health.py, presence.py, registry.py, state.py and main.py)online/offline and current room, along with confirmation dialog boxes for destructive actions like deletion or disabling badgesFuture Work
pi-bridge triggers the update by publishing the new firmware version over MQTT and automatically flash it to the scannersWebsite: https://spottr.brunogg.in
pi-bridge sends a heartbeat and scanner-node responds to itWebsite: https://spottr.brunogg.in
device_id ex. SPOTTR_BADGE_0XX to a MAC Address based identification coz its much more reliable and harder to spookpi-bridge code to get readings of MAC Address.badges/ node — each badge registered by MAC address with label, owner name and active status. This will be used in the dashboard to display owner names instead of raw MAC addresses and also used to assign a badge to a user and block or allow accessWebsite: https://spottr.brunogg.in
Finally the hardware arrived and I started work straight away…
First time diving into this deep of C++ programming… Dam it was tough fr
Website: https://spottr.brunogg.in/
SPOTTR_BADGE_0XX
SPOTTR_
Note: Hardware arrives on 7th June, the real work starts then
Website: https://spottr.brunogg.in
AceternityUI where the SPOTTR text draws itself across the full screen with color gradient stroke on load, then fades to reveal the hero content. (Took alot longer to perfect and get timings as well as colors right 💀)