v2.00: SystemK v2.00, ESP-IDF v6.0.0 #18

Merged
Joe merged 17 commits from SystemK_interface_improvements into main 2026-03-28 21:33:54 +00:00
Owner

Summary

This branch updates the 2024A firmware to SystemK v2.00 and migrates to ESP-IDF v6.0.0.

SystemK v2.00 Interface Updates

Updated all components to use the new SystemK v2.00 API across four phases:

  • Phase 1 — BLE and NVM/Settings components; removed now-unnecessary boilerplate from main.c
  • Phase 2 — Further BLE and Settings interface alignment
  • Phase 3 — NeoPixel (HW_NeoPixels) driver simplified using new SystemK LED interface
  • Phase 4 — Audio (I2S_Audio), IR, and NVM/Settings components migrated to new interfaces

ESP-IDF v6.0.0 Migration

  • Updated MuxedLedStrip (vendored espressif/led_strip) to v3.0.3 for ESP-IDF v6.0 compatibility
  • Updated IR component CMakeLists.txt for v6.0 build system changes
  • Added new direct dependencies: espressif/usb v1.3.0 and espressif/network_provisioning v1.2.2
  • Fixed System_Command.c for ESP-IDF v6.0 / FreeRTOS 11 API changes:
    • uxTaskGetSystemState runtime counter now uses configRUN_TIME_COUNTER_TYPE
    • Replaced deprecated esp_read_mac with esp_base_mac_addr_get
    • Fixed esp_partition_iterator_release null-guard
  • Fixed Serial_Console component to derive firmware version string from CMake (PROJECT_VER) rather than a main/ header, removing a cross-component include coupling

Build System

  • PROJECT_VER in CMakeLists.txt is now derived directly from VERSION_MAJOR/VERSION_MINOR in main/Version.h, making Version.h the single source of truth for the version number

Other

  • Improved USB error diagnostics in NVM/USB.c
  • Updated README.md open-source component versions table to reflect current dependencies
  • Bumped firmware to Version 2.00

Test Plan

  • Clean build with ESP-IDF v6.0.0 passes without warnings
    ℹ️ There is one warning in the build. It can be safely ignored.
    [295/1367] Building C object esp-idf/vfs/CMakeFiles/__idf_vfs.dir/vfs.c.obj .../.espressif/v6.0/esp-idf/components/vfs/vfs.c:31:9: warning: 'LOG_LOCAL_LEVEL' redefined 31 | #define LOG_LOCAL_LEVEL ESP_LOG_NONE | ^~~~~~~~~~~~~~~ <command-line>: note: this is the location of the previous definition
  • system version serial console command reports correct firmware version
  • system tasks command works with runtime stats enabled
  • system mac command prints all four MAC addresses correctly
  • system partition command lists partition table without crash
  • BLE provisioning works with new SystemK interface
  • IR transmit/receive works
  • Audio playback works
  • NeoPixels function correctly
  • NVM settings persist across reboots
  • USB host MSC mounts and logs diagnostics on failure
## Summary This branch updates the 2024A firmware to [**SystemK v2.00**](https://git.ktag.clubk.club/Software/SystemK/pulls/15) and migrates to [**ESP-IDF v6.0.0**](https://docs.espressif.com/projects/esp-idf/en/v6.0/esp32s3/migration-guides/release-6.x/6.0/index.html). ### SystemK v2.00 Interface Updates Updated all components to use the new SystemK v2.00 API across four phases: - **Phase 1** — BLE and NVM/Settings components; removed now-unnecessary boilerplate from `main.c` - **Phase 2** — Further BLE and Settings interface alignment - **Phase 3** — NeoPixel (`HW_NeoPixels`) driver simplified using new SystemK LED interface - **Phase 4** — Audio (`I2S_Audio`), IR, and NVM/Settings components migrated to new interfaces ### ESP-IDF v6.0.0 Migration - Updated `MuxedLedStrip` (vendored `espressif/led_strip`) to v3.0.3 for ESP-IDF v6.0 compatibility - Updated IR component `CMakeLists.txt` for v6.0 build system changes - Added new direct dependencies: `espressif/usb` v1.3.0 and `espressif/network_provisioning` v1.2.2 - Fixed `System_Command.c` for ESP-IDF v6.0 / FreeRTOS 11 API changes: - `uxTaskGetSystemState` runtime counter now uses `configRUN_TIME_COUNTER_TYPE` - Replaced deprecated `esp_read_mac` with `esp_base_mac_addr_get` - Fixed `esp_partition_iterator_release` null-guard - Fixed `Serial_Console` component to derive firmware version string from CMake (`PROJECT_VER`) rather than a `main/` header, removing a cross-component include coupling ### Build System - `PROJECT_VER` in `CMakeLists.txt` is now derived directly from `VERSION_MAJOR`/`VERSION_MINOR` in `main/Version.h`, making `Version.h` the single source of truth for the version number ### Other - Improved USB error diagnostics in `NVM/USB.c` - Updated `README.md` open-source component versions table to reflect current dependencies - Bumped firmware to **Version 2.00** ## Test Plan - [x] Clean build with ESP-IDF v6.0.0 passes without warnings ℹ️ There is one warning in the build. It can be safely ignored. ` [295/1367] Building C object esp-idf/vfs/CMakeFiles/__idf_vfs.dir/vfs.c.obj .../.espressif/v6.0/esp-idf/components/vfs/vfs.c:31:9: warning: 'LOG_LOCAL_LEVEL' redefined 31 | #define LOG_LOCAL_LEVEL ESP_LOG_NONE | ^~~~~~~~~~~~~~~ <command-line>: note: this is the location of the previous definition ` - [x] `system version` serial console command reports correct firmware version - [x] `system tasks` command works with runtime stats enabled - [x] `system mac` command prints all four MAC addresses correctly - [x] `system partition` command lists partition table without crash - [x] BLE provisioning works with new SystemK interface - [x] IR transmit/receive works - [x] Audio playback works - [x] NeoPixels function correctly - [x] NVM settings persist across reboots - [x] USB host MSC mounts and logs diagnostics on failure
Joe changed title from SystemK v2.00: Interface Improvements to v2.00: SystemK v2.00, ESP-IDF v6.0.0 2026-03-28 20:06:58 +00:00
Joe merged commit f4c6ad53d4 into main 2026-03-28 21:33:54 +00:00
Joe deleted branch SystemK_interface_improvements 2026-03-28 21:33:55 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Software/2024A-SW!18
No description provided.