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

nRFBeacons does not build

Howdy,

I just got my nRF51822 Bluetooth Smart Beacon Kit. I down loaded "nRF Beacon iOS_1.0.zip" and fixed up the project and targets so that it was using the correct Code Signing profiles.

When I try to build the project in XCode 6.0.1 on an iPhone 5 with iOS 8, I get 6 errors:

            BeaconsViewController.m:96:22: error: multiple methods named 'enable' found with mismatched result, parameter type or attributes
            BeaconsViewController.m:96:22: error: bad receiver type 'BOOL' (aka 'signed char')
            BeaconsViewController.m:381:23: error: multiple methods named 'enable' found with mismatched result, parameter type or attributes
            BeaconsViewController.m:381:23: error: bad receiver type 'BOOL' (aka 'signed char')
            BeaconsViewController.m:467:15: error: multiple methods named 'enable' found with mismatched result, parameter type or attributes
            BeaconsViewController.m:467:15: error: bad receiver type 'BOOL' (aka 'signed char')

After fixing up the code by casting the objects from the array to what I expect to be the Beacons class, for example:

            Beacons *beacon = self.beacons[beaconIndex];

When I build the app and follow the instructions, it never finds the beacon. I am able to follow the Update instructions and re-configure the Beacon -- which means I can find the beacon to reconfigure, but can't find the beacon when in Beacons mode. It keeps telling me Beacon Not Found.

This is a bit disappointing -- was hoping it would work out of the box. Any help will be greatly appreciated.

EDIT: I downloaded the app from the AppStore, and it also does not work.

UPDATE: I am able to get the app to work in an iOS 7 device with no problem. This means that the code and the apps functionality is broken on iOS8, which is seriously problematic.

Cheers, Bryan

  • Apple has added a filter on iOS 8 that filters on the content of the beacon package. So unless the beacon is using the correct packet structure it will not be visible in iOS8.

    The information on the packet structure needed is available from Apple under the MFI and iBeacon licensing. To prevent users outside this licensing to get access to this we have implemented the beacon code to by default not be iBeacon compatible.

  • A few questions:

    1. I searched the entire source code in the project for APP_COMPANY_IDENTIFIER and did not find any to change. I tried adding it to the BeaconsViewController.m and the app still fails to work properly on iOS 8. Does it need to go into another file?

    2. How to I upload the hex file. I am finding it really difficult to navigate the developer site. I have added my keys and product, and downloaded the users guide which I am following. But there is no information on how to upload the hex file to the beacon.

    Any help will be greatly appreciated.

  • 1: The APP_COMPANY_IDENTIFIER is found in the beacon code example for the nRF51822 and not in the BeaconsViewController.m. The BeaconsViewController.m is for iOS device. Please have a look in the beacon code example named "ble_app_beacon_bcs" on line 42.

    2: Press SW1 on the beacon kit as you insert the battery. This should trigger the board to enter DFU (Device Firmware Upgrade) mode and make it connectable. The nRF51822 on the beacon can then receive a new firmware from for example the nRFtool or nRF Master control panel app. Select the device you want to connect to and select the hex file you want to upload to the beacon.

  • If I'm using the nRF Master Control Panel Android app how do I get new firmware onto the iBeacon dev kit? Is it available from within the app? Or, how do I get the new firmware linked above into the app?

    Thanks.

    — EDIT —

    Figured out how to get the .hex file into the app. I'm now stuck with figuring out how to flash the iBeacon with this file.

    1. Is it a bootloader, application, or soft device file?

    2 ) Do I have to rename it to something?

    1. When I hold SW1 down do I have to continually hold it for the duration of the update? It seems to reset itself after a few seconds and the app disconnects from it (if I don't hold the button down).

    — EDIT — Figured it out. But now it doesn't work for Android. :/

  • Q1: It's an application, but you figured this out. Q2: No, no renaming should be needed. Q3: Push the button when you connect power/battery. As you say, it will time out, if it does, just re-enable the bootloader mode when you have the app and file ready.

    Q4: Doesn't work on Android. Yes, the Android app will filter on Nordic company ID. We hope to have a fix to this soon as well so that beacons can be read independently of smart phone platform.

Related