Skip to content

Releases: IdefixRC/Monitor-Buddy

Monitor-Buddy 1.2.0

Choose a tag to compare

@IdefixRC IdefixRC released this 13 Oct 07:23
457d1fd

Monitor-Buddy 1.2.0 lets you set up your Buddy from the browser. The new web flasher installs the firmware over USB and writes your settings straight onto the board, so you never need VS Code or config.h again unless you want to change the code.

What's new

  • The web flasher. Open https://idefixrc.github.io/Monitor-Buddy/ in Chrome or Edge, plug in your Buddy and click Connect. From there you install, update, change settings, back up and restore, or reset to defaults, with a live preview of your Buddy on the page while you edit. Every setting has a ? that explains it. Nothing is stored in your browser. (#18)
  • Your settings live on the Buddy. Settings are now saved on the board itself, so changing your ticker or your location no longer means rebuilding and flashing. Built it yourself? Your config.h still works: it fills in whatever the board hasn't saved. (#16)
  • Find your town, get the right time. The web flasher's city search fills in the latitude, longitude and time zone in one go. The clock now uses real time zone rules, so daylight saving switches by itself, and half-hour zones such as India (+5:30) are right. 1.1.0 cut them to whole hours. (#16, #18)
  • Coming from 1.1 or older? Choose Upgrade from 1.1 or older in the web flasher and import your config.h. Your settings come across and your Wi-Fi stays. (#18)
  • Wi-Fi in the same place. Enter your Wi-Fi in the web flasher and the Buddy connects straight after the install. Leave it out and the setup hotspot works as before. If the password doesn't work, the page tells you and lets you try again. (#18)
  • Check before you save. Check buttons ask Finnhub and GitHub whether your stock key and username work, before they go onto the board. (#18)
  • An interrupted install is no drama. If the cable comes out halfway through an install, the Buddy can't start any more. Connect it again: the web flasher notices, offers Install the firmware again, and keeps the settings that were already on the board. (#18)

Changed

  • The stock and GitHub pages stay hidden until you fill them in. An empty Finnhub key now hides the stock page, the way an empty GitHub user already hid the GitHub page. The ready-made firmware ships with both empty, so a new Buddy no longer shows a dead stock page or someone else's GitHub stats. (#18)
  • Angry and sad look the part. The eyelids were the wrong way round: angry now frowns towards the nose, and sad droops at the outer corners. (#18)

Fixes

  • Big follower counts fit on the screen. GitHub follower counts with more than 5 digits ran off the edge. They now shrink to 245k or 1.2M. (#18)
  • No more stale clock after a restart. The clock trusted a time that survived the reset, and in one case showed a time 50 minutes old. It now waits for a real time sync. (#16)
  • No pointless stock requests. Without a key, the Buddy used to ask Finnhub for prices anyway and show UPDATING forever. It now asks only when there is a key. (#18)

For tinkerers

  • A serial protocol for settings. The firmware answers @MB commands over USB serial: INFO, GET, SET, DEFAULTS and REBOOT. The web flasher uses it, and so does tools/mb_serial.py, for example python tools/mb_serial.py COM4 set ticker=AVGO. It needs Python 3 and pip install pyserial. (#16)
  • Ready-made firmware with every release. Each release from 1.2.0 on has a monitor-buddy-<version>.bin asset, built by a GitHub workflow. GitHub Pages mirrors it for the web flasher, together with a releases.json that lists each version with its SHA-256, and the web flasher checks that hash before it writes anything. (#17)
  • The pioarduino platform is pinned to 55.03.312-1 (Arduino core 3.3.12), so a release always builds the same way. (#18)
  • Unit tests for the settings and protocol code run on the PC with pio test -e native, and in CI on every pull request. (#16)

Documentation

  • README §4 "Flashing the board" now starts with the web flasher. Building it yourself keeps sections 4.1 to 4.8.
  • README §4.10 and §4.11 point at the web flasher's Change settings and Reset to defaults, with new rows for a Buddy the page doesn't list and one that an interrupted install left dark.

Updating an existing Monitor-Buddy

With the web flasher (recommended):

  1. Open https://idefixrc.github.io/Monitor-Buddy/ in Chrome or Edge on your computer and plug in your Buddy.
  2. Click Connect your Buddy. A Buddy on 1.1.0 or older shows up as "a new or older Buddy". Choose Upgrade from 1.1 or older.
  3. Click Import config.h, pick the config/config.h from your old Monitor-Buddy folder, check the settings, and click Upgrade.
  4. That's it. Your Wi-Fi stays, and from now on you change settings in the browser.

Building it yourself: download Monitor-Buddy-1.2.0.zip, extract it to a new folder, copy your config/config.h across, and flash it as before: README §4.1 to 4.8. Your config.h keeps working as it is. TZ_RULE is new and optional.

Download

  • monitor-buddy-1.2.0.bin is the ready-made firmware. The web flasher installs it for you, so you don't need to download it yourself.
  • Monitor-Buddy-1.2.0.zip is the curated build package for building it yourself: firmware source, the PlatformIO config, the config template, and from this release on also lib/ and tools/mb_serial.py.
  • The auto-generated Source code archives contain the full repository.

Hardware

Unchanged: a Waveshare ESP32-C6-Touch-LCD-1.47, one 3D-printed holder (Monitor-Buddy_flat or Monitor-Buddy_recess), and a USB-C cable. Make sure it's the touchscreen version of the board. The one without touch is smaller and doesn't fit the holder.

Full changelog: v1.1.0...v1.2.0

Monitor-Buddy 1.2.0-rc1

Pre-release

Choose a tag to compare

@IdefixRC IdefixRC released this 11 Oct 05:42
b8724b0

Release candidate for testing the release pipeline and the upcoming web flasher. Not for general use; install 1.1.0 instead.

Monitor-Buddy 1.1.0

Choose a tag to compare

@IdefixRC IdefixRC released this 03 Oct 13:11
b694b0a

Monitor-Buddy 1.1.0 gives your Buddy a setup page in your phone's language, and keeps your Wi-Fi when you update. It also fixes a freeze that hit anyone who opened a serial monitor.

What's new

  • The setup page speaks your language. The Wi-Fi setup page now follows your phone's language: English, Spanish or German, with a menu to switch. It's built into the Wi-Fi library now, so there's no separate page to upload any more. (#13)
  • Your Wi-Fi survives updates. Until now, flashing a new version could upload the setup pages again, and that wiped the saved Wi-Fi. That upload step is gone. Your saved Wi-Fi and brightness stay on the board, starting with this update. (#13)
  • Wi-Fi reconnects without stalling the screen. When the Wi-Fi drops, the Buddy now reconnects in the background. Before, each reconnect attempt froze the face for up to 2 seconds. In testing, a router restart didn't interrupt the face or touch at all. (#13)
  • No time-sync wait at start-up. Without internet, 1.0.2 waited up to 4 seconds on CONNECTING for the Wi-Fi library's own time sync. The Buddy keeps its own clock, so that sync is now switched off: the face appears as soon as Wi-Fi connects, and weather, stock and GitHub retry in the background until the internet is back. (#13)

Changed

  • The BOOT button now forgets only the Wi-Fi. Holding BOOT for 5 seconds or more at start-up clears the saved Wi-Fi and keeps your brightness. To reset everything, open the setup page and press erase. This comes from the newer Wi-Fi library. (#13)

Fixes

  • No more freezes after closing a serial monitor. If you opened a serial monitor and then closed it, the Buddy slowed to a crawl: no blinking, a frozen clock, swipes and taps ignored, until you restarted it. The cause was the USB serial waiting for a reader that had gone away. It never waits now. (#12)
  • Brightness is saved once per drag. A brightness drag used to write to flash on every step. It now saves once, 2 seconds after you let go, and not at all if you end up where you started. (#11)

For tinkerers

  • The serial status line now ends with the uptime and the reason for the last restart, e.g. up=93s rst=1. A restart that happened while no monitor was open still shows up later.
  • Monitor-Buddy now uses AyresWiFiManager 2.5.0 from the IdefixRC fork, instead of the original 2.0.2. Thanks to ayresnet for the library this builds on.

Documentation

  • README §4.8 "Updating to a new version": a short how-to for updating, replacing the old "Portal files" section.
  • README §4.10 "Everyday controls": corrected for the BOOT change above. It now explains where BOOT is (next to RESET, so check the labels), that it only counts while the Buddy starts up, and the 2–5 second hold that opens the setup hotspot.

Updating an existing Monitor-Buddy

  1. Download Monitor-Buddy-1.1.0.zip from the Assets below and extract it to a new folder. Copy your config/config.h over from your old folder, so you keep your settings.
  2. Flash it the same way as before: README §4, Flashing the board. There is no filesystem upload any more.
  3. That's it. The Buddy keeps its Wi-Fi and reconnects by itself. On its first start it removes the old setup page left over from earlier versions, and from then on the setup page follows your phone's language.

Download

Monitor-Buddy-1.1.0.zip is the curated build package. It holds only the files needed to build and flash: firmware, PlatformIO config and config template. The setup-page HTML and the upload script are no longer part of it. The auto-generated Source code archives contain the full repository.

Hardware

Unchanged: a Waveshare ESP32-C6-Touch-LCD-1.47, one 3D-printed holder (Monitor-Buddy_flat or Monitor-Buddy_recess), and a USB-C cable.

Full changelog: v1.0.2...v1.1.0

Monitor-Buddy 1.0.2

Choose a tag to compare

@IdefixRC IdefixRC released this 03 Oct 02:13
66d0662

Monitor-Buddy 1.0.2 makes your Buddy smoother on bad Wi-Fi, adds a brightness swipe, and lets you mount it on either side of your monitor.

Thank you, @AmyJoT

This release starts with the first outside contribution to Monitor-Buddy. @AmyJoT sent in #3 with three improvements:

  • the brightness swipe;
  • a sturdier touch read;
  • the first round of network changes that stop the face from freezing while data loads.

Amy also turned the review feedback around quickly. The PR passed a full device test, including a 46-minute soak, before it was merged. Thanks, Amy!

What's new

  • Brightness swipe. Swipe up for brighter, down for dimmer. Keep dragging for bigger steps. The level is remembered across restarts, and a factory reset brings it back to the default. (#3, @AmyJoT)
  • Left or right side. A new setting in config/config.h:
    #define MOUNTING_LOCATION RIGHT   // LEFT or RIGHT
    RIGHT turns the screen, the touch input and the eye movement around for a Buddy mounted upside down on the right side of the monitor. The printed holders already work on both sides. If your config.h doesn't have the line, the Buddy stays on LEFT as before. (#8)
  • No more freezes on weak Wi-Fi. Weather, stock and GitHub data now load in the background, so the face keeps blinking and touch keeps working whatever the network does.
    • Before: on a weak signal, the face could freeze for several seconds while a page loaded.
    • Now: a 46-minute soak at a weak signal showed no pauses at all.
    • Weather and GitHub are now fetched ahead of time, so their pages show data as soon as you swipe to them.
    • After an internet outage, data comes back within seconds.
    • (#3, #7)
  • Clock sync no longer freezes the screen. Without internet, 1.0.1 retried the time sync with a blocking wait of up to 8 seconds at a time. The sync now runs without blocking and picks up the time as soon as it arrives. (#3)

Fixes

  • Holding still after a swipe no longer opens the Wi-Fi setup by accident, and a slow swipe no longer counts as a tap that changes the face. (#6)
  • The serial log prints its status on one line again.

Documentation

  • README §4.10, "Everyday controls": lists every gesture, plus the factory reset, which was missing from the README until now.
  • Troubleshooting has new entries for an upside-down or too-dark screen.

Updating an existing Monitor-Buddy

  1. Download Monitor-Buddy-1.0.2.zip from the Assets below and extract it. Copy your config/config.h over from your old folder, so you keep your settings.
  2. Optional: if your Buddy is on the right side of the monitor, add #define MOUNTING_LOCATION RIGHT to your config.h.
  3. Flash it the same way as before: README §4, Flashing the board.
  4. If the Buddy opens its setup hotspot after flashing, set up Wi-Fi again.
    • Why: when you flash from a freshly extracted folder, scripts/auto_upload_fs.py uploads the setup pages once more, and that also clears the saved Wi-Fi.
    • Join Monitor-Buddy-Setup and enter your Wi-Fi as you did the first time.
    • Your config.h settings are built into the firmware and aren't affected.

Download

Monitor-Buddy-1.0.2.zip is the curated build package. It holds only the files needed to build and flash: firmware, setup-page HTML, PlatformIO config and config template. The auto-generated Source code archives contain the full repository.

Hardware

Unchanged: a Waveshare ESP32-C6-Touch-LCD-1.47, one 3D-printed holder (Monitor-Buddy_flat or Monitor-Buddy_recess, both now usable on either side of the monitor), and a USB-C cable.

Full changelog: v1.0.1...v1.0.2

Monitor-Buddy 1.0.1

Choose a tag to compare

@IdefixRC IdefixRC released this 29 Sep 13:36

Monitor-Buddy 1.0.1 is a security fix for the Wi-Fi setup portal. If you've built one, re-flash it with this release.

What's fixed

The Wi-Fi setup page listed nearby networks by inserting their names as HTML. A nearby network with a crafted name could therefore run script inside the setup page while you were configuring your Monitor-Buddy, and that script could change the saved Wi-Fi settings or erase the stored files. The page now shows network names as plain text.

It's the same bug as in the AyresWiFiManager library's built-in page (fixed in AyresWiFiManager 2.3.2). Monitor-Buddy serves its own copy of the page, so it needed its own fix. Nothing else changed.

Updating an existing Monitor-Buddy

  1. Download Monitor-Buddy-1.0.1.zip from the Assets below and extract it. Copy your config/config.h over from your old folder, so you keep your settings.
  2. Flash it the same way as before: README §4 — Flashing the board. scripts/auto_upload_fs.py uploads the fixed portal page together with the firmware.
  3. Set up Wi-Fi again. The portal page changed, so the flash rewrites the device's file system, and that erases the saved Wi-Fi credentials. On first boot, the Monitor-Buddy opens its setup portal. Join the Monitor-Buddy-Setup network and enter your Wi-Fi as you did the first time, this time on the fixed page.

Your settings in config/config.h (location, timezone, GitHub user, API key) are compiled into the firmware and aren't affected.

Download

Monitor-Buddy-1.0.1.zip is the curated build package: only the files needed to build and flash (firmware, captive-portal HTML, PlatformIO config, config template). The auto-generated Source code archives contain the full repository.

Hardware

Unchanged: Waveshare ESP32-C6-Touch-LCD-1.47, one 3D-printed holder (Monitor-Buddy_flat or Monitor-Buddy_recess), a USB-C cable.

Monitor-Buddy 1.0

Choose a tag to compare

@IdefixRC IdefixRC released this 31 Aug 10:13

Monitor-Buddy 1.0 — first public release.

A tiny ESP32-C6 touchscreen friend for the side of your monitor: animated face, clock, date, weather, moon phase, stock ticker and GitHub stats. No soldering.

Download

Grab Monitor-Buddy-1.0.zip from the Assets below. It's the curated build package — only the files needed to build and flash (firmware, captive-portal HTML, PlatformIO config, config template). Nothing else.

  1. Download and extract Monitor-Buddy-1.0.zip somewhere permanent.
  2. Follow the flashing guide: README §4 — Flashing the board.

The auto-generated Source code archives contain the full repository (docs, screenshots, CI) if you'd rather have everything.

What's in the box

  • src/main.cpp — the firmware
  • data/ — Wi-Fi captive-portal pages (flashed to LittleFS)
  • platformio.ini — pioarduino/PlatformIO build config for the Waveshare ESP32-C6-Touch-LCD-1.47
  • config/config.h.example — copy to config/config.h and add your timezone, location, GitHub username and (optional) Finnhub API key
  • scripts/auto_upload_fs.py — auto-deploys the filesystem image on flash

Hardware

  • Waveshare ESP32-C6-Touch-LCD-1.47
  • One 3D-printed holder (Monitor-Buddy_flat or Monitor-Buddy_recess)
  • A USB-C cable