Skip to content

Releases: morfredus/LEDGarland

v5.6.4 - Operating Mode Persistence Fix

Choose a tag to compare

@morfredus morfredus released this 02 Feb 23:31

Release Notes v5.6.4 (2026-02-02)

Valid from version 5.6.4

🐛 Critical Bug Fixes

1. Operating Mode Persistence Restored

Problem: Operating mode (Permanent/Motion Trigger) was not correctly restored at boot, always reverting to permanent mode regardless of saved settings.

Root Cause: NVS (Non-Volatile Storage) type mismatch — the mode was being saved as u8 (unsigned 8-bit) but read back as i32 (signed 32-bit integer), causing data corruption.

Solution: Unified storage and retrieval to use i32 type consistently, ensuring mode persistence across reboots.

Impact: Users can now rely on their chosen operating mode being preserved after power cycling or reboot.


2. ESP32-S3 Mini Pin Mapping Correction

Problem: Motion sensor pin was incorrectly documented as GPIO7 in all documentation files, but the actual hardware uses GPIO2.

Solution: Corrected MOTION_SENSOR_PIN from GPIO7 to GPIO2 across:

Impact: Hardware setup now matches documentation, preventing connection errors for ESP32-S3 Mini users.


📚 Documentation Updates

Physical Button Controls Table

Updated all user documentation with a comprehensive table detailing BOOT button and USER button functionality:

Button Action Function
BOOT Short press Cycle through operating modes
BOOT Long press (2s) System reboot
USER Short press Switch garland animation (Manual mode)
USER Long press (2s) Toggle matrix on/off

This table is now included in:


🔧 Technical Details

NVS Type Correction

// Before (incorrect)
nvs_set_u8(nvs_handle, "operating_mode", mode);  // Save as u8
nvs_get_i32(nvs_handle, "operating_mode", &mode); // Read as i32 ❌

// After (correct)
nvs_set_i32(nvs_handle, "operating_mode", mode);  // Save as i32 ✅
nvs_get_i32(nvs_handle, "operating_mode", &mode); // Read as i32 ✅

GPIO Mapping (ESP32-S3 Mini)

// board_config.h
#ifdef TARGET_ESP32S3_MINI
    #define MOTION_SENSOR_PIN 2  // Previously incorrectly documented as GPIO7
#endif

📦 Supported Hardware

This release supports all existing platforms:

  • ESP32 Classic (IdeaSpark/DevKitC)
  • ESP32 Wroom (DevKit V1)
  • ESP32-S3 Mini (esp32s3_mini)
  • ESP32-S3 Super Mini (esp32s3_supermini)

All platforms support OLED SSD1306 (I2C) display if connected.


🚀 Installation

PlatformIO

# Update to v5.6.4
git pull origin main
git checkout v5.6.4
pio run -e <your_board> -t upload

Replace <your_board> with:

  • esp32devkitc (ESP32 Classic)
  • esp32_wroom (ESP32 Wroom)
  • esp32s3_mini (ESP32-S3 Mini)
  • esp32s3_supermini (ESP32-S3 Super Mini)

OTA Update

If OTA is already configured on your device:

pio run -e <your_board> -t upload --upload-port <device_ip>

📖 Documentation


🙏 Feedback

If you encounter any issues with this release, please open an issue on the project repository with:

  • Hardware platform used
  • Steps to reproduce
  • Serial monitor output (if applicable)

Previous Release: v5.6.3
Full Changelog: CHANGELOG.md

Release v5.6.3 - Documentation Alignment

Choose a tag to compare

@morfredus morfredus released this 01 Feb 21:44

Release v5.6.3 - Documentation Alignment

What's Changed

Documentation Updates:

  • Updated version to 5.6.3 in platformio.ini
  • Added CHANGELOG entries for v5.6.3 (English/French)
  • Removed all ESP32-C3 HW-675 references from user documentation
  • Removed all ST7789/LCD references, replaced with OLED SSD1306 only
  • Completely rewrote PIN_MAPPING documentation with accurate per-board GPIO tables
  • Updated supported platforms across all docs: ESP32 Classic, Wroom, S3 Mini, S3 Super Mini
  • Corrected GPIO mappings in README and all guides
  • Updated button logic documentation (single user button with multi-click support)
  • Updated TROUBLESHOOTING with current platforms and environment names
  • Maintained bilingual parity (English/French) across all documentation
  • Preserved historical release notes in RELEASE_v5.2.0 documentation

Supported Platforms

  • ESP32 Classic (IdeaSpark)
  • ESP32 Wroom (DevKit V1)
  • ESP32-S3 Mini
  • ESP32-S3 Super Mini

Display Support

  • OLED SSD1306 (I2C, 128x64 or 128x32, configurable rotation)

Full Changelog: https://github.com/morfredus/LED-Garland-Anim/blob/main/CHANGELOG.md

v5.6.2 (2026-02-01)

Choose a tag to compare

@morfredus morfredus released this 01 Feb 20:06

Added

  • New PlatformIO environment esp32s3_supermini for ESP32S3 Super Mini with TARGET_ESP32S3_MINI board configuration
  • OLED rotation configuration via OLED_ROTATION macro in config.h (U8G2_R0, U8G2_R1, U8G2_R2, U8G2_R3)

Changed

  • display_oled.cpp include order to ensure U8G2lib.h is included before config.h
  • Documentation version headers and current-version references synchronized to v5.6.2 (README and guides)

v5.6.0

Choose a tag to compare

@morfredus morfredus released this 23 Jan 17:21

Release v5.6.0

Highlights

  • OLED display adaptation for both 128x32 and 128x64 screens, with consistent features and improved layout.
  • Animation names are now internationalized (English), with short names for better readability on small screens.
  • Radar animation has been completely overhauled for more realistic effects.
  • In auto mode, the OLED now displays the current animation name with the "Aut:" prefix, providing clear feedback instead of just "Auto".
  • All display logic now uses public getters for the active animation, ensuring robust and maintainable code.
  • Documentation updated and synchronized for all features, including hardware guides, quickstart, troubleshooting, and user guides.
  • Version numbers updated across all documentation and configuration files.

Bug Fixes

  • Fixed double definition of OLED_HEIGHT in config.h.
  • Resolved linkage errors by introducing public getters for animation state.
  • Improved display logic to always show the correct animation name in auto mode.

Documentation

  • All guides and documentation files updated to reflect new features and version 5.6.0.
  • English and French documentation synchronized for consistency.

Other

  • dev/oled branch merged into main.
  • All changes pushed to the main repository.

v5.5.0

Choose a tag to compare

@morfredus morfredus released this 23 Jan 14:50

v5.5.0 – Radar Animation Overhaul & OLED Improvements

  • Major overhaul of the “Radar” matrix animation: now features a single sweeping green ray with a fading trail, just like a real radar.
  • Red blips appear only when the ray passes, never close together, and fade out smoothly (max 2–4 per sweep).
  • No more random or clustered blips: all are triggered by the sweep for a realistic effect.
  • Full support for both 128x64 and 128x32 OLED displays (auto or config selectable).
  • All display logic adapts for 128x32: condensed, readable, and clear.
  • Automatic short names for modes/animations on small screens.
  • All animation and mode names now in English (internationalization).
  • Documentation and code harmonized (EN/FR).
  • Version and date updated everywhere.

See the full changelog for details.

Full Changelog: v5.4.0...v5.5.0

v5.4.0 – OLED Multi-format & Internationalization

Choose a tag to compare

@morfredus morfredus released this 23 Jan 14:13

v5.4.0 – OLED Multi-format & Internationalization

  • Full support for both 128x32 and 128x64 OLED displays (auto-detection/configurable)
  • Display logic fully adapts for 128x32: condensed, readable, and clear
  • Automatic short English names for modes and animations on small screens
  • All mode and animation names are now in English (internationalization)
  • Documentation harmonized (EN/FR), changelogs and guides updated
  • Version synchronized across all files and configuration
  • Various display and logic improvements

This release marks a major step for hardware compatibility and international readability.

Full Changelog: v5.3.4...v5.4.0

v5.3.4

Choose a tag to compare

@morfredus morfredus released this 23 Jan 11:27

feat: single button logic (1 click=garland, 2 clicks=matrix, long=mode) + doc update [SEMVER PATCH]

v5.3.3 - English-only codebase

Choose a tag to compare

@morfredus morfredus released this 22 Jan 15:13

All user-facing and log messages in the codebase are now in English only (except *_FR.md documentation files).

Web server responses, logs, and comments are fully English.
Version aligned everywhere (platformio.ini, README, CHANGELOG).
See CHANGELOG.md for details.
This release enforces a strict English-only policy for all code and runtime messages, improving internationalization and maintainability.

v5.3.1

Choose a tag to compare

@morfredus morfredus released this 22 Jan 14:25
1e2c001

🚀 Release v5.3.1

Highlights

  • New ESP32 Wroom environment: Added full support for ESP32 Wroom (DevKit V1) with dedicated pin mapping, without changing any existing GPIOs for other boards.
  • Third physical button: Added a third button for mode switching. All button functions are now clearly separated (Next animation, Next matrix animation, Mode change).
  • OLED UI improvements:
    • Smaller font for version display.
    • Larger font for IP address (centered, truncated if needed).
    • Info lines (Gui, 8x8, Mode) now left-aligned with the value shown immediately after the title (e.g. Gui: Rainbow), with automatic truncation to fit the screen.
  • Documentation parity: All user documentation (EN/FR) and pin mapping files updated and harmonized for v5.3.1, including new board, button mapping, and OLED notes.
  • Strict SEMVER and .copilot rules: All changes are versioned, documented, and committed according to repository rules.

Changelog

  • Add [env:esp32wroom] to platformio.ini and update board_config.h.
  • Update main.cpp and display_oled.cpp for third button and improved OLED display.
  • Clean and synchronize README.md, README_FR.md, PIN_MAPPING.md, and PIN_MAPPING_FR.md.
  • All user-facing docs reflect v5.3.1 and new features.
  • All code and documentation changes are committed and tagged.

This release brings hardware expansion, better user experience, and full documentation parity.

Full Changelog: v5.3.0...v5.3.1

v5.3.0

Choose a tag to compare

@morfredus morfredus released this 22 Jan 00:53
c1d179c

🖥️ Improved OLED UI & Consistent Display (v5.3.0)

New Features & Improvements

  1. Project name and version now on two centered lines (OLED)

    • The project name and version are now displayed on two separate, centered lines—both vertically and horizontally—on both the main and boot OLED screens.
    • This greatly improves readability and aesthetics, with no more visual overlap.
  2. Version shifted 1 pixel lower

    • The version text is now shifted 1 pixel lower to avoid overlapping with the top color band on the OLED.
  3. Full consistency between main and boot screens

    • The boot screen now uses exactly the same centered layout as the main screen.

Documentation

  • Changelogs (EN/FR), user guides, and README files updated to reflect these UI changes.
  • See display_oled.cpp for the display logic.