9 years, 7 months ago.

What phone apps connect to this program

I've imported this program, changed the main loop from

for (;;) {
    ble.waitForEvent();
}

to

// An alternative to the above:
DigitalOut mainloopLED(LED1);
for (;;) {
    mainloopLED = !mainloopLED;
    ble.waitForEvent();
}

The led turns on but I cannot find this beacon with any iPhone apps. I've tried:

The scan returns 0 devices every time. I must be doing something wrong. If anyone has used this successfully would you mind posting a getting started tutorial or giving me a hand?

Question relating to:

/ BLE_iBeacon Featured
Beacon demo for the BLE API using the nRF51822 native mode drivers

1 Answer

9 years, 7 months ago.

Hi Sam!

I tested the example with nRF Beacon, which should be the correct one, but it didn't work. I found one source of error, but didn't have time to fix and test it. So if you can test this I will be very happy if you report the results.

The thing is that the the nRF Beacon app for iOS has a predefined set of UUIDs which you can choose among, but you cannot set them freely. None these matches the one in the BLE_Beacon example, set in the advertiser payload. So the easiest solution should be to modify the UUID in the mbed app to match one of the UUIDs in the phone app.

Hope that helps :)

Accepted Answer

Thanks Eirik! Here is a beacon payload that can replace the payload in this example to work out of the box with the nRF Beacon app on iOS. You'll learn all about The Mona Lisa :P

/*
 * The Beacon payload (encapsulated within the MSD advertising data structure)
 * has the following composition:
 * 128-Bit UUID = E2 0A 39 F4 73 F5 4B C4 A1 2F 17 D1 AD 07 A9 61   // basic demo
 * 128-Bit UUID = 01 12 23 34 45 56 67 78 89 9a ab bc cd de ef f0   // nordic app
 * Major/Minor  = 0000 / 0000
 * Tx Power     = C8
 */
const uint8_t beaconPayload[] = {
    0x4C, 0x00,
    0x02,
    0x15,
    0x01, 0x12, 0x23, 0x34, 0x45, 0x56, 0x67, 0x78, 
    0x89, 0x9a, 0xab, 0xbc, 0xcd, 0xde, 0xef, 0xf0,
    0x00, 0x00,
    0x00, 0x00,
    0xC8
};


Do you know of an app that will just scan and list all beacons that are within range or do beacons not work that way?

posted by Sam Grove 12 Sep 2014

Hi Eirik: I've been trying to get this to work with the Android application as well - it does not seem to work. Is there some modification that has to be done to the android app to look for this particular UUID? Thanks!

posted by Doug Anson 13 Sep 2014

@Sam: To simply scan you would have to use an app like the Master Control Panel, but Nordic only has that for Android and PCs. There should be some free iOS apps that has similar functionality.

@Doug: I don't have an Android phone, so it is hard to say. In general I would advice to make sure the UUID is matching. Also check the values of the major and minor numbers. Those are the two 16-bit values following the UUID.

posted by Eirik Midttun 13 Sep 2014