Skip to content

Commit 1dcd61c

Browse files
committed
fix(builder): stop offering boards without PSRAM
The Config Builder listed the AtomS3/AtomS3 Lite and a generic ESP32 DevKit, neither of which has PSRAM — so it could hand out a ready-to-flash YAML for a board the project no longer supports. Removes both from site/boards.js and deletes their boards/*.yaml reference configs. A new boards.shape test asserts every board defines PSRAM, so a psram-less entry can't come back unnoticed. Claude-Session: https://claude.ai/code/session_01RgSnMCa3JQigphGnPbazdw
1 parent 8cb96bb commit 1dcd61c

15 files changed

Lines changed: 29 additions & 183 deletions

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1515
- **Docs site recoloured to the brand mark.** Link and accent colours moved from green to the mark's silicon indigo and busbar silver; amber keeps its one meaning — this part is live. The blueprint grid behind the headline is now a PV array receding toward the horizon — cells, busbars and module frames, drawn in CSS gradients so it stays sharp at any size and re-tints with the theme.
1616
- **New brand mark.** The green-to-blue tile is replaced by an optimizer emitting a telemetry frame, in silicon indigo and amber. It's drawn at three sizes rather than scaled — the device favicon, the device UI sidebar, and the docs — so it stays legible in a browser tab. The docs site had no logo or favicon configured before and now carries the same mark the device serves.
1717

18+
### Removed
19+
- **Boards without PSRAM are no longer offered.** The Config Builder listed the M5Stack AtomS3/AtomS3 Lite and a generic ESP32 DevKit, both of which lack PSRAM — so it could hand you a ready-to-flash YAML for a board the project doesn't support. Both are gone from the builder, along with their `boards/*.yaml` reference configs, and a test now blocks a PSRAM-less board from being added back.
20+
1821
### Fixed
1922
- **Opening the web UI could reboot the device.** History pages read the TSDB from the web server's task while the 30-minute snapshot writes it from another — and on the ESP32-S3 every flash access, read included, cuts the instruction cache on both cores, so the two collide and fault (`Fault - Unknown`). All LittleFS access now goes through one lock. History requests can queue briefly (a month-range query holds the flash ~2.3 s) and return an error rather than hang if they wait more than 15 s.
2023

boards/README.md

Lines changed: 4 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,12 @@
22

33
This directory contains optimized ESPHome configurations for different ESP32 boards used with the Tigo Monitor system.
44

5+
**PSRAM is required.** Only boards that have it are configured here.
6+
57
## Available Configurations
68

79
### ESP32-S3 Boards
810

9-
#### `esp32s3-atoms3.yaml` - M5Stack AtomS3 (No PSRAM)
10-
- **Board**: M5Stack AtomS3
11-
- **PSRAM**: None
12-
- **CPU**: 240MHz
13-
- **Recommended for**: Standard installations (up to ~30 devices)
14-
- **UART Buffers**: 2048 RX / 512 TX
15-
1611
#### `esp32s3-atoms3r.yaml` - M5Stack AtomS3R (8MB PSRAM)
1712
- **Board**: M5Stack AtomS3R (same as AtomS3 with different model)
1813
- **PSRAM**: 8MB (Octal)
@@ -31,16 +26,6 @@ This directory contains optimized ESPHome configurations for different ESP32 boa
3126
- **UART Buffers**: 16384 RX / 1024 TX (listen-only, no transmission)
3227
- **Special optimizations**: High-frequency FreeRTOS tick, tickless idle disabled
3328

34-
### Standard ESP32 Boards
35-
36-
#### `esp32-dev.yaml` - Generic ESP32 DevKit (No PSRAM)
37-
- **Board**: Generic ESP32 DevKit
38-
- **PSRAM**: None
39-
- **CPU**: 240MHz
40-
- **Recommended for**: Small installations (up to ~12 devices)
41-
- **UART Buffers**: 1024 RX / 256 TX
42-
- **Note**: Limited by available heap memory
43-
4429
## Usage
4530

4631
To use a board configuration, include it in your main YAML file:
@@ -72,8 +57,8 @@ Adjust these in your main configuration if your hardware differs.
7257
## Performance Notes
7358

7459
- **ESP32-P4** offers the best performance with massive PSRAM and higher CPU frequency
75-
- **ESP32-S3** variants are the sweet spot for most installations
76-
- **Standard ESP32** is adequate for small systems but may struggle with web server + many devices
60+
- **ESP32-S3 with PSRAM** is the sweet spot for most installations
61+
- Boards without PSRAM are not supported — the web server and device tables have nowhere to live and the firmware goes unstable
7762

7863
## Customization
7964

boards/esp32-dev.yaml

Lines changed: 0 additions & 52 deletions
This file was deleted.

boards/esp32s3-atoms3.yaml

Lines changed: 0 additions & 53 deletions
This file was deleted.

docs/images/Dashboard.png

253 Bytes
Loading

docs/images/Diagnostics.png

79 Bytes
Loading

docs/images/History.png

-1.11 KB
Loading

docs/images/Tools.png

-5 Bytes
Loading

docs/images/Topology.png

-155 Bytes
Loading

site/boards.js

Lines changed: 0 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -212,29 +212,6 @@ font:
212212
size: 9`,
213213
notes: ['Built-in tail485 RS485 transceiver on GPIO1/GPIO2.'],
214214
},
215-
{
216-
id: 'esp32s3-atoms3',
217-
label: 'M5Stack AtomS3 / AtomS3 Lite (ESP32-S3, no PSRAM)',
218-
chip: 'esp32s3', board: 'm5stack-atoms3', variant: 'esp32s3',
219-
psram: null,
220-
partitions: null,
221-
frameworkAdvanced: { enable_idf_experimental_features: false },
222-
frameworkComponents: [],
223-
hostedComponent: null,
224-
sdkconfig: {
225-
CONFIG_ESP32S3_DEFAULT_CPU_FREQ_240: 'y',
226-
CONFIG_UART_ISR_IN_IRAM: 'y',
227-
CONFIG_UART_RX_BUFFER_SIZE: '1024',
228-
CONFIG_UART_TX_BUFFER_SIZE: '512',
229-
CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE: '16',
230-
},
231-
hosted: null,
232-
uartDefault: { tx_pin: 'GPIO6', rx_pin: 'GPIO5', rx_buffer_size: 1024 },
233-
numberOfDevices: 15,
234-
supports: { ble: false, display: false },
235-
displayOverlay: null,
236-
notes: ['No PSRAM: History/tsdb persistence is not configured on this board.'],
237-
},
238215
{
239216
id: 'esp32p4-evboard',
240217
label: 'ESP32-P4 Function EV Board (32MB PSRAM, C6 Wi-Fi)',
@@ -297,29 +274,6 @@ font:
297274
'PSRAM is hex mode only; valid speeds are 20/100/200 MHz (200 default). If a specific board crash-loops at boot, drop to 100 or 20 MHz — a per-board PSRAM quirk, not a universal limit.',
298275
],
299276
},
300-
{
301-
id: 'esp32-dev',
302-
label: 'Generic ESP32 DevKit (classic ESP32)',
303-
chip: 'esp32', board: 'esp32dev',
304-
psram: null,
305-
partitions: null,
306-
frameworkAdvanced: { enable_idf_experimental_features: false },
307-
frameworkComponents: [],
308-
hostedComponent: null,
309-
sdkconfig: {
310-
CONFIG_ESP32_DEFAULT_CPU_FREQ_240: 'y',
311-
CONFIG_UART_ISR_IN_IRAM: 'y',
312-
CONFIG_UART_RX_BUFFER_SIZE: '1024',
313-
CONFIG_UART_TX_BUFFER_SIZE: '256',
314-
CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE: '16',
315-
},
316-
hosted: null,
317-
uartDefault: { tx_pin: 'GPIO1', rx_pin: 'GPIO3', rx_buffer_size: 1024 },
318-
numberOfDevices: 12,
319-
supports: { ble: false, display: false },
320-
displayOverlay: null,
321-
notes: ['Limited RAM: keep number_of_devices low; History/tsdb not configured.'],
322-
},
323277
];
324278

325279
export function getBoard(id) {

0 commit comments

Comments
 (0)