Skip to content

V1.2

Choose a tag to compare

@vanvught vanvught released this 14 Feb 10:51
· 166 commits to main since this release

Release Notes

General Maintenance & Cleanup

  • Replaced all bare assert(0) usages with assert(false) or assert(false && "") to clearly mark unreachable code paths and improve diagnostics in debug builds.
  • Updated copyright headers across GD32, HAL, pixel DMX, and related files to include 2026.
  • Applied widespread formatting, whitespace, include ordering, and indentation cleanups across the codebase.
  • Minor API tidy-ups and small refactors where behavior is unchanged.
  • Adjusted NDEBUG handling in pixel DMX JSON-related code.
  • Restored or added missing license headers in several JSON parameter files.

These changes are cosmetic, licensing, or diagnostic-only and do not affect runtime behavior.

Art-Net Improvements

  • Refactored Art-Net poll reply handling to simplify flow and improve correctness:
    • ArtNetNode::ProcessPollReply signature simplified by removing explicit input/output port count parameters.
    • Port determination is now fully centralized in SendPollReply.
  • Improved SendPollReply behavior:
    • Early return for disabled ports.
    • Correct handling of NumPortsLo and PortTypes, respecting ARTNET_HAVE_DMXIN.
    • Fixed poll reply counter increment/reset logic.
    • Node report is always created and the UDP packet is always sent when appropriate.
    • state_.is_changed is now cleared consistently after sending.
  • Updated node type naming from “Artnet” to “Art-Net” for consistency.
  • Reformatted DMX node output type name arrays.
  • Minor comment, formatting, and whitespace cleanups across Art-Net sources.

These changes reduce complexity in poll reply handling and make the behavior more predictable and easier to maintain.

GD32 DMA memcpy Improvements

  • Updated copyright headers.
  • Added stricter alignment assertions for the GD32F4 DMA memcpy path.
  • IRQ setup is now conditionally compiled via DMA_MEMCPY32_DISABLE_IRQ.
  • Removed unused includes to reduce noise and potential confusion.

This improves portability, robustness, and configurability of the DMA memcpy implementation.

Pixel DMX & Display Code

  • Added missing debug include in pixeldmxparams.
  • Fixed small formatting and indentation issues.
  • Minor cleanups across display, UDF, global, and pixel DMX sources.

No functional changes intended.

New Utility Scripts

Added several new Python utilities under common/scripts:

  • udp_send.py
    • Reusable UDP send/receive module.
    • Includes a simple CLI for quick testing and scripting.
  • Gd32/do-tftp.py
    • Python-based helper to drive TFTP transfers.
    • Uses udp_send.py alongside the system tftp client.
  • gd32/flash.py
    • GD32 ROM bootloader flasher.
    • Includes a UART monitor for basic interaction/debugging.
  • Updated .gitignore to exclude the GD32 script virtual environment directory.

These scripts are intended as developer utilities and do not affect firmware builds.

Summary

This release focuses on codebase hygiene and maintainability:

  • Clearer assertions and diagnostics
  • Cleaner and simpler Art-Net poll reply logic
  • Improved DMA memcpy robustness on GD32
  • Licensing consistency
  • New developer utility scripts

No behavioral changes are expected outside the Art-Net poll reply refactor and DMA memcpy internal safeguards.