Power flickers out, the WiFi router goes dark, and the group chat dies with it. A small radio mesh keeps running for weeks on a single battery anyway. That's the itch the MeshFruit project scratches: a desk display that keeps pulling in messages long after the internet drops.
What they built
MeshFruit is a battery-powered message board built around a Feather ESP32-S3 paired with an RFM95 LoRa radio. Messages travel over a 915 MHz LoRa mesh (868 MHz on the EU variant) and land on a tri-color e-ink display, which holds its image with zero power draw once the refresh finishes. A STEMMA QT sensor rides alongside the radio, logging CO2, temperature, and humidity, so the board doubles as a room monitor instead of just a mailbox.
How it's wired together
The ESP32-S3 clocks up to 240 MHz and talks to the sensor over I2C through the STEMMA QT connector. No soldering needed for that link, just plug and read at 3.3V logic. The RFM95 handles the LoRa side over SPI, and because e-ink only pulls current while refreshing (the panel holds its last image for free once the update finishes), the whole board sits idle on battery for days between messages. The enclosure is 3D-printed with a kickstand for a desk and magnets so it clips onto a fridge, but that's just the case. The interesting part is what's inside: a mesh radio, a low-power display, and an air-quality sensor sharing one small board, all running off a single battery pack instead of a wall adapter.
Try it yourself
The full build guide and firmware are linked above. Swap the CO2 sensor for whatever STEMMA QT board is already in your parts bin. The I2C bus doesn't care which sensor answers, only that it responds on the right address, so a temperature-only or particulate sensor drops in with the same three lines of code. For a thesis or capstone project, this is a solid base for a campus-wide, low-power alert board: no WiFi dependency, readable across a building on LoRa's range, and cheap enough to build a handful of nodes for a robotics club to test as a mesh.
Originally published on blog.circuit.rocks.
Top comments (0)