Skip to content

Releases: Infineon/XMC-for-Arduino

XMC-for-Arduino 4.0.0

15 Jan 16:18

Choose a tag to compare

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

XMC-for-Arduino 3.5.5

05 Sep 08:35

Choose a tag to compare

📦 Uncategorized

  • docs/: Add installation reference.
  • Remove poll msg

XMC-for-Arduino 3.5.4

04 Aug 15:02

Choose a tag to compare

📦 Uncategorized

  • cores: Fix Serial.

XMC-for-Arduino 3.5.3

21 Jul 15:38

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: V3.5.2...3.5.3

XMC-for-Arduino V3.5.2

16 Apr 07:38
ff53247

Choose a tag to compare

What's Changed

Full Changelog: V3.5.1...V3.5.2

XMC-for-Arduino V3.5.1

10 Mar 12:18

Choose a tag to compare

What's Changed

Bugfixes

  • SPI: Refactor SD card functionality and change default pins on XMC4700 Relax Kit in #325 by @LinjingZhang

Repository Configuration

  • Added pre-commit formatter hook & commit formatting workflow by @LinjingZhang

Quality Assurance

Details

Full Changelog: V3.5.0...V3.5.1

XMC-for-Arduino V3.6.0-beta

24 Jan 15:45
16a6800

Choose a tag to compare

Pre-release

This is a pre-release, use V3.5.1 for the latest stable version.

Changes:

  • Refactor Serial implementation to use XMC hardware buffer.

XMC-for-Arduino V3.5.0

20 Jan 13:36

Choose a tag to compare

What's Changed

Bugfixes

  • Serial: Add handling of edge case that might lead to Serial getting stuck in spinlock wait by @MaxMax-embedded in #307.
  • Wire: Fix I2C ACK message timout condition to avoid freezing by @Frederik-Wagner in #321.

Repository Configuration

  • Added .gitattributes to ensure proper handling of line endings by .
  • Restructured and extend .gitignore.
  • Added pre-commit workflow & configuration by @LinjingZhang in #311.

libraries/CAN

  • Added configuration for clang-format, clang-tidy and cppcheck.
  • Added & applied configuration for clang-format & clang-tidy.
  • Added misra to enable static code analysis.
  • Fixed definition for CAN message object.

Community

  • Added Code of Conduct by @jaenrig-ifx in #312.
  • Extended Contribution Guidelines.

Quality Assurance

  • Added GitHub Action workflows for Hardware-in-the-loop testing. @OlafFilies
  • Included arduino-core-tests submodule for generic unit tests.
  • Enable tests for CAN, Wire and Serial.

Details

Full Changelog: V3.4.1...V3.5.0

XMC-for-Arduino V3.4.1

24 Sep 15:59
1171ba4

Choose a tag to compare

What's Changed

Full Changelog: V3.4.0...V3.4.1

XMC-for-Arduino V3.4.0

23 Sep 13:25
f5e7ace

Choose a tag to compare

What's Changed

  • Migrate documentation from Wiki to Read The Docs by @ederjc in #304

Full Changelog: V3.3.0...V3.4.0