You are browsing as a guest. Sign up (or log in) to start making projects!

BrunoGG

@BrunoGG

Joined June 2nd, 2026

  • 7Devlogs
  • 1Projects
  • 0Ships
  • 0Votes
Open comments for this post

7h 39m 22s logged

DEVLOG #7 - OTA FULLY IMPLEMENTED WITH AUTO-UPDATES, CAPTIVE PORTAL ADDED, FIRMWARE REFACTORED & STATUS LED

Website: https://spottr.brunogg.in


Work Done:

  1. Fully implemented Over-The-Air (OTA) updates for the scanner nodes. The 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 automatically
  2. Set up automatic releases using a GitHub Action, so publishing a new release on GitHub writes the version and download URL to Firebase on its own, which then cascades down to every scanner. Now a single release publish updates the whole fleet with no manual steps
  3. Added a WiFi captive portal for first-time scanner setup. On first boot the scanner hosts its own network and serves a 4-step wizard (name the room, connect WiFi, set the broker, confirm) styled to match the website. Config is saved to NVS after every step and the portal won’t let a scanner boot into normal mode until setup is fully complete, so one firmware image now works for every scanner without editing code
  4. Refactored the scanner firmware from one large file into separate modules (config, portal, scanner, ota, led and globals) for cleaner, more maintainable code
  5. Added a status LED on the scanner so its state can be read at a glance without a serial monitor - blinking while connecting, solid when online, a slow breathing fade while in the config portal, and a distinct pattern during an OTA update
  6. Fixed a bug where the dashboard counted an offline scanner as online, by trusting the health status set by the pi-bridge instead of guessing from the last-seen timestamp

Future Work

  1. Build the Scanners Management page to assign rooms to auto-registered scanners and a Logs Page to view the history of every action performed
  2. Add offline buffering to the scanner firmware so badge detections aren’t lost if WiFi drops, and flush them once reconnected
  3. Add checksum verification to the OTA process so a corrupted download can’t be flashed to a scanner
0
0
3
Open comments for this post

7h 9m 43s logged

DEVLOG #6 - SCANNER HEALTH CHECKS IMPLEMENTED, IDENTIFY SCANNERS VIA MAC, BADGE MANAGEMENT & OTA GROUNDWORK SET

Website: https://spottr.brunogg.in


Work Done:

  1. Built an active scanner health-check system - 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.
    This replaced the old passive system where the scanner sent a heartbeat every 30 seconds to update its status
  2. Switched scanner identity to its MAC Address. with the pi-bridge verifying each scanner’s MAC and registering unknown scanners into Firebase as unassigned
  3. Refactored 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)
  4. Started work on the Badges Management Page where the admin can add, edit, delete or enable/disable badges, where each row shows the live status of each badge asonline/offline and current room, along with confirmation dialog boxes for destructive actions like deletion or disabling badges
  5. Laid the groundwork for OTA firmware updates for the scanner nodes, where I switched the scanner partition table to support two app slots, added semantic version tracking and comparison, and wrote the OTA update function (yet to be implemented properly)

Future Work

  1. Fully implement the OTA function where the pi-bridge triggers the update by publishing the new firmware version over MQTT and automatically flash it to the scanners
  2. Add a captive portal where the scanners can be configured (Adding WiFi and Scanner IDs) without editing the code
  3. Build the Scanners Management page to assign rooms to auto-registered scanners and Logs Page to view history of every action performed
0
0
7
Open comments for this post

5h 9m 42s logged

DEVLOG #5 — STARTED WORK ON ADMIN DASHBOARD, IMPLEMENTED LIVE FLOOR MAP

Website: https://spottr.brunogg.in


Work Done:

  1. Started work on the admin dashboard
  2. Built the floor map feature and made it show in which room a badge is currently in
  3. Live badge dots render directly on the floor map, positioned in the room they were last detected in
  4. Added StatCards to the Overview page -> Badges Online, Scanners Online, Rooms Occupied, Total Badges

Future Work

  1. Add dynamically updating status for scanners where pi-bridge sends a heartbeat and scanner-node responds to it
  2. Add sections to admin dashboard to add, remove or manage badges and scanners, along with a logs section to log any changes
0
0
8
Open comments for this post

5h 46m 50s logged

DEVLOG #4 - LOGIN PAGE, BUG FIXES AND OVERHALL BADGE AND SCANNER FIRMWARE ALONG WITH CHANGES IN PI-BRIDGE

Website: https://spottr.brunogg.in


Work Done:

  1. Implemented a login page with Firebase Auth which supports but Google Sign-In as well as via Email & Password (Added a test user with its credentials posted on login page for future testing and for public showcase of the project)
  2. Added Protected routes - dashboard will remain inaccessible without logging in
  3. Switched the badge identification from using device_id ex. SPOTTR_BADGE_0XX to a MAC Address based identification coz its much more reliable and harder to spook
  4. Fixed some major and minor bugs
  5. Worked on the pi-bridge code to get readings of MAC Address.
  6. Set up Firebase RTDB 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 access

Future Work:

  1. Build the admin dashboard with live floor map giving location data for each badge user
  2. Continue work on the landing page
0
0
5
Open comments for this post

6h 37m 15s logged

DEVLOG #3 — WEBSITE POLISH + PI BRIDGE COMPLETE

Website: https://spottr.brunogg.in


Work Done

  1. Built floating navbar with sliding hover pill animation on desktop
  2. Added hamburger menu for mobile with smooth open/close animations and click-outside-to-close
  3. Logo centers on mobile, left-aligns on desktop
  4. Fixed SPOTTR intro animation to be properly centered on all screen sizes
  5. Made hero section fully responsive for mobile
  6. Pi Bridge now pushes live badge locations to Firebase RTDB and logs history to Firestore
  7. Added online/offline detection for both scanner nodes and badges with 60 second timeout

Future Work

  1. Build admin dashboard with live floor map pulling from Firebase RTDB
  2. Add How It Works, Hardware and Software sections to landing page
  3. Add Firebase Auth to protect the dashboard
  4. Flash second scanner node and test strongest-signal room detection across multiple rooms
  5. Deep sleep badge firmware for battery life
0
0
1
Open comments for this post

4h 6m 47s logged

DEVLOG #2 — HARDWARE ARRIVES, FIRMWARE WORK BEGINS

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/


Work Done

  1. Set up PlatformIO in VS Code for programming the ESP32 Boards
  2. Flashed badge firmware on ESP32-C3 to continuously advertise via BLE with ID SPOTTR_BADGE_0XX
  3. Built scanner node firmware for ESP32-C6 to scan for BLE Devices with ID starting from SPOTTR_
  4. Set up Raspberry Pi OS and installed MQTT broker
  5. Improved Scanner Node range by using antennas salvaged from old WiFi routers
  6. Added 30 second heartbeat from scanner to monitor online/offline status

Future Work

  1. Write code for Python Pi Bridge to receive MQTT data and push to Firebase
  2. Continue work on landing page of the website
0
0
6
Open comments for this post

4h 49m 3s logged

DEVLOG #1 — WEBSITE WORK BEGINS

Note: Hardware arrives on 7th June, the real work starts then

Website: https://spottr.brunogg.in


Work Done

  1. Designed a model for the badge using Fusion 360 and logo using Canva
  2. Got Hero Section working
  3. Added 3D model of the product in website using React Three Fiber
  4. Added Intro animation to the website using 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 💀)

Future Work

  1. Start hardware work the moment it arrives on 7th June
  2. Get the Pi Bridge system up and collecting RSSI data from scanner nodes
0
0
6

Followers

Loading…