V2.4
Highlights
- Added device management tools for downloading configuration files and remotely rebooting nodes.
- Introduced RDMnet LLRP-only build mode for GD32 targets.
- Major internal Art-Net and RDM interface refactor for clearer naming and maintainability.
- Improved build system with timestamp support and cleaner version handling.
Tools
- fetch_configs.py
HTTP utility that resolves the device once (avoids repeated mDNS delays) and downloads:
- /json/version
- /json/list
- all configuration files listed in /json/config/directory Files are saved locally as formatted JSON.
- reboot.py
UDP reboot tool that:
- sends list and reboot commands
- waits for the device to return online with a spinner
- supports a --forever mode for continuous reboot cycles.
Art-Net
- Refactored artnet.h with clearer snake_case naming.
- Added support for:
- ArtCommand
- ArtDataRequest
- ArtDataReply
- Improved comments, flags, and port address bounds.
- Internal cleanup while keeping packet layouts compatible.
RDM / RDMnet
- Added LLRP-only mode (NODE_RDMNET_LLRP_ONLY).
- Integrated LLRPDevice with the E1.31 bridge.
- Refactored RDM discovery and state machine implementation.
- Simplified RDM controller inheritance in Art-Net.
- Product category/detail now supplied via build defines.
Build System
- Added Timestamp.mk to provide a compile-time timestamp (TIME_STAMP).
- Removed automatic generation of software_version_id.h.
- Added conditional support for RTL8201F_LED1_LINK_ALL.
- Minor makefile cleanups and conditional source inclusion improvements.
Refactoring and Cleanup
- Moved dmxnode_utils.h to common/utils/utils_port.h.
- Renamed namespace json → common.
- Removed obsolete -fprefetch-loop-arrays pragma.
- Normalized formatting and include order across modules.
- Added detailed documentation for PHY RMII timing adjustments.
Developer note: Some internal identifiers were renamed (particularly in Art-Net structures and utility headers). Code referencing older names may require minor updates.