Flic
When the idea of Flic was first conceived in 2012, this technology practically only existed on paper. Two years later as we were finalizing the design, Bluetooth Low Energy was built in to every new smartphone and tablet on the market. Google Android 6.0 Marshmallow is the first OS to implement Bluetooth 4.1. Differences from Bluetooth 4.0 are minimal. The Marshmallow release was perfectly timed with the First Batch being shipped out. In BT 4.0 a few bits in the pairing setup were reserved for future use. These parameters were supposed to be ignored since they could end up being used in future protocol specifications. In the core Bluetooth stack implementation in the chip, a code licensed by a third party provider, these ignored bits were not parsed correctly. They were not ignored, they were null. While that ridiculously small difference made no impact before, it suddenly caused all pairing attempts between new Android devices and Flic to fail. We noticed this as our first batch was just sent out. We asked our backers to not upgrade to Android 6.0 until we worked out a solution. We also asked if anyone knew someone on the Android team who could help us out. Just a couple of hours later, we were introduced to the right guy at Google (the power of our community!) who helped us out and patched Android for Flic, basically whitelisting the Bluetooth MAC range of that batch. In Android 6.0.1 and future revisions, that First Batch still works. How could we not have noticed before, in beta versions of Android 6? Mysteriously, the MAC range used by the development boards from our chip provider were already white listed in Android. No one knows why. A quick reaction