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

Changing Company ID

In some of the Nordic examples I found by viewing the raw advertisements that the company ID is set to Nordic's ID (0x0059). In order to communicate with Apple devices (e.g. iPad) I believe the company ID needs to be changed to Apple's ID (0x004C). Is that correct?

If so, where does it get changed? I have searched all the project files for the HID Keyboard and Beacon examples for "0x59" but it is not in any of the files. Maybe it is in one of the .hex library files?

There was a similar post in Dec 2014 that indicated the change is made in beacon.h. But there is no beacon.h in the current SDK.

  • No - in general if there is manufacturer specific data, which is the only time there would be a company ID in the advertisement, then the ID should be that of the manufacturer who specified the data and its format. Apple devices happily read and report manufacturer data in the advertisement back to applications no matter what the ID is.

    Beacons are different. In that case Apple specifies the manufacturer data format and so if you want an Apple device to recognise a beacon as an Apple beacon, you need to use Apple's manufacturer ID in the data (and make it the correct format). It used to be that you needed a license from Apple to do that, but they changed that a while ago.

    Most applications don't have manufacturer data advertisement packets at all. Don't see why a HID example would. 0x0059 is however in the beacon example, as you'd expect, don't know why your search didn't find it.

    examples/ble_peripheral/ble_app_beacon/main.c
    
    #define APP_DEVICE_TYPE                 0x02                              /**< 0x02 refers to Beacon. */
    #define APP_MEASURED_RSSI               0xC3                              /**< The Beacon's measured RSSI at 1 meter distance in dBm. */
    #define APP_COMPANY_IDENTIFIER          0x0059                            /**< Company identifier for Nordic Semiconductor ASA. as per www.bluetooth.org. */
    
  • Probably because Tom searched for "0x59" specifically.

  • I knew that the ID's for Nordic and Apple are x59 and x4C, respectively but could not find either "59" or "4C" in the source code.

    After enabling BT in Settings on an iPad the HID is not found. That is why I thought the ID must be Apple's 4C to work. The LightBlue app does find it. What might be the problem with my HID?

  • I have no idea why the HID keyboard doesn't work, however it doesn't have anything to do with the ID in the manufacturer specific advertising data because as far as I know, there is no manufacturer specific data in the advertising on that project. I believe it just advertises the HID service UUID and not much else.

    Perhaps you should start a new question with a title more about HID keyboards and iOS as anyone who knows how they work probably won't look at this thread.

Related