The S132 v5.1.0 is now production tested on nRF52810

This blog describes how you can setup a Segger Embedded Studio example for PCA10040E (emulating nRF52810) from nRF5 SDK 14.2 to use S132 v5.1.0, instead of S112. The procedure should be similar for the other toolchains.

nRF5 SDK 14.2 officially supports S132 v5.0.0, but since it is drop-in compatible, you can use S132 v5.1.0 instead of S132 v5.0.0 for nRF5 SDK 14.2. Simply flash s132_nrf52_5.1.0_softdevice.hex instead of s132_nrf52_5.0.0_softdevice.hex. s132_nrf52_5.1.0_softdevice.hex can be downloaded here.

The ble_app_uart_pca10040e_s112 example will be used as a starting point. This is chosen because it is one of the smaller Bluetooth Low Energy examples, the larger ones may not fit in the nRF52810 flash.

  1. Open \examples\ble_peripheral\ble_app_uart\pca10040e\s112\ses\ble_app_uart_pca10040e_s112.emProject
  2. Change the SoftDevice to be flashed together with the application from s112_nrf52810_5.1.0_softdevice.hex to s132_nrf52_5.1.0_softdevice.hex (you must download this). Under Project Items, right click on Project ‘ble_app_uart_pca10040e_s112’ and click Edit Options. Click on Loader under Debug and change the file pointed to after Additional Load File[0].
  3. Change the Flash start address and size to 0x23000 and 0xD000 (0x23000 is the size of the S132 v5.1.0 SoftDevice, the total flash size is 0x30000, so you are left with 0xD000). Under Project Items, right click on Project ‘ble_app_uart_pca10040e_s112’ and click Edit Options. Select Common in the top left corner. Click Linker. On Section Placement Macros set FLASH_START=0x23000 and FLASH_SIZE=D000.
  4. Change S112 to S132 in preprocessor symbols. Under Project Items, right click on Project ‘ble_app_uart_pca10040e_s112’ and click Edit Options. Select Common in the top left corner. Click Preprocessor. On Preprocessor Definitions change S112 to S132.
  5. Include the S132 headers. Under Project Items, right click on Project ‘ble_app_uart_pca10040e_s112’ and click Edit Options. Select Common in the top left corner. Click Preprocessor. On User Include Directories change:
    1. ../../../../../../components/softdevice/s112/headers to ../../../../../../components/softdevice/s132/headers
    2. ../../../../../../components/softdevice/s112/headers/nrf52 to ../../../../../../components/softdevice/s132/headers/nrf52
  6. Set the correct RAM start address and size. Compile the project and go into debug. Run. The debug terminal should say that the RAM start address can be set to 0x200025D0 and the size can be set to 0xDA30. 0xDA30 is not correct (its for the nRF52832), it should be 0x3A30. Under Project Items, right click on Project ‘ble_app_uart_pca10040e_s112’ and click Edit Options. Select Common in the top left corner. Click Linker. On Section Placement Macros set RAM_START=0x200025D0 and RAM_SIZE=3A30.
  7. Compile the project and go into debug. Run. The debug terminal should say <info> app: UART Start! and everything should work.

If you get into trouble, please post a question in the Q&A section and link to this blog.

For more information on developing on nRF52810, see this.

Parents
  • After following your every step correctly.. I managed to run the UART Example few times .. edited / added some code ...


    It started throwing error.




    0> <warning> nrf_sdh_ble: RAM starts at 0x200025D0, can be adjusted to 0x200027D8.
    0> <warning> nrf_sdh_ble: RAM size can be adjusted to 0x3828.
    0> <error> nrf_sdh_ble: sd_ble_enable() returned NRF_ERROR_NO_MEM.
    0> <error> app: Fatal error

    I tried editing ram address etc.. it didnt solve the problem....


    I am totally exhausted in just doing very simple thing : Maximum Speed on nRF52810 around 1000 Kbps... And let me tell you what I have gone through..


    1. S112 : This softdevice doesnt support speed more than 330 Kbps. This I came to know after I tried doing everything.....
    2. S132: Now this more bigger problem .. Not even single example is available for nRF52810 running S132 v5.1.0 ...and  I have to use SDK 14.2 ...  why in SDK 15 there is no support for maximum speed for nRF52810...... JUST NONSENSE..........
    Somehow I find your post and still nothing changed... 

    And the same thing I did on nRF52832 in an hour. WHAT VERY LESS SUPPORT FOR nRF52810 ???????????
    Why IT IS VERY EASILY TO DO THE SAME THING ON nRF52832 .......

    I just dont understand ?????

Comment
  • After following your every step correctly.. I managed to run the UART Example few times .. edited / added some code ...


    It started throwing error.




    0> <warning> nrf_sdh_ble: RAM starts at 0x200025D0, can be adjusted to 0x200027D8.
    0> <warning> nrf_sdh_ble: RAM size can be adjusted to 0x3828.
    0> <error> nrf_sdh_ble: sd_ble_enable() returned NRF_ERROR_NO_MEM.
    0> <error> app: Fatal error

    I tried editing ram address etc.. it didnt solve the problem....


    I am totally exhausted in just doing very simple thing : Maximum Speed on nRF52810 around 1000 Kbps... And let me tell you what I have gone through..


    1. S112 : This softdevice doesnt support speed more than 330 Kbps. This I came to know after I tried doing everything.....
    2. S132: Now this more bigger problem .. Not even single example is available for nRF52810 running S132 v5.1.0 ...and  I have to use SDK 14.2 ...  why in SDK 15 there is no support for maximum speed for nRF52810...... JUST NONSENSE..........
    Somehow I find your post and still nothing changed... 

    And the same thing I did on nRF52832 in an hour. WHAT VERY LESS SUPPORT FOR nRF52810 ???????????
    Why IT IS VERY EASILY TO DO THE SAME THING ON nRF52832 .......

    I just dont understand ?????

Children
No Data