# Release Notes for RFAL software Library

Copyright © 2022 STMicroelectronics

# Purpose

The RFAL Library (RF Abstraction Layer) provides several functionalities required to perform RF/NFC communications.The RFAL encapsulates the different RF ICs (ST25R3911, ST25R3916, ST25R200, ST25R500, ST25R95 and future ST25R devices) into a common and easy to use interface.

The technologies currently supported by RFAL are:

- NFC-A \ ISO14443A (T1T, T2T, T4TA)
- NFC-B \ ISO14443B (T4TB)
- NFC-F \ FeliCa (T3T)
- NFC-V \ ISO15693 (T5T)
- P2P \ ISO18092 (NFCIP1, Passive-Active P2P)
- ST25TB (ISO14443-2 Type B with Proprietary Protocol)
- PicoPass \ iClass
- B' \ Calypso
- CTS \ CTM

The protocols provided by RFAL are:

- ISO-DEP (ISO14443-4)
- NFC-DEP (ISO18092)

# Update History

V4.0.2 / 02-April-2025

## Main Changes

- Fixed vulnerability during EMD handling on fast systems, introduced at v4.0.0 targeted for high latency systems

V4.0.0 / 17-March-2025

## Main Changes

- ST25R500/ST25R300 support added
- ISO-DEP improved. Fixed SFGI usage in Listen mode, ISO-DEP FSD check in Reader mode
- Improved robustness for EMD handling on high latency systems
- Improve portability using uintptr_t (C99)
- Added support for Direct Command chaining
- Several improvements on Card Detection and Heartbeat
- DPO module extended. Configurable measurement and adjust methods, interfaces and new adjustment flag added.
- DPO CR (Current Regulation) added (ST25R500 only)
- Added Dynamic LMA module. Optional LMA adjustments can be used in Listen/CE mode
- Several new APIs added in rfalChip section for more measurments and adjustments
- New RFAL_CMATH switch added to enable the usage of C mathematical operations - previously RFAL_ACCURATE_RSSI
- Removed obsolete compile switches
- New timer API to retrieve remaining time
- Several driver improvements and fixes

V3.0.1 / 12-September-2024

## Main Changes

- Fixed condition that prevents usage of WU default parameters on ST25R3916 (not ST25R3916B) if AAT enabled

V3.0.0 / 10-June-2024

## Main Changes

- ST25R200/ST25R100 support added
- Changed rfalDeinitialize procedure to ensure ST25R is set in PD mode
- Added new interface to check whether Wake-up mode is enabled
- Extended NFC/HL to allow to configure whether to poll ahead of going to wake-up mode
- Improved ISO-DEP buffer handling during Listen mode activation
- Improved RFAL NFC/HL layer handling during discovery, particularly for AP2P
- DPO extended to allow adjustment without a communication mode previously set
- Updated ST25R3916 to ensure MOSI state during read operation
- Extended MISRA C / CERT C coverage to DPO and CD modules
- Introduced WLC WPT API declarations
- Several driver improvements and fixes

V2.10.0 / 16-February-2024

## Main Changes

- Feature switches no longer disabled by omission. User configs at rfal_platform.h or by default by rfal_defConfig.h
- Ensure ST25R3916B AWS is disabled during regulator adjustment
- Extended WU mode to allow the reference measurement to be obtained from WU/PD mode (ST25R3911 and ST25R3916)
- Extended NFC/HL to allow to configure whether to poll ahead of going to wake-up mode
- Changed NFC/HL to only initialize Analog Configuration if not yet performed
- Added new interface to check if Wake-up mode is enabled
- Extended LED support for debug purposes
- ISO-DEP extended to ensure NFC-B TR2 / FDT Poll
- Updated DID handling in ISO-DEP
- Added Listen mode modulation Get and Set interfaces
- Introduced Listen mode External Field On callback
- ST25TB UID integrity checked during Pcall16 anticollision
- Several driver improvements and fixes

V2.8.0 / 14-December-2022

## Main Changes

- Incorporated RFAL dependecies (utils, errno) into library to make library more self-contained
- Prepended RFAL prefix into user configuration file platform.h --> rfal_platform.h (breaks compatibility with previous versions, see example in rfal.chm))
- Introduced default configuration rfal_defConfig.h
- Improved ISO-DEP Deselect sequence
- Changed the RFAL NFC/HL layer to make use of non blocking ISO-DEP Deselect procedure
- Several improvements and fixes on RFAL NFC/HL layer, including deactivation procedure and compliance mode used for ISO-DEP
- Extended ISO15693 anticollsion APIs to allow larger receptions
- Improved library error checking and portability
- New APIs introduced in rfalChip interface
- Extended rfalLowPowerModeStart to receive a mode to be set
- Added RFAL Card Detection/Protection module
- Several driver improvements and fixes

V2.6.0 / 19-January-2022

## Main Changes

- Introduced support for ST25R3916B
- Extended NFC technology modules with non-blocking APIs for card activation (Technology detection, Collision Resolution and Activation)
- Extended NFC/HL module with option to bail out, deactivation types, and usage of new non-blocking APIs
- Added new transceive flag for CRC check on Rx
- Better aligned NFC-V special frame timings to NFC Forum Digital
- Further improved compliance to CERT C
- Corrected PAD length in SENSF_RES
- Modified Field Detector to manual setting for RF Collision avoidance / Field On (ST25R3916) due to high temperature limitation
- Changed default Field On mechanism from RF Collision avoidance to transmitter enable (ST25R3911) due to high temperature limitation
- Several driver improvements and fixes

V2.4.0 / 14-June-2021

## Main Changes

- Aligned to NFC Forum CR12
- EMD error handling simplified/renamed
- SW license disclaimer updated
- Added ST25R device selection check
- Improved SPI initialization sequence
- Modified certain chip specific features/definitions
- Added API for retrieving Wake-up status
- Extended available parameters on NFC/HL module
- Introduced support for proprietary NFC technology on NFC/HL module
- Introduced Transceive start synchronization callback
- Extended support for non-blocking activation
- Extended ST25R3916 SW Tag Detection with fractional delta option
- Improved compliance to CERT C
- Added handling for ST25R3916 PPON2 timer limitation
- Several driver improvements and fixes

V2.2.0 / 22-May-2020

## Main Changes

- Better alignment to NFC Forum latest requirements (CR12)
- Extended NFC-V module with non-addressed mode support and improved aticollision
- Feature Switches changed to be not mandatory. Modules disabled by default
- Aligned APIs on platform.h (breaks compatibility with previous versions, see example in rfal.chm)
- Added API for release/deletion of timers
- ST25R3916 default analog table modified to X-NUCLEO-NFC12A1 board
- Improved AP2P operation
- Fixed issues introduced on previous release linked to SFGT and anticollision retries
- Introduced Low-Power mode
- Several driver improvements

V2.1.2 / 27-January-2020

## Main Changes

- Extended ISO-DEP and NFC-A module to support non-blocking activation interfaces
- Extended NFC/HL module to make use of the new APIs further splitting the execution of the worker during the different activities
- Modified NFC-A anticollision to strictly comply to NFC Forum DP. A separate proprietary method is now available.
- NFC-V changed to use OOK (100% AM) by default
- Fixed FWT used by NFC-V Sleep
- Fixed NFC-F FDT Poll value
- Fixed incorrect register access on ST25R3911B RFO Get/Set method
- SPI driver modified to clear Rx buffer prior to operation
- Added further code size optimizations based on enabled features
- Updated ST25R3916 driver to DS Rev2
- Updated SW Tag Detection as describded in AN Rev3
- Several driver improvements

V2.1.0 / 30-September-2019

## Main Changes

- Extended RFAL NFC Higher Layer for increased functionality and configurations
- Several improvements on the ISO-DEP protocol layer
- Protocol buffer sizes made fully configurable for increased memory management
- Introduced option for Collision Avoidance with Automatic Gain Control
- Several driver improvements
- ST25R3916 overheat protection disabled
- RF Transceive modified for transmission errors to precede other errors
- Analog Configs extended to support different DPO power levels

V2.0.10 / 25-June-2019

## Main Changes

- Various improvements on RFAL NFC Higher layer
- Added alternative NFC-V anticollision method (non NFC Forum compliant)
- Several minor improvements and fixes

V2.0.6 / 10-April-2019

## Main Changes

- Several NFC-V interoperability improvements
- Extended support for specific features of ST's ISO15693 Tags. New ST25Dx module added
- Interrupt handling changed and further protection added
- RFAL feature switches have been modified and features are now disabled if omitted
- ST25R3916 AAT (Automatic Antenna Tunning) module added
- RFAL NFC Higher layer added
- Several driver improvements

V2.0.4 / 06-February-2019

## Provided with ST25R3916 DISCO v1.0.0 / EMVCo v1.2.0

## Main Changes

- Minor improvements on NFC-F module
- Several improvements on NFC-V module including support for ST proprietary features
- Fixed issue with Delta RWT calculation
- Fixed incorrect usage of NFCB dTbPoll / DdFWT
- Added compile switch for Listen Mode
- Low power Listen Mode support added
- Listen Mode aligned to NFC Forum Digital 2.1
- Added handling for EMVCo 3.0 static FDTListen
- Introduced SW Tag Detection

V2.0.2 / 31-October-2018

## Provided with ST25R3916 DISCO v0.9.4 (binary only)

## Main Changes

- New T4T module added
- Added support for T3T Check and Update commands
- Improved NFC-V module and added Write Multiple Blocks support
- New rfalWorker protection added for improved control in multi-thread environments
- Added support for user defined Analog Config tables
- Several driver improvements and protections added

V2.0.0 / 28-August-2018

## Main Changes

- MISRA C 2012 compliant
- ST25R3916 support added
- ST25R95 support added
- Fix unwanted Field Detector disable when entering Wake-up mode
- Extended Analog Config to have specific events
- Fixed NFC-DEP potential issue if DID used
- Extended NFC-V commands
- T2T module added
- Improved initial Listen mode handling
- Extended Wake-Up mode to support Capacitive measurement

V1.3.6 / 08-May-2018

## Provided with ST25R3911B DISCO v1.2.0

## Main Changes

- Fixed NFC-V Read operation in addressed mode

V1.3.4 / 07-May-2018

## Main Changes

- Fixed NFC-V Read operation in addressed mode

V1.3.2 / 31-January-2018

## Main Changes

- Modified Wake-Up mode interface
- Fixed SFGI calculation in ISO-DEP

V1.3.0 / 22-January-2018

## Main Changes

- Introduced a new IRQ status handling to read the registers only once
- Several changes for supporting Linux platform
- SPI Select/Deselect moved to platform.h
- Aditional protection of the IRQ status reading, new macros available: platformProtectST25R391xIrqStatus / platformUnprotectST25R391xIrqStatus
- Renamed the IRQ Enable/Disable macros to platformProtectST25R391xComm / platformUnprotectST25R391xComm
- Renamed SPI pins from chip specific to ST25R391X
- Introduced a new option ST25R391X_COM_SINGLETXRX which executes SPI in one single exchange (additional buffer required)
- Updated and added errata handlings to latest ST25R3911 Errata version
- Fixed inconsitency on Analog settings for NFC-V
- Fixed issue on NFC-V 1of256 decoding
- Changed the default NFC-A FDT Listen to be more strict
- Added Wake-Up mode support
- Added RFAL version definition

V1.2.0 / 17-August-2017

## Provided with ST25R3911B DISCO v1.1.16

## Main Changes

- Aligned Technology modules to NFC Activity v1.1 and EMVCo v2.6
- Extended NFC-B Collision Resolution allowing user define Slots
- Added feature switches to enable/disable individual modules
- ISO-DEP Interface changes allowing more user configurations and further EMVCo alignment
- Changed ST25TB detection to always perform Anti Collision loop regardeless of the result of the Poll
- Fixed FIFO WL handling
- Modified FDT Poll handling
- Changed rfalCalibrate() to not overwrite dynamic configs
- Added adjustment for TR1PUTMIN

V1.1.0 / 30-June-2017

## Provided with ST25R3911B DISCO v1.1.12

## Main Changes

- EMD supression enabled for ST25R3911B

V1.0.0 / 16-May-2017

## Provided with X-NUCLEO-NFC05A1 v1.0.0

## Main Changes

- Added support for B', CTS and PicoPass/iClass mode
- Several impromvements for NFC-V mode
- Improved error detection during NFC-B collision resolution
- Extended T1T module

V0.9.0 / 02-March-2017

## Provided with ST25R3911B Discovery Kit on Embedded World Conference (binary only)

## Main Changes