Nordic Semiconductor nRF5 AirFuel SDK  version 2.2.0
Change description

File Changes 2.1.0 -> 2.2.0

This page describes the changes made in each source file compared to the previous SDK release (2.1.0). It is recommended that this page is read while viewing the diff between the source folders of these two releases.

The major difference between these two versions is that the PTU now has support for distant list handling and variable I_TX_COIL adjustment step size.

source/wpt/ptu/ptu.c

  • As distant list is now used, the PTU will scan continuously, hence 'ptu_cm_scan_enable' is called when entering POWER_SAVE state.

source/wpt/ptu/ptu_beacons.c

  • Instead of enabling/disabling scanning when entering/exiting Long Beacon state, this module will now notify the distant list handler module about the beacon state update.

source/wpt/ptu/ptu_conn_man.c

  • Renamed "m_on_adv_report" to "m_on_wpt_adv_report" to clearly show that it should only be invoked on valid WPT advertisements.
  • If "PTU_DISTANT_LIST_IGNORE" is NOT defined, all WPT ADV reports are forwarded to the distant list handler.
  • Before handling a WPT ADV report, the distant list handler is invoked to check if address of the device that issued is to be ignored.

source/wpt/ptu/ptu_power_ctl.c

  • Added support for variable step size of adjusting I_TX_COIL.

source/wpt/ptu/ptu_power_sharing.c

  • Fixed bug where use of 'ceil' function when calculating potential increase in power usage could result in PRU not getting correct power adjustment.

File Changes 2.0.0 -> 2.1.0

This page describes the changes made in each source file compared to the previous SDK release (2.0.0). It is recommended that this page is read while viewing the diff between the source folders of these two releases.

The major difference between these two versions is that the S110 and S120 has been replaced with the S130, bugfixes in the PTU, and support for nRF52 in more projects.

source/beacon/advertiser_beacon.c (previously advertiser_beacon_timeslot.c)

As the S130 supports Central and Peripheral role concurrently, the advertiser beacon is now implemented using standard SoftDevice BLE extension istead of the timeslot API.

source/wpt/common/hal/common_hal_buttons.c

  • Modified to support new SoftDevice.

source/wpt/common/common.c

  • Modified to support new SoftDevice.

source/wpt/pru/pru.c

  • Removed check for NRF51 as both versions (NRF51 and NRF52) now uses same SDK.

source/wpt/pru/pru_debug.c

  • Modified to support new SoftDevice.

source/wpt/ptu/ptu_beacons.c

  • PTU will now stop Long Beacon Extension load variation timer when not in Power Save state.

source/wpt/ptu/ptu_conn_man.c

  • PTU will trigger 'ALL_DEVICES_DISCONNECTED' signal when registration timeout occurs, and there are no active connections.
  • When PRUs are set to state 'FULLY_ACCEPTED' a timer is started to revoke this acceptance. This is done to mitigate cross connection issues. Note that this functionality can be disabled by removing the 'PTU_REVOKE_ACCEPTED_STATE' define. By default, the revocation timer is set to 3 long beacon durations to allow the PRU to connect successfully before it is revoked. When the PTU is in Power Save state, the timer is extended by 3 long beacon periods.
  • Modified to support new SoftDevice.
  • When performing a reconnection, the PTU will now inspect the content of the ADV packet before performing the re-connection. This was done to avoid issues where multi profile devices (E.G. Heart Rate Belt and PRU) would change profile but not address.

source/wpt/ptu/ptu_debug.c

  • Long Beacon Extension status is now printed.

source/wpt/ptu/ptu_power_sharing.c

  • Modified to support new SoftDevice.
  • When sending PRU control packet, the PTU now checks to see if the PRU supports Time Set before setting the Time Set Field to a non-zero value.

File Changes 1.6.2 -> 2.0.0

The name of the SDK has been changed from 'nRF51 A4WP SDK' to 'nRF5 AirFuel SDK' There is no backwards compatibility between version nRF5 AirFuel SDK 2.0.0 and nRF51 A4WP SDK 1.6.2 of the.

Profile Level API

The biggest change from version 1.6.2 to version 2.0.0 is the Profile Level API. This change is enables multi profile applications. The functionality controlling the SoftDevice has been re-located from the PRU/PTU profiles and into the application code to allow multiple profiles to use the SoftDevice. An application can now freely re-initialize the SoftDevice and/or redirect incoming events to one or more profile implementations.

State Machines

The state machine functionality has been re-designed for version 2.0.0. The mapping of functionality from the A4WP specification (BSS) to the implementation has been simplified. For example, in version 2.0.0 all signals given to the state machine have a direct mapping to the signals described in the BSS. Also, all state transitions are equivalent to the state transition tables found in the BSS.

In AirFuel SDK version 1.6.2, the WPT profile was a sub-component in the PRU/PTU state machines. In version 2.0.0 the state machines are sub-components of the WPT profile. This simplifies verification of the state transitions to ease development and debug. The state machine in v1.6.2 was distributed across several program files: one for each state plus one for the state machine functionality. The entire state machine is now implemented within one program file for version 2.0.0.

Profile API simplification

Re-design of the WPT profile has allowed many exposed API calls to be removed between version 1.6.2 and version 2.0.0. As a result, the number of API calls exposed by "pru.h" and "ptu.h" has been reduced from 10 and 20 respectively, to 3 in each. This simplifies the addition of wireless charging support to existing products implementing a user application with Bluetooth(TM) Smart.

General

  • For the PTU, some functionality has been extracted into separate source files. This has been done with latching fault, power sharing and beacon functionality.
  • Going from version 1.6.2 to 2.0.0 will reduce code size by an average of 12%.