Important
This project is a work in progress. It does not yet cover the full Arduino API or all PSOC™ Edge features.
This repository contains the Zephyr-based Arduino core for:
You can install the core through the Boards Manager in Arduino IDE, or via the Arduino CLI. After installing the core, the loader has to be flashed and your first sketch can be uploaded. Steps are provided for both, Arduino IDE and Arduino CLI.
Use Arduino IDE 2.x and install the platform through Arduino's Boards Manager.
- Open Arduino IDE.
- Navigate to 'File > Preferences'.
- In Additional boards manager URLs, add:
https://github.com/Infineon/ArduinoCore-zephyr/releases/latest/download/package_infineon_pse84_index.json
- Open 'Boards Manager' (left side menu).
- Search for 'PSOC Edge' and install
Infineon PSOC Edge Boards. This may take a moment.
- Select the PSOC™ Edge board and the correct serial port:
Tools > Board > Infineon PSOC Edge Boards > Infineon KIT-PSE84-AI (PSOC Edge E84)andTools > Port. - Flash the loader:
Tools > Burn Bootloader. - Open or write a sketch and click Upload.
Simply use the following command:
arduino-cli core install infineon:zephyr_pse84 --additional-urls https://github.com/Infineon/ArduinoCore-zephyr/releases/latest/download/package_infineon_pse84_index.jsonThe FQBN for the Infineon KIT-PSE84-AI (PSOC Edge E84) is infineon:zephyr_pse84:kit_pse84_ai.
- Flash the loader:
arduino-cli burn-bootloader -b infineon:zephyr_pse84:kit_pse84_ai- Compile and upload a sketch:
arduino-cli compile -b infineon:zephyr_pse84:kit_pse84_ai MySketch
arduino-cli upload -b infineon:zephyr_pse84:kit_pse84_ai -p <port> MySketchFor the exact macro definitions, refer to variants/kit_pse84_ai_pse846gps2dbzc4a_m33/variant.h.
Here is a general explanation:
- Every exposed GPIO pin from the pinout has a macro identical to the documentation name, e.g.
P17_3,P16_0,P15_3, etc. - Digital pins have a macro in the format
Dx, wherexis the index of the arduino pin in the range [0, 47], e.g.D0,D15,D47, etc. - Analog pins have a macro in the format
Ax, wherexis the index of the arduino pin in the range [0, 15], e.g.A0,A1,A15, etc. - Onboard LED pin name macros are:
LED_BUILTIN:P10_7LED_BUILTIN_1:P10_7LED_BUILTIN_2:P10_5LED_BUILTIN_ACTIVE:HIGHLED_RED:P20_6LED_GREEN:P20_4LED_BLUE:P20_5BTN_BUILTIN:P7_0(SW1)
- I2C pins are defined as
SDA/SCLandSDA1/SCL1for the internal (Wire), and external (Wire1) I2C bus respectively. - Expansion header pins include the macros as printed on the board:
SERIAL_INTxwherexis the index in the range [0, 3], e.g.SERIAL_INT0.
Important
Not all Arduino API calls are currently supported. Check the tracking document before relying on a specific API.
Refer to the API coverage tracking document for the implementation status and known limitations of each Arduino API call.
- This is an early PSOC™ Edge port focused on enabling core Arduino workflows on Zephyr.
- API compatibility is incomplete and may change between releases.
- Some subsystems compile but are not yet fully validated on KIT-PSE84-AI.
Feedback and contributions are highly encouraged.
- Report bugs and request features in Issues
- Ask questions and discuss roadmap in Discussions
When reporting issues, please include:
- Board and host OS
- Core version
- Minimal sketch to reproduce
- Full build/upload logs
Contributions are welcome through Pull Requests. Please refer to CONTRIBUTING.md for more information.
If upload succeeds but execution fails with an Undefined symbol error, the sketch is using a symbol not exported by the loader image for this build.
- Rebuild and flash the bootloader for this board.
- If needed, extend exported symbols in loader integration sources and rebuild.
A: This is usually due to a buffer overflow or coding error in the user's own code. However, since the project is still in beta 🧪, a good bug report could help identify any issues in our code.