Migrate from nRF52832 to nRF52833

Hello, we currently use nRF52832 in our product. For the next generation of this product, we are hoping to upgrade to a new module that uses nRF52833. However, this is only practical if we can use our existing codebase without significant modification.

We use nRF52 SDK v15.3.0 and S132 SoftDevice v6.1.1.

What modifications to our code might be required, if any?

Parents
  • Hi,

    To switch between nRF52832 and nRF52833, you need to rebuild the application for the correct chip variant, and switch to a compatible SoftDevice version.

    Support for nRF52833 was first introduced in nRF5 SDK v16.0.0, as you can see from the nRF52833 SDKs and SoftDevices compatibility matrix. Additionally, S132 softdevice is not supported/qualified for use with nRF52833, you will need to switch to S140 or S113 softdevice variants.

    You can have a look at the Migration guide for nRF5 SDK v16.0.0 to see if the workload is something you can overcome, but it will definitely require some work to switch between these two chip variants.

    Best regards,
    Jørgen

  • Thank you for pointing me in the right direction. This documentation is excellent.

    If I understand the compatibility chart correctly, nRF52840 has the same requirements, correct?

    I am currently reviewing the specifications for S140 and S113. The main difference that sticks out to me is that S140 supports more concurrent BLE roles. Is there any documentation that highlights the difference between the two? Do you have a basic summary?

  • Sorry, I see now that S113 cannot be a central, so I would need to use S140. Can you clarify if any additional work (other than the changes specified in the Migration Guide) is needed to switch softdevices?

  • mikefraguglia said:
    I see now that S113 cannot be a central, so I would need to use S140.

    Correct, S113 is peripheral only, S122 is central only, and S140 supports both peripheral and central.

    mikefraguglia said:
    If I understand the compatibility chart correctly, nRF52840 has the same requirements, correct?

    Correct, nRF52840 also only works with S113 and S140 Softdevices.

    mikefraguglia said:
    Can you clarify if any additional work (other than the changes specified in the Migration Guide) is needed to switch softdevices?

    S140 should be a superset of S132, so I would expect most of the APIs to be identical. However, there might be some API changes since you need to go from v6.1.1 to v7.0.0 or above. There is a migration document for the Softdevices in the Softdevice download. S140 supports the full feature set available in nRF52833/nRF52840 radios (increased TX output power, BT long range, etc) while S113 is a memory optimized version with limited feature set intended for simpler peripheral-only devices.

    Apart from this, it should be sufficient to change some preprocessor defines (NRF52 and NRF52832_XXAA to NRF52833_XXAA, S132 to S140, etc), change the memory regions to match the flash and RAM sizes of the new chip variant, and replace system/startup files from the MDK to the correct chip variant.

Reply
  • mikefraguglia said:
    I see now that S113 cannot be a central, so I would need to use S140.

    Correct, S113 is peripheral only, S122 is central only, and S140 supports both peripheral and central.

    mikefraguglia said:
    If I understand the compatibility chart correctly, nRF52840 has the same requirements, correct?

    Correct, nRF52840 also only works with S113 and S140 Softdevices.

    mikefraguglia said:
    Can you clarify if any additional work (other than the changes specified in the Migration Guide) is needed to switch softdevices?

    S140 should be a superset of S132, so I would expect most of the APIs to be identical. However, there might be some API changes since you need to go from v6.1.1 to v7.0.0 or above. There is a migration document for the Softdevices in the Softdevice download. S140 supports the full feature set available in nRF52833/nRF52840 radios (increased TX output power, BT long range, etc) while S113 is a memory optimized version with limited feature set intended for simpler peripheral-only devices.

    Apart from this, it should be sufficient to change some preprocessor defines (NRF52 and NRF52832_XXAA to NRF52833_XXAA, S132 to S140, etc), change the memory regions to match the flash and RAM sizes of the new chip variant, and replace system/startup files from the MDK to the correct chip variant.

Children
No Data
Related