This Connected Daily Dashboard Is Powered by Seeed Studio's reTerminal E1001 — And a State Machine
Maker Marvin eschews the common loop for an Arduino sketch implementing a state machine.
Monomymous maker Marvin of MyEmbeddedStuff has designed a weather and calendar dashboard for Seeed Studio's reTerminal E1001 ePaper smart display — opting to configure it, somewhat unusually for an Arduino project, as a state machine.
"I’ve always wanted a device at home for a long time that would let me see at a glance, every morning while I have my coffee, what I need: the weather, my upcoming events, and some sensor data," Marvin explains. "I tried several solutions until I discovered a device that was perfect for this purpose. It saved me a lot of time in hardware development and was fully customizable to suit my needs."
That device: the Seeed Studio reTerminal E1001, launched back in September in monochrome or six-color variants and supported by a no-code human-machine interface (HMI) development platform dubbed Sensecraft HMI. Marvin, though, was only really interested in the hardware: a 7.5" low-power electrophoretic ePaper display with an 800×480 resolution, powered by a built-in Espressif ESP32-S3 microcontroller.
Marvin did initially build the project using Sensecraft HMI — "because," he admits, "I wanted a quick result" — but while a working prototype was put together in just 30 minutes, he found the process restrictive. "For example," he explains, "when I wanted to retrieve events from my Google Calendar via its API [Application Programming Interface], I ran into the problem that I had no parameter to only show future events."
The maker then considered the TRMNL platform, also supported by the display, but was put off the idea of paying for access; Home Assistant, meanwhile, was discounted as he didn't have an existing server set up. The final version of the project, then, was written in the Arduino IDE — as, interestingly, a state machine rather than a simple infinite loop.
"This approach might not be as common when working with the Arduino IDE, where one usually creates simple things using the SETUP and LOOP functions," Marvin explains. "However, when a project starts to grow, loop() quickly becomes chaotic. Therefore, the state machine allowed me to divide everything into clear steps, avoid blocking loops, and handle errors without halting execution. This is very useful for scaling the project easily in the future."
The full project write-up is available on Marvin's website; the maker plans to release a guide with complete code in the near future.