This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

nRF5 SDK 12.3.0 Eddystone on nRF51822 beacon

Hi,

I've seen that SDK 12.3.0 contains a new version of the application sample using the Eddystone protocol for BLE. I would like to know if this version is compatible with nRF51 chips as it was said in GitHub:

Experimental support for nRF51 is found in nRF5 SDK Version 12.2.0 A future 12.x release will add production quality support for nRF51 for Eddystone.

I tried to program a beacon with nRF51822 chip using the SDK example (nRF5_SDK_12.3.0_d7731ad\examples\ble_peripheral\ble_app_eddystone), but I did not succeed.

GCC (after make flash_softdevice)

nRF5_SDK_12.3.0_d7731ad\examples\ble_peripheral\ble_app_eddystone\pca10028\s130\armgcc>make flash
Flashing: _build/nrf51822_xxab.hex
nrfjprog --program _build/nrf51822_xxab.hex -f nrf51 --sectorerase
Parsing hex file.
ERROR: The file specified is not a valid hex file, has data outside valid areas
ERROR: or does not have data in valid areas.
Makefile:250: recipe for target 'flash' failed
make: *** [flash] Error 52

Keil + nRFgo Studio (after Program SoftDevice)

image description

Could you guys help me identify the cause of the errors above?

Thanks in advance!

Parents
  • When you use nrfjprog to program the chip ("make flash" uses nrfjprog) make sure you use --sectorerase as the parameter, so that nrfjprog will erase the sector before it writes. Like this:

    nrfjprog --program yourprogram.hex --sectorerase
    

    Total Flash/ROM size required is Code + RO + RW , so in your case you need 35408 bytes. You can try to apply optimization and reduce other feature of the application to reduce flash size.

    But my suggestion is to move down to SDK v10 and use S110 which only requries 96kB and the Eddy stone example there only requires 8kB of flash.

    [Update] I just checked and seems that in SDK v12.0 the Eddy stone example S130 also require 8kB flash, I would suggest you to use that SDK.

Reply
  • When you use nrfjprog to program the chip ("make flash" uses nrfjprog) make sure you use --sectorerase as the parameter, so that nrfjprog will erase the sector before it writes. Like this:

    nrfjprog --program yourprogram.hex --sectorerase
    

    Total Flash/ROM size required is Code + RO + RW , so in your case you need 35408 bytes. You can try to apply optimization and reduce other feature of the application to reduce flash size.

    But my suggestion is to move down to SDK v10 and use S110 which only requries 96kB and the Eddy stone example there only requires 8kB of flash.

    [Update] I just checked and seems that in SDK v12.0 the Eddy stone example S130 also require 8kB flash, I would suggest you to use that SDK.

Children
No Data
Related