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

NRF41822 Beacon for EDDYSTONE

I am trying to implement the example-code for the Eddystone example from the infocenter. I'm using the nrf51422 to flash code to the Smart Beacon (PCA20006 with nRF51822) from the SDK 11.0.0. I'm using S130. This example was linked from this conversation, but it is not working. I get a flash error ("Cortex-M0") which states that it cant read memory location 0x20000000 when trying to clear soft RAM BPCloud not start CPU core (ErrorCode: -1). 

I was wondering if it has something to do with ANT stack. Am I right?

Thank you!

Parents
  • Hi,

    Which exact variant of the nRF51822 do you have? The beacon kit (PCA20006) exist in several versions, and some of them only have nRF51822 devices with 16 kB of RAM. This is not enough for the Eddystone example. You can check your variant against the n RF51822 IC revision overview to see if you have one with 32 kB or not.

    I do not think this has anything to do with the stack directly (by the way S130 is a BLE only stack, no ANT).

  • According to NRFgo studio. I programmed softdevice s130 v.2.0.0 on a nRF41522 CEAAE00 (mening it has 16 kB RAM). I managed to  flash the eddystone protocol onto the board, so it contradicts your claim in this.  I don't know if I got lucky, but  I managed to do this on four beacons. All PCA20006 with 256 kB flash and 16 kB RAM. I detected the beacons using NRF connect. The options for target is as follows:

    - IROM1, Start: 0x1B000  Size: 0x25000

    - IRAM1, Start: 0x20001870  Size: 0x2790

  • Ah, yes. The SDK 11 implementation of Eddystone fits on the 16 kB RAM variant. However, you should know that this experimental Eddystone application is very stripped down. I recommend you look at the Eddystone example form SDK 12.3 instead, which is the only full featured (and non-experimental) Eddystone application we provide for the nRF51.

  • Thank you. Can you specify what you mean with "stripped down"? I only need it to send a UUID for a long time (5-6 years). So I have to prolong the advertising interval. I see here that I only can do an advertising intervall for 10 seconds. Is this a protocoll specification?

    I realized that I was better off using the S110 from SDK 10, since I don't need all the features S130 provides. I flashed the experimental code successfully using he following target options:

    - IROM1, Start: 0x18000  Size: 0x28000

    - IRAM1, Start: 0x20002000  Size: 0x2000

    Also, I intend to use my beacons with the 16 kB RAM. Am I still better off using the SDK 10/11 or do you still recomend me switching over to 12.3? 

  • The Eddystone spec has a number of different packet types, as well as support for status and administration for fleets of beacons (TLM) in a secure manner. However, if you only want to transmit the same UID every time, then you can base your code on the Eddystone example in an older SDK. You could even just use the normal beacon example which is essentially a iBeacon and change the format of the advertising packet according to the Eddystone UID spec.

    If you only need this simple case, then it does not really matter which SDK or SoftDevice version you use since all support the functionality you need (as long as it fits with respect to flash and RAM).

Reply
  • The Eddystone spec has a number of different packet types, as well as support for status and administration for fleets of beacons (TLM) in a secure manner. However, if you only want to transmit the same UID every time, then you can base your code on the Eddystone example in an older SDK. You could even just use the normal beacon example which is essentially a iBeacon and change the format of the advertising packet according to the Eddystone UID spec.

    If you only need this simple case, then it does not really matter which SDK or SoftDevice version you use since all support the functionality you need (as long as it fits with respect to flash and RAM).

Children
No Data
Related