Skip to content
Aux fils des idées Français
ESP32-P4 · ESP-IDF · LVGL

Meridien, a screen that runs on its own

A touch screen for the ESP32-P4 that needs neither Home Assistant nor ESPHome. The goal: the time, the weather from an API, a voice assistant linked to the AI model of your choice, and a settings page served by the screen itself. It is native ESP-IDF and LVGL 9 firmware, a sibling of my Home Assistant display: it keeps its taste (themes, fonts, short texts, accents) but not its dependency. The project is only at its beginning: this page says what runs and what does not exist yet.

PC render of Meridien's main screen at 1024 × 600: the time, the weather, the hourly curve, a rain and alert banner, five days, and a wheel of three buttons (Settings, Details, Alerts) opened by a long press

A render of the firmware itself, made on a PC (example data), not a photo of the board.

Boards
M5Stack Tab5 · Waveshare 7B
Built on
ESP-IDF 5.5 · LVGL 9
Screen languages
7
Licence
MIT
Status
Early days

What it shows

A screen made to stay on in a room and look after itself: it fetches its own weather, sets its own time and remembers its settings.

The main screen

The time and date of the chosen place, the weather now, the curve of the coming hours, a banner for rain nearby and alerts, and five days of forecast. The background is a sky drawn from the time of day and the weather, with themes.

A long press, no button

A long press opens, under the finger, a wheel of round buttons: Settings, Details, Alerts. The Details page gathers seven quantities: wind, rain, humidity, pressure, UV, sun and moon.

Weather without Home Assistant

The screen queries Open-Meteo itself. If the network drops, it keeps the last weather, greyed out and marked as stale, and it sets its time from the network.

Official alerts

They come from Vigie and are shown only while one is in force.

Settings served by the screen

A web page served by the screen itself, behind a six-digit pairing code, and settings screens on the display. When you change the Wi-Fi network, the screen goes back to the old one by itself if the new one does not work.

Seven languages

The screen texts exist in French, English, German, Dutch, Spanish, Italian and Turkish.

Where it stands

Taken from the repository's compatibility table, kept up to date with the code. A function is written “observed” there only on the board where it was seen, with the commit and the date.

Seen running on the board

On the M5Stack Tab5 (ST7121 display): the display and the touch, Wi-Fi through the ESP32-C6 chip, the time, the weather from Open-Meteo, the main screen and the settings screens. On the Waveshare 7B: it boots, the display shows well, and Wi-Fi, the time and the weather at start-up work.

Written and checked on a PC, not yet seen on a board

The Vigie alerts, the time of the chosen place (time zones), the weather sources by country (MET Norway, the NWS in the United States). The redone home screen and the long-press wheel date from 8 November 2026: their trial on a board is not yet recorded in the table.

Not started

The voice assistant: its logic is written and checked on a PC, but no real speech-recognition or language-model service has been called, and echo cancellation and the wake word are not started. Neither are the Google calendar and the first-connection portal.

Not tried on the 7B

A finger on the screen, the sound, the settings screens, the alerts and changing the time zone have not been tried on this board.

What was not looked at or not measured is written as such in the table. The plan, the cost in time and tokens, the measurements, the research notes and the decisions of the repository are working documents, in French.

Its limits

  • Early days: no version is published, so there is nothing to flash without building it yourself.
  • Built only on the author's PC: Windows, with the ESP-IDF 5.5.5 that ESPHome had already installed; the build script has not been tried on any other PC.
  • Modest security: the Wi-Fi password and the settings are kept in the device's flash memory without encryption, and the settings page is served over plain local HTTP behind a six-digit code (see SECURITY.md).
  • Tight internal memory: the repository's measurements show a slow drop in free memory, still unexplained on 7 November 2026.
  • Translations not all reviewed: the German and Turkish texts have not been reviewed by a native speaker.
  • One maintainer, code written with a lot of help from AI, no promise of support.

The technical side

  • An ESP32-P4 (RISC-V) with an ESP32-C6 for Wi-Fi; developed on the Tab5, with a board layer for the Waveshare 7B.
  • Native C++ on ESP-IDF 5.5 and LVGL 9, without Home Assistant or ESPHome. Each zone of the main screen is a single LVGL object that draws everything, to save memory.
  • The core (weather, time and time zones, settings, voice-assistant logic) is C++ with no ESP-IDF or LVGL, tested on a PC with AddressSanitizer, UBSan and mutation tests (more than 1,400 tests on 7 November 2026). That says nothing about how it behaves on the board.
  • The images on this page are renders made on a PC by the same drawing code as the screen's.

A personal project shared in case it helps, written with the help of AI: the author sets the goals and judges the result on the real screen.

Going further