Skip to content

Releases: vanvught/GD32F103RC-DMX512-RDM

V2.4

14 Mar 12:31

Choose a tag to compare

Major Refactor: RDM Discovery & Device API Stabilization

This release introduces a significant refactor of the RDM subsystem, stabilizing the device API and restructuring discovery handling. The changes aim to improve maintainability, consistency across modules, and future extensibility.

RDM Discovery Redesign

  • Introduced new RDM headers:
    • rdm_device_base.h
    • rdm_device_info.h
    • rdm_discovery.h
  • The legacy rdmdiscovery implementation has been refactored and renamed to:
    • rdm_discovery_statemachine
  • Discovery logic and constants were reorganized and namespaced.
    New RDM Device API
  • RDM device access has been migrated to structured types:
    • rdm::device::Base
    • rdm::device::Info
  • Updated all call sites to use the new API.
  • UID, serial number, and label handling now use the new device structures.

Configuration Store Changes
The configuration storage layout has been updated:
Changes

  • Replaced set_list fields with flag-based configuration.
  • Added helper:
    • RdmDeviceCopyArray
  • Corrected array update signatures and sizes.
    Field Updates
  • label → port_name
  • Buffer sizes adjusted to match the new naming.

Build system

  • Removed GCC optimization flag: -fprefetch-loop-arrays

Miscellaneous

  • Updated copyright years → 2026
  • Minor formatting and include cleanups
  • Variable rename:
    • type → kType
  • Simplified Sync() implementation to a one-line function.
  • Reordered RDM conditional logic in:
    • lib-pixeldmx/Rules.mk

V2.3

08 Feb 09:50

Choose a tag to compare

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

03 Jan 12:27

Choose a tag to compare

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

23 Sep 17:08

Choose a tag to compare

  • 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

18 Oct 13:29

Choose a tag to compare

  • 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.

V1.6

19 Mar 14:55

Choose a tag to compare

V1.5

17 Dec 14:49

Choose a tag to compare

  • Renamed lib-spiflashstore to lib-configstore
  • Removed lib-spiflash
  • Added lib-flashcode

V1.4

11 Oct 08:54

Choose a tag to compare

Sync with https://github.com/vanvught/GD32F407RE-DMX512-RDM

V1.3

19 Mar 17:13

Choose a tag to compare

Sync with https://github.com/vanvught/GD32F407RE-DMX512-RDM

V1.2

25 Feb 14:27

Choose a tag to compare

*. Fixed GPIO conflict in class PixelDmxStartStop
*. Implemented https://github.com/vanvught/rpidmx512/issues/232
*. Code clean-up.
*. Removed not used source files.