|
2 | 2 |
|
3 | 3 | All notable changes to SIMUT firmware. |
4 | 4 |
|
5 | | -## Unreleased |
6 | | - |
7 | | -### Documentation |
8 | | - |
9 | | -- **Landing page v2** — redesigned with hero image, Why SIMUT comparison table, screenshots section, architecture diagram, and clear CTAs |
10 | | -- **GitHub Pages fix** — remove raw HTML blocks incompatible with kramdown; add `_config.yml` for theme configuration |
11 | | -- **Social preview** — add `og:image` and `twitter:image` meta tags so URL shares show the TFT dashboard on Reddit, Twitter, Discord, and WhatsApp |
12 | | -- **GitHub topics** — expand from 9 to 20 topics highlighting innovations (offline-first, touchscreen, dual-core, ota-updates, rbac, secure, i18n) |
13 | | -- **Wiring guide** — revise pin assignments and assembly details; fix Pin Reference table rendering on GitHub Pages (kramdown rejected `...` row) |
14 | | -- **Changelog in Portuguese** — `CHANGELOG.pt-BR.md` mirroring the English version |
15 | | -- **Contributor recognition** — generate `CONTRIBUTORS.md` with All-Contributors emoji grid; add badge and contributor table to both READMEs; add Lorenzo Longaretto as second contributor |
16 | | -- **README demo GIF** — add animated TFT dashboard demo above the fold |
17 | | -- **Contributions Welcome badge** — green badge signaling openness to new contributors |
18 | | -- **GitHub Discussions** — enable community Q&A channel |
19 | | -- **FUNDING.yml** — Sponsor button as professional maintenance signal |
20 | | -- **CONTRIBUTING.pt-BR.md** — Portuguese translation of the contributing guide, matching the bilingual README pattern |
21 | | -- **CONTRIBUTING.md expanded** — add "Finding Something to Work On" section with skill-to-issue mapping table; add AI tools policy; add language selector linking to Portuguese version |
22 | | - |
23 | | -### Community |
24 | | - |
25 | | -- **Second external contribution** 🎉 — Docker development environment so contributors can build and test without installing PlatformIO locally ([@JohnMartin0301](https://github.com/JohnMartin0301)) |
26 | | -- **First external contribution** 🎉 — 672-line HistoryCodec v2 test suite covering roundtrip encoding, anchor frame boundaries, NaN compression, and buffer overflow ([@LorenzoLongaretto](https://github.com/LorenzoLongaretto)) |
27 | | -- **12 `good first issue`** tickets created across docs, design, DevOps, embedded, i18n, and security |
28 | | -- **5 new labels** added: `tests`, `display`, `i18n`, `ci`, `tools`, `security` |
29 | | - |
30 | | -### Infrastructure |
31 | | - |
32 | | -- **Docker development environment** — `Dockerfile` + `docker-compose.yml` so contributors can build and test without installing PlatformIO locally; image size 1.66 GB ([@JohnMartin0301](https://github.com/JohnMartin0301)) |
33 | | -- **.editorconfig** — consistent indentation across editors |
34 | | -- **Social preview image** — 1280×640 PNG for Open Graph sharing |
35 | | -- **Landing page images** — TFT dashboard, Web UI screenshots, animated demo GIF |
36 | | -- **Test suite verified** — 49/49 tests passing in 0.9s (27 validators + 22 HistoryCodec) |
| 5 | +## v1.1.0-beta (2026-06-06) |
| 6 | + |
| 7 | +### Sensor Architecture — Modular Driver System |
| 8 | + |
| 9 | +- **Compile-time sensor feature flags** — `SIMUT_SENSOR_DS18B20`, `SIMUT_SENSOR_DHT22`, `SIMUT_SENSOR_BME280` in `platformio.ini` allow disabling unused drivers to reclaim flash (DS18B20: -2.7 KB, DHT22: -1.6 KB, both: -6.1 KB) |
| 10 | +- **Universal slot configuration** — `SensorRecord` v16 with explicit `sensorType` field + multi-pin support (`pins[4]`), ready for I2C, SPI, ADC, and UART sensors |
| 11 | +- **Sensor drivers organized** — `src/sensors/` directory with `DS18B20Driver.h`, `DHT22Driver.h`, `SensorConfig.h`, `SensorHelpers.h` |
| 12 | +- **Flash migration v15→v16** — Automatic schema upgrade preserving all sensor configs, ROM-based type detection during migration |
| 13 | +- **SensorPresets catalog** — 130+ predefined display formats in `sensors/SensorPresets.h` covering 30+ physical quantities (temperature, humidity, pressure, weight, light, chemistry, electrical, flow, etc.) |
| 14 | +- **SensorFormat system** — `SensorValueFormat` (unit, decimals, icon) + `SensorFormat` (1-3 values per sensor) + factory `forType()` in `sensors/SensorHelpers.h` |
| 15 | + |
| 16 | +### Display — Driver-Owned Panel Rendering |
| 17 | + |
| 18 | +- **Icon drawing in drivers** — `sensors/SensorDrawing.h` with procedural icons (thermometer, drop, gauge, bulb, ruler, vial, bolt, pulse, pipe, compass, flag, atom, battery, etc.) guarded by compile flags |
| 19 | +- **Driver-based panel rendering** — `DHT22_renderPanel()` and `DS18B20_renderPanel()` handle full panel layout (icons, formatting, units) via `sensorRenderPanel()` dispatch |
| 20 | +- **Slot panel now shows humidity** — DHT22 in any slot displays both temperature and humidity with drop icon and translated suffix (%RH/%UR) |
| 21 | +- **Theme-aware colors** — Drivers receive `C_TEXT_SUB`, `C_TEMP_OK`, `C_TEMP_HOT`, `C_HUMIDITY` from active theme; icons follow theme changes |
| 22 | +- **Exact original positioning** — `textAnchor=92`, `iconX=14`, `rightMargin=15` matched from original `drawAmbientPanel` |
| 23 | +- **Generic value formatter** — `formatSensorValue()` in `DisplayManager_FmtFloat.h` handles NaN and variable decimal places |
| 24 | + |
| 25 | +### Bug Fixes |
| 26 | + |
| 27 | +- **AP Mode via touch at boot** — XPT2046 receives SPI wake-up command during early boot; PENIRQ pin read directly via `gpio_get()`. AP window always opens regardless of settle state. |
| 28 | +- **Mandatory touch calibration on first boot** — Full sensitivity + 4-point position calibration runs before dashboard when `magic != 0xCA`. Cancel during boot applies safe defaults. |
| 29 | +- **`sensor define` command** — Extended syntax accepts sensor type: `sensor define <gpio> <rom> <type> <hwId> <name>`. Legacy 4-token syntax auto-detects from ROM. |
| 30 | +- **`sensor accept` command** — Sets `sensorType` explicitly on accepted DS18B20 sensors. |
| 31 | + |
| 32 | +### Flash Budget |
| 33 | + |
| 34 | +| Configuration | Flash | |
| 35 | +|---|---| |
| 36 | +| Both sensors ON | 1031464 (98.8%) | |
| 37 | +| DS18B20 only | ~1028400 (98.5%) | |
| 38 | +| DHT22 only | ~1029500 (98.6%) | |
| 39 | +| Both OFF | ~1024900 (98.1%) | |
| 40 | + |
| 41 | +### Tests |
| 42 | + |
| 43 | +49/49 tests passing (27 validators + 22 HistoryCodec). |
37 | 44 |
|
38 | 45 | ## v1.0.0 (2026-06-03) |
39 | 46 |
|
|
0 commit comments