Releases: vanvught/GD32F303RC-DMX512-RDM
Releases · vanvught/GD32F303RC-DMX512-RDM
V2.3
Release Notes
Maintenance & Code Quality Improvements
This release focuses on internal cleanups, diagnostics improvements, and maintenance updates across the GD32, HAL, and Pixel DMX codebase.
- Replaced bare assert(0) usages with clearer, more expressive assertions (assert(false) or assert(false && "")) to improve diagnostics and explicitly mark unreachable code paths.
- Updated copyright headers across multiple files to include 2026.
- Performed minor whitespace, formatting, indentation, and include-ordering cleanups.
- Adjusted NDEBUG handling in Pixel DMX JSON code.
- Applied small API tidies and refactors (cosmetic only, no behavior changes).
- Restored or added license headers in a small number of JSON parameter files.
- General source maintenance in several DMX, display, UDF, global, and Pixel DMX files.
These changes are non-functional and intended purely for readability, consistency, and maintainability.
New Utility Scripts
Several new helper scripts have been added under common/scripts to support development, testing, and device flashing workflows:
- udp_send.py
A reusable UDP send/receive module with a command-line interface for quick testing and scripting. - gd32/do-tftp.py
A Python helper to drive TFTP transfers, built on top of udp_send and the system tftp client. - gd32/flash.py
A GD32 ROM bootloader flashing tool with an integrated UART monitor for upload and debugging.
Summary
- Improved assert diagnostics and unreachable-code clarity
- License and copyright updates (now through 2026)
- Formatting, whitespace, and include-order cleanups
- New Python utilities for UDP, TFTP, and GD32 flashing
- No functional or protocol-level behavior changes
V2.2
Release Notes – Codebase Refactor & Modularization
- Major project restructuring
- Reorganized libraries and source files into a clearer, more modular directory structure.
- Moved, renamed, or removed numerous files to reduce duplication and improve maintainability.
- Legacy code cleanup
- Removed deprecated and unused code from lib-lightset, lib-network, lib-properties, and older display components.
- Eliminated redundant parameter and platform-specific files no longer in use.
- Centralized common functionality
- Migrated shared network, properties, and parameter code into a unified common directory.
- Added new utility headers and source files for reusable functionality.
- JSON-based configuration support
- Added new JSON configuration and parameter files.
- Introduced JSON helper utilities and parameter classes to standardize configuration handling and prepare for future extensibility.
- DMX, RDM, and pixel refactor
- Refactored DMX, RDM device handling, and pixel-related libraries for clearer structure and better separation of responsibilities.
- Unified RDM device information handling.
- Build system updates
- Updated Makefiles, build scripts, and compile_commands.json to reflect the new project structure.
- Improved GD32 platform support and hardware abstraction organization.
- Network stack reorganization
- Flattened lib-network source layout by moving files from subdirectories into a simpler structure.
- Improved clarity of EMAC and Linux network interface implementations (no functional changes).
- Debug macro consistency
- Replaced DEBUG_ENTRY / DEBUG_EXIT macros with function-style DEBUG_ENTRY() / DEBUG_EXIT() across the codebase for consistency and readability.
- Overall impact
- Significantly improved modularity, readability, and long-term maintainability.
- Laid groundwork for future feature expansion and more robust JSON-based configuration across modules.
V2.1
- Improved startup_gd32fxxx.S
- CMSIS has its own project now
- Upgraded to CMSIS V5.0.5
- Removed lib-debug. Now part of lib-hal
- Updated to latest GD32 Firmware
- Introduced debug software UART0
- Major cleanup lib-configstore
- In order to support Newlib; removed lib-c, lib-c++ and added lib-clib
- In order to support FreeRTOS; Added Software timers in H.A.L. framework.
- Get/Set pixel type by RDM (introduced by @PharosMarcusB)
V2.0
- Improved build system
- Added stack debug framework
- Removed not used source files
- Added support DMX delta output
- Added Manufacturer PIDs (https://www.gd32-dmx.org/rdm.html)
- Added support for void __libc_init_array(void)
- Changed the layout of the config store.
- Before upgrading the firmware it is advised to make a backup of the configuration.
- After the upgrade, then restore the saved configuration.