NARMOVION NARMOVIONENGINEERING SYSTEMS Dikron

Meteo P4

Technical User Manual

Platform: ESP32-P4 + ESP32-C6
Firmware: p4 22.31.0641
Display: JC1060P470C 1024×600 MIPI-DSI
SDK: ESP-IDF 6.0.1 / LVGL v9

Device Overview

Meteo P4 is a multifunction weather station based on the ESP32-P4. The device displays data from internal and external sensors, GNSS coordinates, an aviation-grade weather forecast, a clock synchronised via satellites and NTP, and also plays audio from an SD card and internet radio.

Front view of the device

Technical Specifications

ParameterValue
Main processorESP32-P4, 2 cores, up to 360 MHz
Wi-Fi / BluetoothESP32-C6 (separate chip, ESP-Hosted over SDIO)
Flash memory16 MB (DIO, 40 MHz)
PSRAM32 MB (HEX, 200 MHz)
DisplayJC1060P470C, 1024×600 px, MIPI-DSI, 2 data lanes
TouchscreenGT911 (I2C)
Audio codecES8311 (I2C + I2S)
SD cardSDMMC 4-bit, FAT32 with LFN
GNSSUART, 38400/9600/57600/115200 baud (auto-detect)
RS485 (external sensors)Modbus RTU, 9600 baud, half-duplex
Internal sensorsI2C bus: SHT41, BME280/BMP280, SCD41, SGP41, INA226

Connection Diagram

Connectors and components of the JC-ESP32P4-M3 board

The image below labels all connectors and control elements on the board (rear view).

Rear view of the board with labels
#LabelPurpose in Meteo P4
1BOOT buttonEnter flashing mode (hold during reset)
2Reset buttonReboot the device
3MX 1.25 2P — SpeakerSpeaker connection (ES8311 audio output)
4TF card slotmicroSD card (FAT32) — sensor logs, audio files
5MX 1.25 2P — Li-BatteryLithium battery (3.7 V, charge monitoring via INA226)
6Battery buttonSwitch on power from the battery
7Full-speed Type-CUSB Full-Speed — firmware flashing (esptool), Serial/JTAG debug
8MX 1.25 4P — UART1GNSS module (TX/RX/3.3V/GND). GPIO37=TX, GPIO38=RX
9High-speed Type-CUSB High-Speed (ESP32-P4 native USB)
10MX 1.25 4P — UARTAuxiliary UART (spare / debug)
11MX 1.25 4P — RS-485RS-485 bus (A+/B−/3.3V/GND) — outdoor SHT30 and anemometer
12SH 1.0 4P — I2CI2C bus (SDA/SCL/3.3V/GND) — SHT41, BME280, SCD41, SGP41, INA226 sensors
13100 Mbps Ethernet PortWired network (Ethernet 100Base-T)
14RTC Battery HolderCR2032 cell — real-time clock (RTC)
1530P 0.5-FPC MIPIJC1060P470C display cable (1024×600, MIPI-DSI) — do not disconnect
16JC-ESP32P4-M3Main module: ESP32-P4 + ESP32-C6 Wi-Fi, 32 MB PSRAM, 16 MB Flash
176P 0.5-FPC TouchGT911 touchscreen cable (I2C) — do not disconnect
182×13 2.54 mm Pin HeaderExpansion header (GPIO, power, SPI, etc.)

Functional connection diagram

  ┌─────────────────────────────────────────────────────────────────┐
  │                    JC-ESP32P4-M3 BOARD                          │
  │                                                                 │
  │  #12 SH1.0 I2C ─── SDA/SCL ──── SHT41   (0x44/0x45) T°/RH%   │
  │                            ──── BME280  (0x76)      P/T°/RH%  │
  │                            ──── SCD41   (0x62)      CO₂        │
  │                            ──── SGP41   (0x59)      VOC/NOx    │
  │                            ──── INA226  (0x40)      V/I/P      │
  │                                                                 │
  │  #8  MX1.25 UART1 ─── TX/RX ──── GNSS module (38400 baud)     │
  │  #11 MX1.25 RS485 ─── A+/B− ──── MAX485 ──┬── SHT30  (0x01)  │
  │                                            └── Anemometer(0x03)│
  │  #3  MX1.25 2P    ─────────────── Speaker (ES8311 audio)       │
  │  #5  MX1.25 2P    ─────────────── Li-Ion battery 3.7 V         │
  │  #4  TF slot      ─────────────── SD card (FAT32)              │
  │  #13 Ethernet     ─────────────── 100 Mbps network             │
  │  #7  Type-C FS    ─────────────── PC (flashing / debug)        │
  │  #15 FPC 30P      ─────────────── 1024×600 MIPI-DSI display    │
  │  #17 FPC 6P       ─────────────── GT911 touchscreen            │
  │  #14 CR2032       ─────────────── RTC (clock when powered off) │
  └─────────────────────────────────────────────────────────────────┘
Display and touchscreen cables (#15, #17) are connected at the factory. Do not disconnect them unless necessary — the FPC connectors are fragile.
Flashing over USB: use connector #7 (Full-speed Type-C). When flashing, hold the BOOT button (#1), then press Reset (#2), then release BOOT.

GPIO Assignments

GPIOPurposeInterface
7I2C SDA — all internal sensors, GT911 touch, ES8311 audioI2C
8I2C SCLI2C
9I2S DOUT (audio output to ES8311)I2S
10I2S WS (Word Select)I2S
11PA Enable — power amplifier enableGPIO
12I2S BCLK / SCLK (Bit Clock)I2S
13I2S MCLK (Master Clock to ES8311)I2S
20GNSS PPS — pulse-per-second (interrupt on both edges, GPIO_INTR_ANYEDGE)GPIO INT
23Display backlight (LEDC PWM)LEDC
26RS485 TX (MAX485 input D)UART3
27RS485 RX (MAX485 output R)UART3
37GNSS TX (data from the GNSS module)UART1
38GNSS RX (commands to the GNSS module)UART1
39SD D0SDMMC
40SD D1SDMMC
41SD D2SDMMC
42SD D3SDMMC
43SD CLKSDMMC
44SD CMDSDMMC
48I2S DIN (audio input from the microphone)I2S
53Battery voltage measurement (ADC2 CH4, 100 kΩ / 140 kΩ divider)ADC
54ESP32-C6 reset (Wi-Fi co-processor, active-high)GPIO

I2C Sensors (internal)

All internal sensors share a single I2C bus (GPIO7/8, 400 kHz). Polling every 2 seconds.

SensorAddressMeasuresUnits
SHT410x44 or 0x45 (auto-detect)Indoor air temperature, humidity°C, %
BME280 (chip_id=0x60)0x76Atmospheric pressure, temperature, humidityhPa, °C, %
BMP280 (chip_id=0x58)0x76Atmospheric pressure, temperaturehPa, °C
SCD410x62CO₂ concentrationppm
SGP410x59VOC index, NOx index1–500
INA2260x40Bus voltage, current, power (battery)V, mA, mW
Auto-detection of the pressure sensor: the device automatically detects whether a BMP280 or BME280 is present by chip_id at startup. The first one found at address 0x76 is used.

RS485 Sensors (external)

External sensors connect via the RS485 bus (Modbus RTU, 9600 baud, half-duplex). A MAX485 or equivalent is used. Bus polarity: A(+) / B(−).

  Meteo P4               MAX485                 RS485 bus
  ──────────             ──────────             ──────────────
  GPIO26 TX ──────────── D (input)
  GPIO27 RX ──────────── R (output)              A (+) ────── Outdoor SHT30 (addr 0x01)
                         A ─────────────────────             ────── Anemometer   (addr 0x03)
                         B ─────────────────────
                         DE/RE ── hardware control            B (−) ────── ...
DeviceModbus addressPoll rateMeasures
SHT30 RS485 (outdoor)0x015 secondsOutdoor temperature and humidity
Anemometer0x031 secondWind speed (m/s), EMA filter α=0.35

RS485 connector pinout (#11, MX 1.25 4P)

RS485 connector pinout
Pin on the boardWire colourPurpose
GND■ GreenGround (common)
B■ YellowRS485 B (−)
A■ BlackRS485 A (+)
5V■ PinkSensor power 5 V
RS485 cable length: a 5 m cable is included. The maximum allowed length at 9600 baud is up to 100 m. For runs longer than 50 m it is recommended to add a 120 Ω terminating resistor between A and B at the far end of the bus.
Outdoor SHT30 RS485 sensor

Outdoor T°/RH% SHT30 sensor (RS485, Modbus addr 0x01)

RS485 anemometer

3-cup anemometer (RS485, Modbus addr 0x03)

Power and Battery

Battery measurement

The battery voltage is measured through a resistive divider on GPIO53 (ADC2, channel 4). The data is shown in the Battery tile on the Settings screen.

INA226 parameterValue
Shunt resistor0.100 Ω
Current LSB0.1 mA
End-of-charge thresholdCurrent ≤ 20 mA AND voltage ≥ 4.10 V
Display power: the MIPI DPHY is powered from the internal LDO VO3 (2500 mV). Do not apply external power to the MIPI connector.

Screens are switched by swipes (horizontal gestures) and taps on control elements. Transition animation: 220 ms.

Transition map (swipes)

Current screenSwipe left →Swipe right ←
MainDetails (Sensors)GNSS
Details (Sensors)PlayerMain
GNSSMain—
Charts—Details (Sensors)
Player—Details (Sensors)
Local Forecast—Settings
Hourly Forecast (5 days)—Main
Scenarios / Alarm—Main
Wi-Fi (networks)—Main
Wi-Fi (password entry)—Wi-Fi (networks)
Settings—Main
Service—Settings
Diagnostics—Settings
About—Settings
LED Indicators—Settings
Server (MQTT)—Settings
Skyview is not a separate screen. The orbital satellite animation and decorative star field are the lower part of the GNSS screen (976×154 px area below the coordinate tiles). Swipes in this area are handled as swipes on the GNSS screen.

Tap transitions

Main Screen

Main screen

Top bar (header)

Left column — weather and sensors

  • Weather icon + "Weather data"
  • Outdoor temperature (large, °C)
  • Feels like + wind speed
  • City + source (GNSS)
  • OUTDOOR T° (RS485) / INDOOR T° (local)
  • HUM. OUTDOOR % (RS485) / HUM. INDOOR % (local)

Centre — clock and ventilation

  • Time HH:MM:SS (split-flap style, large digits)
  • Date: DD.MM.YYYY
  • Day of the week
  • Sync icons: 🏠 GNSS / 📶 NTP
  • VENTILATION card: status + CO₂/VOC/Pressure metrics
  • SUNRISE / SUNSET (time)

Right column — forecast and moon

  • Heading 5-DAY FORECAST + button ▶
  • 5 rows: day of week + icon + wind direction and speed + MAX/MIN °C
  • Moon phase (icon + phase name)
  • Dates: Full Moon / New Moon

5-day forecast

The bottom of the screen contains 5 forecast rows. Each row shows:

Tapping a row opens the Multi-day forecast with details.

The "Aviation forecast" button opens the aviation screen.

Pressure and trend

Pressure is shown in mmHg. Trends:

TextThreshold
Rising fast+3 hPa per 3 hours
Rising+0.5 hPa per 3 hours
Stablewithin ±0.5 hPa
Falling−0.5 hPa per 3 hours
Falling fast−3 hPa per 3 hours

Ventilation card

Based on CO₂, VOC and humidity, the device issues a ventilation recommendation for the room.

Moon phase

Shows the current phase, the date of the next full moon and new moon, as well as sunrise and sunset.

Sensor Details

Sensors screen

Access: swipe left from the Main screen. Title: SENSORS. Buttons in the upper-right corner: AIR / HUM. / Main.

Top row — sensor tiles

TileSourceUnitQuality assessment
CO₂SCD41ppmNormal / Elevated / High / Critical
VOCSGP41index 1–500normal / moderate / high
NOxSGP41index 1–500clean / elevated
HUMIDITYSHT41 / BME280%normal / dry / humid
OUTDOORRS485 SHT30°Csource: RS485
INDOORSHT41 / BME280°Csource: Local sensor

VENTILATION card

Composite recommendation based on CO₂, VOC, humidity and outdoor temperature — hysteresis-based, 6 levels (in priority order):

LevelTitleTriggerColour
1Ventilate nowCO₂ critical (≥ 1400 ppm with hysteresis down to 1350)Pink
2Needs ventilationVOC index highOrange
3Ventilation recommendedCO₂ warn (≥ 1000 ppm)Orange
4Reduce humidityIndoor humidity above thresholdOrange / Cyan
5Not needed nowIndoor air is dryCyan
6Air is normalAll parameters within rangeGreen

Below the title — a hint with a concrete recommendation on ventilation duration (taking outdoor temperature into account: short in frost/heat, longer in normal conditions).

NOISE tile (below the main row)

A narrow horizontal strip titled NOISE with a scale (0–100) and a dB-index value. Data from the ES8311 microphone via the noise_meter component.

Barograph (PRESSURE | 12-HOUR BAROGRAPH)

Large current pressure value in mmHg + text trend ("pressure tendency" / "Stable" / "Rising" / "Falling" etc., see trend table on the Main screen).
Chart: 12-hour points with time markers (−12h / −10h / −8h / −6h / −4h / −2h / now). On the right: max 12h:, min 12h:, norm: (default value "750").

Navigation buttons

GNSS Screen

GNSS screen

Access: swipe right from the Main screen. Screen header: METEO P4 chip (cyan), then a date/time segment --.-- --:--, the title GNSS in the centre, the DGPS: no/ready chip, the PPS: chip with two LED segments (blink each second), and the "Main" button.

Top bar — GNSS STATUS

Coordinate tiles

TileContent
LATITUDEXX.XXXXXX° (decimal degrees)
LONGITUDEXX.XXXXXX°
ACCURACY~ X.X m (HDOP X.X)
ALTITUDEXX.X m (above sea level)
SATELLITESN (number in fix)

Lower three blocks

NAVIGATION

Ready / Not ready
N sats HDOP X.X

TIME

Source: GNSS/PPS / NTP / none
"System clock comes from GNSS/PPS"

LOCATION, SYSTEMS AND TIME

Location: city (from geocoding)
Systems: GPS / BeiDou / GLONASS / Galileo
System time + GNSS UTC

Lower part — Skyview (orbital animation)

Skyview — bottom part of the GNSS screen
Skyview is not a separate screen. It is the animated lower area of the GNSS screen (976×154 px, coordinates 24,424). There are no "< Data" / "GNSS | Skyview" buttons in the code.

Area contents:

System colours (per gnss_skyview_ui code)

ColourSystem
■ BlueGPS (USA)
■ RedGLONASS (Russia)
■ GreenGalileo (EU)
■ OrangeBeiDou (China)
■ CyanSBAS (differential correction)

HDOP scale (shown on the GNSS screen)

HDOPAssessmentColour
< 1.0ExcellentGreen
< 2.0GoodLight blue
< 5.0AcceptableYellow
≥ 5.0PoorRed

Local Forecast

Access: the "Local Forecast" tile in the Control Center (Settings). Actual screen title: LOCAL FORECAST.

Local forecast screen
All calculations are based on local sensors. The header shows the timestamp of the last calculation on the right: SENSORS --:--. Return — swipe right (to Settings).

Card A — CURRENT / ESTIMATE

UI labelDescription
TAir temperature (°C)
Td dew pointDew point (°C) — temperature at which condensation begins
T-Td spreadT − Td difference: the smaller it is, the higher the chance of fog/clouds
RHRelative humidity (%)
P0~Sea-level pressure (mmHg) — QNH equivalent
Baro alt~Barometric altitude (m) — PA equivalent
Density alt~Density altitude (m) — DA equivalent
T − standard~Deviation from the ISA standard atmosphere (°C)
Visibility~Horizontal visibility (m or km)
Cloud base~Cloud base height (m AGL) — ceiling equivalent

Card B — HAZARDS

Each hazard type is colour-coded:

LevelColourMeaning
NONEGreyNo hazard
LOWGreenLow risk
MODERATEYellowModerate risk
HIGHOrangeHigh risk
SEVERERedHazardous conditions

The phenomena evaluated in code (8 rows): Fog / haze, Ice / frost, Thunderstorm, Wind / squall, Precipitation, Pressure drop, Heat / humidex, Warming / night. Below them — a separate row Visibility range~.

Card C — LOCAL FORECAST

Three horizons: Now / +1 h / +3 h. Compact rows with numeric values appear below the columns: for +1h — T / Td / Vis., for +3h — T / Vis. / Clouds.

Card D — MODEL

A narrow strip at the bottom: MODEL label, a summary text from the model (e.g. HH:MM | waiting for data) and on the right a Location: local marker or a geographic reference.

Full synthetic METAR and an airport database are not included in the current build — the section is simplified to "Location: local".

Card E — PRESSURE TREND (12 h)

Heading PRESSURE TREND (12 h). Numeric deltas: 1h: -- hPa, 3h: -- hPa. Text interpretation Waiting… / trend. 12-hour barograph with a sample roughly every 15 minutes.

"Windows by parts of the day" (Night / Morning / Day / Evening with category, visibility, ceiling, wind, risk) are not present in the current build.

Hourly Forecast (5 days)

Access: tap the ▶ button in the "5-DAY FORECAST" block on the Main screen, or tap a day row. Actual screen title: HOURLY FORECAST. The "Main" button in the upper-right corner returns.

Hourly forecast screen

Top row — day selector

5 tiles with weekdays and dates. The active day is highlighted with a blue border. Each tile: weekday, day, month, MIN/MAX temperature.

Lower panel — details of the selected day

Left block — day summary

  • City (from GNSS geoposition)
  • Weather icon
  • Maximum temperature (large)
  • Weekday and date
  • MIN / MAX temperature
  • Sunrise and Sunset
  • Short day description (text)

Right block — hourly table

8 columns: 00:00 / 03:00 / 06:00 / 09:00 / 12:00 / 15:00 / 18:00 / 21:00

Table rows:

  • Weather icons by hour
  • Temperature (°C)
  • Feels like (°C)
  • Pressure (mmHg)
  • Humidity (%)
  • Wind (direction / m/s)
  • Precipitation (%)

Charts

Access: the "Air charts" or "Humidity charts" buttons on the Details screen.

Charts screen

Filter buttons (top panel)

Charts (AIR tab)

ChartColourShowsAbove chart
CO₂GreenCO₂ concentration (ppm)min / max / now
VOCPurpleVOC index (1–500)min / max / now
WIND m/sYellowWind speed (RS485 anemometer)min / max / now

Each chart: a line with points at samples, vertical dashed shadows, Y-axis auto-scaling. Data is stored in LP-SRAM (survives reboot), with backups in SPIFFS and on the SD card.

Media Player

Access: swipe left from the Sensors screen, or Settings → "Media" tile.

Header title: METEO P4  PLAYER (with double space). The BACK button is on the right. Two source modes — switched using the buttons in the top part of the left panel.

Left panel — status

  • Source buttons: SD CARD / WI-FI (active one highlighted)
  • "Art box" with a source icon (SD card or radio) and animated particle dots
  • STATUS heading + coloured dot + value: Stopped / Playing / Paused / Connecting / Loading / Error / Backend offline
  • Wi-Fi line: Wi-Fi offline or SSID/IP
  • QUEUE heading + large -- / -- (current track / total)
  • Track/folder subtitle (DOT truncation)

Sleep timer (SLEEP TIMER)

  • Buttons: 15 MIN, 30 MIN, 45 MIN, 1 HOUR, X (cancel; ASCII Latin X, not a Unicode cross)
  • "Sleep: off" line → "Sleep: MM:SS" (minutes:seconds countdown)
  • Repeat: off / track / folder

WI-FI RADIO mode

Player — internet radio

The header shows the number of stations: "Wi-Fi N stations". Right panel:

SD CARD mode

Player — SD card

In the central header label (dynamic meta) — a folder counter. The right panel contains the Meta card:

Control buttons (common to both modes)

ButtonAction
<<Previous track / station
PLAYPlay / pause (large round orange button)
>>Next track / station
STOPStop playback
REPRepeat (off / track / folder)
MIXOrder mode (sequential / random)
- / +Volume (ASCII minus/plus) — slider from 0 to 100
BACKReturn to the previous screen

Scenarios / Alarm

Access: the SCENARIO chip in the Main screen header. Header title: METEO P4 | SCENARIOS, in the centre — the current scenario name, on the right — clock --:-- and the BACK button.

Scenarios screen

Screen structure

MEDIA panel

BRIGHTNESS panel

Control Center (Settings)

Settings screen

Access: the ⚙ chip in the Main screen header, or swipe left from any settings sub-screen. Topbar: SETTINGS.

Hero block: heading "Device Control Center"
Hint: "Tiles show the current status of subsystems and lead to related screens."

First-row tiles (5 items)

TileColourCaptionOpens
InternetCyan"Wi-Fi, network, API and time"Wi-Fi screen
MediaBlue"Player, sources and playback"Player
ServiceOrange"GNSS, sensors and buses"Service screen
DiagnosticsGreen"Errors, reset and status"Diagnostics screen
ServerCyan (0x26C6DA)"MQTT telemetry"MQTT screen

Second-row tiles (5 items)

TileColourCaptionOpens
Local ForecastYellow"Weather, risks and visibility"Local Forecast
BatteryTurquoise (0x2FE6C8)"Power, charge and status"— (status only)
LED IndicatorsCyan"Status colours"LED Indicators
GNSSPurple"Satellites, FIX and time"GNSS screen
AboutLight blue (0x8BC8FF)"Information and licenses"About
10 tiles (5×2), not 9. The Server tile leads to a separate MQTT screen (swipe right returns to Settings). The Local Forecast tile is named exactly that in the code, not "Aviation forecast".

Wi-Fi / Internet

Wi-Fi screen

Access: the Wi-Fi chip in the Main screen header, or the "Internet" tile in Settings. Screen header: INTERNET / WI-FI. On the left — the BACK button.

Left card — "Available networks"

  • Card heading: Available networks
  • List of SSIDs sorted by signal (number of rows is set by WIFI_UI_SCAN_ROWS)
  • Each row: * — protected network, SSID (DOT truncation), RSSI (dBm), 4-segment signal bar
  • RSSI colour thresholds (4 levels): ≥ -65 dBm (green), ≥ -75 (cyan), ≥ -85 (yellow), < -85 (red)
  • "Refresh" button in the upper-right corner — repeat scan

Right card — "Connection"

  • Card heading: Connection
  • Line 1: Wi-Fi: SSID | IP address or Wi-Fi: off
  • Line 2: RSSI: dBm (rating) | channel: N
  • Line 3: Auth: -- | PHY: -- | mode: STA
  • Two-line hint: "Select a network on the left" + "The password keyboard screen will open"
  • Status line: Ready to scan / Scanning…
  • "Turn off Wi-Fi" / "Turn on Wi-Fi" button (upper-right corner of the card; changes colour and text by state)

"Internet speed" card

Embedded in the right panel: heading Internet speed, "Network test" button in the top corner, and an arrow-style speedometer (LV scale, range 0–30 Mbps, 225° angle) with three colour zones:

ZoneColourSpeed
Low speedRed0–10 Mbps
Normal speedBlue10–20 Mbps
High speedGreen20+ Mbps

The "Network test" button starts the measurement. The result is shown as a digit (Mbps) and the arrow position.

Connecting to a network

  1. Tap the desired network in the list on the left
  2. The password entry screen opens with an on-screen keyboard
  3. Enter the password (lower/upper case, digits and special characters available)
  4. Press OK — the device will try to connect
  5. Connection status is shown in the right panel
When you enter the Wi-Fi screen, scanning starts automatically. When you leave the screen, scanning stops.

Service Screen

Access: Settings → "Service" tile.

Caption at the bottom of the screen: "The screen updates automatically. Live and static hardware data of the board."

Service screen

The screen consists of 16 tiles arranged in four rows of four. Each tile has a coloured border.

Row 1

TileContent
HARDWARE MCU: ESP32-P4 rev.X, N cores
Flash: 16 MB | PSRAM: 27 MB
Int RAM: XXX KB | DMA: XXX KB
FIRMWARE App: meteo_p4 N
FW: p4 22.31.XXXX
IDF: v6.0.1
Build: date and time of compilation
MEMORY Heap: free/total KB, used
Int: free/total KB | DMA: XXX KB
PSRAM: free/total KB
POWER Vbat: XXX mV | status (rest/charge/discharge)
Pin ADC: XXX mV | raw: XXXX
Charge: X% | cal: on/off

Row 2

TileContent
NETWORK Wi-Fi: SSID
IP: X.X.X.X
ETH: status (ready, link down / active)
SENSORS Weather: ok/err | coord: GNSS/none
Outdoor T: ok/err | SHT30: ok/err
RS485 wind: ok/err | GNSS: FIX/NO FIX | X.X m/s
AUDIO Volume: XX
Codec: 44100 Hz, 16 bit, 2 ch.
I2S: BCK GPIO | WS GPIO | DO GPIO | DI GPIO
SD / STORAGE SD: mounted / not found
Storage part: XXXX KB
Pins: D0–D3 with GPIO numbers

Row 3

TileContent
DISPLAY LCD: 1024×600 MIPI-DSI
Panel: JD9165 | Touch: GT911
Backlight: GPIOXX
C6 / GNSS C6: SDIO active
UART ext: TX XX RX XX
GNSS: TX XX RX XX | PPS: yes/no
BUSES AND PINS I2C: SDA X SCL X
RGB: WS2812 GPIOXX | BL GPIOXX
Scenario: on/off | Brightness: XXX/X
UPTIME Uptime: N d HH:MM:SS
Unix: XXXXXXXXXX
Part: factory | XXXX KB

Row 4

TileContent
INA226 / BATTERY Bus V | Load V
I: X.X mA | P: X.X mW | status
MFR: 0xXXXX DIE: 0xXXXX
SYSTEM Tasks: N | Reset: reason | Heap min: XXXX KB
HWM(B): L=XXXX S=XXXX G=XXXX
P=XXXX H=XXXX
OTA / PARTITIONS Running: factory @ 0xXXXXX
Next OTA: none (factory) / ota_0
State: N/A / Valid / Invalid
TIME / NTP Current system time, sync source, NTP status
Screen topbar: SERVICE (not "Service"). The "Reset SD logs" button with a YES / CANCEL confirmation dialog is in the code located on the Charts screen (the "RESET" button in the top panel), not on the Service screen.

Diagnostics

Access: Settings → "Diagnostics" tile. Topbar: DIAGNOSTICS.

The screen consists of 8 tiles (2 columns × 4 rows) with live data and hints:

TileColour
LAST RESET REASONRed
MEMORY / FREERTOSGreen
POWER / BATTERYYellow
NETWORKBlue
SENSORS / GNSSPurple
OTA / PARTITIONSCyan
ERRORS / REASONSOrange
WHAT TO CHECKOrange

Footer hint: "Diagnostics shows the reset cause, live state of the network, sensors and power. For PANIC/WDT keep the UART log: the UI sees the final cause, but not the full backtrace."

About

Access: Settings → "About" tile. A scrollable text report with the following sections:

LED Indicators

Access: Settings → "LED Indicators" tile.

LED Indicators screen

Topbar: LED INDICATORS. Intro card: "Bottom status bar" / "Each indicator shows the current state of a subsystem. Colour and lighting mode depend on the state."

The screen describes the bottom status bar of the Main screen — 10 indicators, each showing the state of one subsystem.

IndicatorSubsystemStates (left — better, right — worse)
WIFI Wi-Fi state ● connected ● off / no link
TIME Internet, NTP, API ● time synced ● network without time ● API/NTP error ● no network
GNSS Navigation and FIX ● FIX/PPS ● FIX ● no FIX ● no data
WEATH. Current weather ● clear ● cloudy ● fog ● rain ● snow   ● thunderstorm
FORE. Forecast and risk ● calm ● cloudy ● snow ● precipitation/POP ● wind   ● thunderstorm
CO2 CO₂ level ● < 800 ppm ● 800–999 ppm ● 1000–1399 ● ≥ 1400
IAQ Air quality ● normal ● dry ● ventilate ● bad air ● critical
PRESS. Pressure trend ● stable ● rising ● rapid rise ● falling ● sharp drop
PLAYER Player and scenarios ● inactive ● scenario ● radio   ● Spotify ● dawn ● error
RISK Alarms and faults ● no alarms ● API error ● pressure drop ● frost ● fault / CO₂

Automatic Alerts and Thresholds

Alert / indicatorCondition in code
High CO₂ (LED CO2)Colour zones: < 800 / 800-999 / 1000-1399 / ≥ 1400 ppm (see LED Indicators). Signal threshold in meteo_data: AIR_CRITICAL ≥ 1500 ppm.
"Ventilate now" cardCO₂ ≥ 1400 ppm with hysteresis down to 1350 (see Sensors screen, level 1).
Pressure dropΔp ≥ −3 hPa over 3 hours (trend "Falling fast", RGB pressure zone).
Frost riskIn the synoptic code: SYN_FROST_TEMP_C = 2.0 °C — outdoor temperature is taken into account (RS485 SHT30); affects the RISK LED zone.

MQTT Telemetry (Server)

Access: the Server tile in the Control Center. Swipe right returns to Settings. The mqtt_telemetry component publishes the firmware version (mqtt_telemetry_set_firmware_version) and live sensor readings to the MQTT broker.

Data Storage

StorageWhat is storedNotes
NVS (Flash)Wi-Fi settings, time zone, SGP41 calibration, audio settingsSurvives reboot and power loss
LP-SRAM (RTC)48-point barograph, chart history, forecast historySurvives esp_restart() and WDT reset. Does NOT survive cold power-on
SPIFFSBackups of charts and forecast historyRestored after cold start
SD card (FAT32)CSV/JSON sensor log, audio filesUp to 4 simultaneous streams
On cold start (full power loss) LP-SRAM data is lost. The barograph and chart history are restored from SPIFFS if the backup is current.

Firmware Version

The current firmware version is shown on the Service screen in the FIRMWARE tile.

Version format: p4 YY.NN.XXXX

The change counter increments with every change to the firmware source code or resources.



Meteo P4 · Firmware p4 22.31.0641 · ESP-IDF 6.0.1 · LVGL v9