The firmware for the TeHyBug 18650 Universal, Mini TeHyBug and GumBoard has had its biggest clean-up yet. This one is less about new buttons and more about things quietly not working the way you expected them to β several of which had been hiding in plain sight for a long time.
π‘ All your services now report β not just the first one
This is the big one. If you had more than one data service enabled β say HTTP GET to the cloud and MQTT to your broker β only the first one ever sent anything. Each service went to sleep immediately after its own send, and on a battery device deep sleep restarts the chip, so the rest never got a turn.
The device now sends to every configured target, and only then sleeps β resting for the shortest interval you configured, so adding a second service can’t starve the first.
π Noticeably better battery life
- Faster WiFi reconnect. The device now remembers its WiFi channel, access point and IP address across deep sleep, so it rejoins the network directly instead of scanning for it every time. Less radio time awake is less battery burned. This uses memory built into the ESP chip itself β no add-on module needed, it works on every board.
- Less time idling. Every service used to sit through a fixed one-second pause after sending β up to four seconds of doing nothing per wake. That’s now a single settle window.
- Home Assistant devices skip redundant work on wake (see below).
π‘ Worth knowing: your Data Log frequency decides how often a sleeping device wakes, even when your network services report far less often. An hourly MQTT report with a 10-second log interval means the device wakes every 10 seconds β on battery that’s the difference between months and days. If you want hourly wakes, set both intervals to 3600.
ποΈ Twice the offline log on current modules
Current RTC modules carry a 64 KB FT24C512A memory chip, where earlier ones had a 32 KB FT24C256A. The firmware only ever recognised the smaller one β so on a current module, half the chip sat unused. It now detects the size at startup and uses all of it: each day file grows from about 1 KB to about 2 KB, so you can log twice as often, or twice as many values, and still cover a full day.
β οΈ Back up your log before updating. If your module has the 64 KB chip, its day files have to be re-arranged once to use the full capacity, and previously logged data is erased on the first boot after the update. Download anything you want to keep from the Data Log page first. Modules with the 32 KB chip keep their data.
π Home Assistant
- Swapped or removed a sensor? Its entities now disappear from Home Assistant properly, instead of lingering forever as stale “unavailable” leftovers from the sensor you no longer have.
- Discovery isn’t re-sent on every wake any more β only when something about your device actually changed. Faster wakes, less broker chatter.
- Second sensor fully described. If you run two sensors, the second one now arrives in Home Assistant with proper names, units and device classes.
- Saving the Data Serving page no longer switches Home Assistant off. Previously, editing an MQTT port or a URL was enough to silently disable it.
π΄ Light Sleep is a proper mode now
Light sleep keeps the device reachable on the network between readings while still saving power β the middle ground between staying fully awake and deep sleep, and the right choice when you report often.
It now has its own switch in the web interface, and β importantly β it no longer erases your saved WiFi credentials. Deep Sleep and Light Sleep are mutually exclusive, and the interface won’t let you pick both any more.
βοΈ Getting back into config mode
- Press the MODE button within 1 second of a reset to enter config mode β there’s now a real window for it, where before you had to be improbably quick.
- The blue LED stays on the whole time config mode is active, so you can tell at a glance.
- If WiFi fails to connect while you’re in config mode, the device stays in config mode instead of dropping out and leaving you with no way to reach it.
π BugZapper β flash and watch your device
BugZapper, our flashing tool, is now a proper desktop app with a built-in serial monitor β flash your firmware and watch the device boot in the same window, with colour output, adjustable baud rate, log saving and the ability to send commands back. No Python packages to install; everything it needs is bundled.
β Fixes
- The device key no longer gets stuck showing “Loading⦔ β and, more importantly, it’s now correctly filled into the data your device pushes. If your cloud readings ever stopped arriving for no obvious reason, this was probably why.
- Placeholders in the HTTP POST address (like
%key%) are now filled in, the same as they always were for GET. - MQTT online/offline status is published under your own topic, instead of a stray topic at the root of your broker.
- The status LED now lights correctly on the very first frame after power-up.
- Faster startup β the sensor bus is scanned once less on every boot.
- A long list of smaller robustness fixes: nothing in normal operation can lock the device up waiting on a network that isn’t answering.
How to update
β οΈ Only update when you need to. If your TeHyBug is working fine, there’s no need to chase every release β update when a new feature or fix actually matters to you. That said, if you run more than one data service, or use Home Assistant, this one is worth it.
Update over the air from the device’s web interface β open http://tehybug.local/update (or http://<device-ip>/update), sign in, and upload the latest firmware. Keep the device powered during the update; it reboots itself when done.
Prefer to flash over USB? Use the BugZapper flasher, the Arduino IDE, or esptool β see the documentation for details.
Compatible with the TeHyBug 18650 Universal (v1 / v2), Mini TeHyBug and GumBoard, and generic ESP8266/ESP8285 boards. Offline logging needs the RTC + EEPROM module.
Questions? Tap the AI assistant on tehybug.com or check the FAQ. Turning ideas into smart devices.

Leave a Reply