Releases: Infineon/XMC-for-Arduino
Releases · Infineon/XMC-for-Arduino
XMC-for-Arduino 4.0.0
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.jsontopackage_xmc_index.json, please update the URL in the Arduino preferences, instructions here. - Vendor name changed from
Infineontoinfineon(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_Kit→KIT_XMC11_BOOT_001XMC1100_XMC2GO→KIT_XMC_2GO_XMC1100_V1XMC1300_Boot_Kit→KIT_XMC13_BOOT_001XMC1400_Kit_for_Arduino→KIT_XMC1400_ARDUINOXMC1400_XMC2GO→KIT_XMC14_2GOXMC4700_Relax_Kit→KIT_XMC47_RELAX
- Old board variant macros are preserved for backwards compatibility via
build.board_variant_oldin 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 usingmillis().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.jsongeneration. - Generic
gen_launch.shscript: 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.pywith 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
XMC-for-Arduino 3.5.4
📦 Uncategorized
- cores: Fix Serial.
- PR: #377
XMC-for-Arduino 3.5.3
What's Changed
- changed Makefile.test, updated submodule for arduino-core-tests by @Frederikwag in #336
- ./gitignore: Fix noise command. by @LinjingZhang in #342
- 3.x/release compile wflow update by @jaenrig-ifx in #344
- New release flow update by @jaenrig-ifx in #349
- Bugfix/fix broken links by @ederjc in #362
- Devops/add link check by @ederjc in #363
- README.md: Add temporary survey link. by @ederjc in #369
- Add poll in build by @jaenrig-ifx in #370
- libraries/CAN/README.md: Revoved deprecated link. by @jaenrig-ifx in #371
New Contributors
- @Frederikwag made their first contribution in #336
Full Changelog: V3.5.2...3.5.3
XMC-for-Arduino V3.5.2
What's Changed
- Add code convention.md by @LinjingZhang in #329
- Add environment setup to development instructions by @LinjingZhang in #330
- OneWire fixes by @OlafFilies in #339
- variants/XMC1400: Add SPI pin definitions. by @ederjc in #341
Full Changelog: V3.5.1...V3.5.2
XMC-for-Arduino V3.5.1
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
- Update compile check workflow in #324 by @LinjingZhang
Details
Full Changelog: V3.5.0...V3.5.1
XMC-for-Arduino V3.6.0-beta
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
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
What's Changed
- Fix: Cannot find JLink device in Linux by @LinjingZhang in #305
Full Changelog: V3.4.0...V3.4.1
XMC-for-Arduino V3.4.0
What's Changed
Full Changelog: V3.3.0...V3.4.0