Skip to content

XMC-for-Arduino 4.0.0

Choose a tag to compare

@github-actions github-actions released this 15 Jan 16:18
· 6 commits to master since this release

This is a major release with significant changes including migration to the new Arduino Core API, board naming convention updates, and the removal of legacy boards.


⚠️ Breaking Changes

Arduino Core API Migration

  • Migrated to the new Arduino Core API: The entire core has been refactored to use the official ArduinoCore-API. This brings better compatibility across different Arduino cores and with modern Arduino libraries but may require code adjustments for existing projects.

Board and Vendor Naming Convention Changes

  • Index file renamed from package_infineon_index.json to package_xmc_index.json, please update the URL in the Arduino preferences, instructions here.
  • Vendor name changed from Infineon to infineon (lowercase) in package and platform files to be consistent with naming conventions across our Arduino cores and to avoid issues with Windows-based systems (case insensitivity).
  • Board names have been standardized to follow the official kit naming convention:
    • XMC1100_Boot_KitKIT_XMC11_BOOT_001
    • XMC1100_XMC2GOKIT_XMC_2GO_XMC1100_V1
    • XMC1300_Boot_KitKIT_XMC13_BOOT_001
    • XMC1400_Kit_for_ArduinoKIT_XMC1400_ARDUINO
    • XMC1400_XMC2GOKIT_XMC14_2GO
    • XMC4700_Relax_KitKIT_XMC47_RELAX
  • Old board variant macros are preserved for backwards compatibility via build.board_variant_old in boards.txt.

Wire/I2C Library Changes

  • The Wire library has been completely refactored to inherit from HardwareI2C.
  • Ring buffer implementation added for I2C communication.
  • Error handling has been improved with proper return codes.

SPI Library Changes

  • SPI library refactored with updated transfer function logic.
  • Changes to SPI pin configurations across all variants.

🗑️ Removed Boards

The following boards have been removed from V4.0.0 and are only supported up to V3.x:

Board Product Link
KIT_XMC_PLT2GO_XMC4200 Product Page
KIT_XMC_PLT2GO_XMC4400 Product Page

✨ Added Features

Core Functions

  • setAnalogWriteFrequency() function: New function to configure PWM frequency dynamically.
  • random() implementation: Added proper random number generation implementation.
  • pulseIn() improvements: Updated pulse measurement implementation using millis().
  • shiftIn()/shiftOut() implementation: Added shift register functions.
  • sbrk() function declaration: Added for proper memory allocation support.

Debugging

  • Cortex Debugger Integration: Added support for Cortex debugging with automatic launch.json generation.
  • Generic gen_launch.sh script: Tool to configure build ELF and JSON paths for debugging.

Tone Function

  • Reworked Tone implementation with proper CCU timer handling.
  • Support for multiple tone pins (configurable via NUM_TONE_PINS).
  • Frequency range: 1 Hz to 500 Hz (software-derived from Systick).

Testing Infrastructure

  • Added comprehensive Hardware-in-the-Loop (HIL) test integration.
  • Arduino Core Tests added as submodule for standardized testing.
  • Unity test framework integration for all boards.

🗑️ Removed Features

  • OneWire library removed from built-in libraries: Now available as external submodule.
  • XMC1100 H-Bridge 2GO support removed from documentation.

🐛 Bugfixes

  • I2C scan bug fixed: Corrected issue in Wire library affecting device scanning.
  • Digital I/O fixes: Removed invalid pin condition checks, added flag for current pin status.
  • Tone function noTone() fix: Corrected the noTone function implementation.
  • Platform.txt typo fix: Fixed critical typo/bug in platform configuration.
  • XMC1400 Arduino pinout fixes: Updated pin configurations for correct operation.
  • Higher frequency PWM fix for XMC1400: Resolved issue with PWM at higher frequencies.
  • Interrupt handler fixes: Corrected interrupt code for invalid pin/mode handling.
  • Fixed incompatibility with arm_math.h: Modified analog macros to avoid naming conflict.

🔧 Improvements

Documentation

  • Added installation reference documentation.
  • Updated Arduino deviations documentation with Tone frequency details.
  • Added known issues documentation for XMC1300 Boot Kit.
  • Improved documentation for analog macros and built-in libraries.

Flasher Tool

  • Updated xmc-flasher.py with improved firmware flag handling.
  • Added custom flag to disable J-Link auto-update.
  • Better logging and error messages.

DevOps & CI/CD

  • Migrated to reusable GitHub workflows.
  • Added compile checks for all library examples.
  • Pre-commit hooks enabled for code quality.
  • Added CODEOWNERS file for better code review management.

Pin Configurations

  • Updated XMC1400 Arduino pinout diagram.
  • Improved pin configurations for all supported boards.
  • Added CCU8V3 macro support for XMC1400 variants.

📦 Supported Boards in V4.0.0

Board Name Description
KIT_XMC11_BOOT_001 XMC1100 Boot Kit
KIT_XMC_2GO_XMC1100_V1 XMC1100 2Go Kit
KIT_XMC13_BOOT_001 XMC1300 Boot Kit
KIT_XMC1400_ARDUINO XMC1400 Kit for Arduino
KIT_XMC14_2GO XMC1400 2Go Kit
KIT_XMC47_RELAX XMC4700 Relax Kit

Contributors


Full Changelog: V3.5.2...4.0.0