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

iOS diconnect on reconnection due to 0x3D => MIC_Failure

My nRF8001 device uses encryption with just works procedure. Establishing a bond between nRF8001 and peer device as well as reconnection works on Android. On iOS reconnection of peer (master) was interrupted by nRF8001 with diconnection reason 0x3D. 0x3D => MIC_Failure => CRC is corrrect but key encryption is faulty.

See solution in answer below!

Parents
  • In my case this error was solely caused by

    Minimum encryption key size & Maximum encryption key size

    adjustable in nRFgo Studio. I used 8 bytes for minimum key size and 12 bytes for maximum key size.

    IOS seems to calculate encyrption with a maximum key size of 16. I changed the maximum encryption key size to 16.

    I havn't found this restriction on a quick search through the apple bluetooth design guidlines.

Reply
  • In my case this error was solely caused by

    Minimum encryption key size & Maximum encryption key size

    adjustable in nRFgo Studio. I used 8 bytes for minimum key size and 12 bytes for maximum key size.

    IOS seems to calculate encyrption with a maximum key size of 16. I changed the maximum encryption key size to 16.

    I havn't found this restriction on a quick search through the apple bluetooth design guidlines.

Children
No Data
Related