Release Notes
Highlights
- Improved HTTP server configurability (index-only mode, feature guards, optimization flags)
- Safer formatting utilities (UTC offset handling, snprintf fixes)
- Config + RDM improvements (factory reset support, safer defaults)
- General cleanup, correctness fixes, and modernization
Core Improvements
Safer Formatting & Utilities
- Use full buffer size in snprintf (removed unnecessary truncation)
- Reworked UTC offset formatting:
- Correct handling of zero/negative offsets
- Always emits + for positive offsets
- Introduced:
- format::UtcOffset
- Append2Digits
- Renamed FormatFloat → Float
- Added and improved helper structure
Console & Logging
- Ensured consistent line endings:
- Added trailing \n to console::Error across multiple modules
- Replaced:
- console::Puts(": ") → console::Write(": ", 2)
- Added console::Write declaration
HTTP Server & Content
Content Pipeline Overhaul
- Major rewrite of generate_content.cpp:
- Modular helpers
- Safer file/string handling
- Feature-aware content generation
- Introduced embedded pixel metadata JSON:
- pixeltype.json generated via parse_pixeltype.py
- Compiled into firmware (pixeltype.json.h)
- Added:
- FilesContent::hash (FNV-1a)
- Runtime hash lookup for faster file matching
Feature Guards & Build Flexibility
- Conditional content inclusion:
- Pixel content only when relevant output is enabled
- New build modes:
- CONFIG_HTTP_HTML_INDEX_ONLY → minimal HTTP footprint
- Simplified build flags:
- Removed ENABLE_CONTENT, now driven by ENABLE_HTTPD
HTTPD Optimizations
- Configurable optimization levels:
- CONFIG_HTTPD_OPTIMIZE_O2
- CONFIG_HTTPD_OPTIMIZE_O3
- CONFIG_HTTPD_OPTIMIZE_NONE
- Cleaner handler logic and conditional compilation
Configuration & System
Config Store
- Added:
- ConfigStore::Reset()
- Remote factory reset now:
- Clears config
- Triggers reboot
RDM Support
- Added:
- SetFactoryDefaults() declaration + weak default implementation
- Integrated into responder logic
Memory & Allocator
- Increased default network blocks:
- kBlocks: 8 → 12
- Improved error messages:
- "Full!" → "Allocate:Full!\n"
Networking & Compliance
Hostname Compliance
- Updated to meet RFC 1123
- Replaced _ with - in prefixes
- Added documentation for valid hostname rules
Misc Networking
- Switched include to network_udp
- Cleaned up TCP diagnostics and formatting
Cleanup & Maintenance
- Removed unused RDM-related includes and code
- Eliminated duplicate function calls
- Improved formatting and readability across modules
- Expanded static initializers for clarity
- Added compile-time guards for STORE backends (file/I2C/SPI)