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

Homekit with IPhone7 IOS10

Hi Nordic,

Should Nordic Homekit SDK support new IOS10 with IPhone7? Please verify. Thanks.

Best Regards Tony Lee

  • Yes, it should. But there is an interoperability issue with Data Length extension. For some reason iPhone 7 with iOS 10.0.x doesn't perform service discovery when the LL Length response is 27 bytes (Default MTU size). However you can work around this by modifying ble_evt_dispatch like this:

    static void ble_evt_dispatch(ble_evt_t * p_ble_evt)
    {
    switch (p_ble_evt->header.evt_id) {
        case BLE_GAP_EVT_CONNECTED:
            s_advertising = false;
            nrf_gpio_pin_clear(LED_4);
    //Modification start
            sd_ble_gattc_exchange_mtu_request(p_ble_evt->evt.common_evt.conn_handle, client_rx_mtu);
    //Modification end
            break;
    

    client_rx_mtu needs to be larger than 23. With Homekit you should use 158.

    Update: iPhone 7 with iOS 10.1Beta2 works.

    Update 2: This is not only a Homekit issue. This is an interoperability issue with iPhone 7 running iOS 10.0.x and S132 v3.0.0. Unfortunately iPhone 7 gets confused when we reply to the length respons with the default MTU size. However, iPhone 6/6s is not affected. Older softdevice revisions also work with iPhone 7/iOS10.0.x. Since this seems to be fixed in iOS 10.1 I'm not sure this will be a big issue as I expect most customers will update to iOS 10.1.

    Update 3: Not fixed for iOS 10.0.3.

  • Hi Run_ar,

    It works now, it is really useful for us.

    Is there interoperability issue on HomeKit only or we have to modify for all application with IPhone7 and IOS 10.0.x? Thanks.

Related