Two Kings · Act 4 · Low Energy changes everything
Bluetooth Low Energy and how it changed Arduino
The research behind 24:04–33:42 of the film · Watch this part
Bluetooth Low Energy is a second Bluetooth radio, added beside Classic Bluetooth rather than replacing it, and built for things that run on a button cell.82 It began at Nokia as Wibree, announced in 2006, was folded into Bluetooth a year later, and came back in 2010 as the headline of version 4.0.7 Low Energy was open to any iPhone app, while the Classic HC-05 never was, which is why the HM-10 was sold from the start as the module that works with the iPhone.2821
Key facts
- Nokia's researchers started on it in 2001, and Nokia announced it on the third of October 2006 as a radio for watches, keyboards, toys and sports sensors.12
- In June 2007 Nokia handed Wibree to the Bluetooth group, and it arrived in 2010 as Bluetooth Low Energy, the headline of version 4.0.67
- For most of its life a Low Energy device just announces itself: one short message of 31 bytes at most, on three of its 40 channels, to anyone listening.119
- Its data is laid out as a tree of services and characteristics. Any heart-rate strap puts its reading in the same place, a Heart Rate service numbered 180D.1314
- The iPhone 4S went on sale on the fourteenth of October 2011 with Bluetooth 4.0, reported as the first phone to carry Low Energy. Android apps waited until Android 4.3, in July 2013.1719
- The HM-10 was a Low Energy module from Jinan Huamao on a Texas Instruments chip, and most modules sold as HM-10 are clones such as the CC41-A, the AT-09 and the MLT-BT05.23
- The original ESP32 speaks both Classic and Low Energy, but the newer C3 and S3 carry Low Energy only.3637
40
facts cited
64
sources, 48 primary
5
common claims corrected
3
archival images
What this part says
The narration, line by line, as it is spoken in the film.
The button cell
Nokia's researchers had started on it in 2001, five years before the rest of the world heard its name.1
On the third of October 2006, Nokia put it on the table. It was a radio for things that run on a button cell: watches, keyboards, toys, sports sensors.2
Chip makers signed on the same day, among them a small Norwegian company called Nordic Semiconductor. Remember that name.2
It was never meant to carry music. Its makers said so themselves. It was built to say small things, rarely.3
The promise was a sensor that could run for months, in many cases more than a year, on a battery the size of a coin.4
By 2004 the idea had a plain working name in a conference paper: a 'low end extension for Bluetooth'. The phone would carry a little extra, so that the watch or the sensor could carry almost nothing.5
One year becomes three
In June 2007 Nokia handed Wibree to the Bluetooth group. The group said it would be ready in about a year. It took three.6
In 2010 it came back as Bluetooth Low Energy, the headline of version 4.0.7
And here's the part that matters for the rest of this story. Low Energy didn't replace Classic Bluetooth. It was added beside it: a second radio with a different way of talking, under the same name and the same logo.8
Two radios under one logo, and they can't talk to each other.8
How it talks
Low Energy uses 40 wider channels, and just three of them are for announcing "I'm here".9
The design gives the hard work to the phone, which has a big battery, and lets the little device do as little as possible.10
For most of its life a Low Energy device just announces itself. It sends one short message, 31 bytes at most, to anyone listening, and it doesn't wait for a reply.11
From there it can let one phone connect for a private conversation, or keep broadcasting to any number of listeners. Classic Bluetooth only knew the first.12
Everything a Low Energy device knows is laid out like a tree. The services are the branches, and the characteristics are the leaves, each holding one value. A phone can read a leaf, write to it, or ask to be told whenever it changes.13
The branches have standard names. Any heart-rate strap, from any maker, puts its reading in the same place, a Heart Rate service numbered 180D, so any phone knows where to look.14
A strap from one company and a phone from another understand each other without ever having met.14
The tree was ready. Now all it needed was a phone that could speak it.
The phone arrives
In June 2011 two new names joined the Bluetooth group's board: Apple, and Nordic, the chip maker that had backed Wibree from its first day.15
Apple's door for apps was called Core Bluetooth. It arrived with iOS 5 in October 2011, and it opened onto Low Energy.16
Two days later the iPhone 4S went on sale with Bluetooth 4.0 inside. It was reported at the time as the first phone to carry Low Energy.1716
Ten days after that, the Bluetooth group gave Low Energy a consumer name, Bluetooth Smart, and held up the new iPhone as its example.18
Android apps waited almost two more years. Android 4.3, in July 2013, finally let them talk to Low Energy devices, and only as the listener.19
Letting the phone play the device itself came later, with Android 5.0.19
The module and its shadows
The maker bench got its Low Energy module from an unlikely place. The company behind the HM-10, Jinan Huamao, wasn't a radio company first. In 2013 its website led with queue-ticket machines, payment kiosks and software for operating theatres.20
In January 2013 Huamao posted a video of its HM-10 talking to an iPhone 4S. The selling point was clear from the start: this module works with the iPhone.21
The HM-10 builds a serial cable on top of the tree. It has one service, numbered FFE0, with one characteristic, FFE1, that carries whatever bytes you send. Those numbers aren't a Bluetooth standard. They're just the module's choice.22
Then came the copies: boards with the same Texas Instruments chip and different firmware, sold under its name. Huamao's own datasheet ended up warning buyers about fakes, and it printed its name on both sides of the board so you could tell.2324
The quickest test is to ask the module its name. A genuine one wants a question mark and no line ending, and the clones want the opposite. Follow a tutorial written for one with the other in your hand, and you get silence.25
Then the copy was copied. The MLT-BT05 is a clone of the clone, and it lost a little more each time.26
A status pin that isn't connected, and a speed table that runs backwards.26
Most people who think they own an HM-10 own one of those.23
Which brings us back to the iPhone.
The wall
And now the wall.
Apple's own developer notes put the question plainly: why doesn't my app see the Bluetooth accessory sitting next to my iPhone?27
The answer was a licence. Classic Bluetooth devices could talk to an iPhone app only if they were built under Apple's accessory program. An HC-05 never was.2728
So the HC-05 that every Android tutorial used simply does not exist to an iPhone app.28
In 2019 Apple opened a side door. Apps could now reach some Classic devices, but only ones that speak the same tree-shaped language as Low Energy. The HC-05 predates that language, and for it the door stayed shut.29
There's one more twist. In January 2017 Chrome let an ordinary web page talk to a Low Energy device: open a link, pick the module from a list, drive it, with no app at all.30
But Apple's browser has never supported it, on the Mac or on the iPhone. So you buy the Low Energy module to reach the iPhone, and the web-page remote is the one thing that still won't work there.31
And even in Chrome, a web page only speaks the Low Energy tree. To a web page, as to an iPhone app, the HC-05 isn't there.32
The bench picks a side
The radios moved onto the boards themselves. Intel's Curie put Low Energy on the Arduino 101 in 2016, and a year later Intel left the maker market.33
In 2019 the Nano 33 BLE arrived on a Nordic chip, the same Nordic from the first day of Wibree, with Arduino's own Bluetooth library on the same day.342
Espressif's ESP32, out since 2016, put Wi-Fi and Bluetooth together on one small chip. The original speaks both languages, and an iPhone app still hears only the Low Energy half.3536
The newer chips in the family made a choice. The C3 and the S3, and the chips after them, carry Low Energy only. Classic was left behind.37
And in December 2016, Bluetooth 5 gave Low Energy a fast lane at twice the speed, and a long-range mode that reaches about four times as far.38
The long range didn't come from shouting louder. It came from saying each thing more carefully.39
It added enough redundancy that a faint signal can still be understood.39
And each announcement got room to say about eight times more.38
Small things, said rarely, and now heard from further away.338
Stories that are usually told wrong
Often told as: Bluetooth Low Energy is the newer, better version of Bluetooth and replaces Classic.
Often told as: The HM-10's FFE0/FFE1 UUIDs are standard SIG-assigned numbers for a Bluetooth serial service.
Often told as: HM-10 uses the TI CC2541, and the clones (CC41-A etc.) follow from it.
Often told as: Core Bluetooth is Low Energy only, and iPhone apps can never reach any Classic Bluetooth device.
Often told as: Every ESP32 has Bluetooth Classic, so any ESP32 can replace an HC-05.
Common questions
What is Bluetooth Low Energy?
A low-power radio for small devices, added to Bluetooth in version 4.0. Low Energy did not replace Classic Bluetooth. It was added beside it: a second radio with a different way of talking, under the same name and the same logo. It was never meant to carry music. Its makers said so themselves: the harder you push it, the less power it saves. It was built to say small things, rarely. The promise was a sensor that could run for months, in many cases more than a year, on a battery the size of a coin.834
Why can't an iPhone see an HC-05?
Apple never let ordinary iPhone apps talk to Classic Bluetooth serial devices; that is reserved for accessories in Apple's own licensing program. Low Energy was open to anyone. So the HC-05 that every Android tutorial used simply does not exist to an iPhone app. In 2019 Apple opened a side door: apps could now reach some Classic devices, but only ones that speak the same tree-shaped language as Low Energy. The HC-05 predates that language. For it, the door stayed shut.2829
Who invented Bluetooth Low Energy?
It began at Nokia. Nokia's researchers had started on it in 2001, five years before the rest of the world heard its name. In 2006 Nokia announced its own low-power radio, Wibree. A year later it agreed to fold it into Bluetooth, and in 2010 it came back as Bluetooth Low Energy, the headline of version 4.0.17
What is the HM-10?
The HM-10 was Low Energy, built by Jinan Huamao on a Texas Instruments chip. Soon the market filled with boards carrying the same TI chip and different firmware (the CC41-A, the AT-09, the MLT-BT05), and most people who think they own an HM-10 own one of those. In January 2013 Huamao posted a video of its HM-10 talking to an iPhone 4S. Within weeks it was giving away the source code of an iPhone app to go with it. The selling point was clear from the start: this module works with the iPhone.2321
Does the ESP32 have Classic Bluetooth?
Only some of them do. The original ESP32 speaks both languages. With one chip it can pretend to be an HC-05 and an HM-10 at the same time. And an iPhone app can still only hear the Low Energy half. The newer chips in the family made a choice. The ESP32-S2 has no Bluetooth at all. The C3 and S3, from 2020, and the chips after them, carry Low Energy only. Classic was left behind.3637
Does Web Bluetooth work on an iPhone?
No. In January 2017 Chrome let an ordinary web page talk to a Low Energy device. You open a link, pick the module from a list, and drive it, with no app at all. And Apple's browser has never supported it, on the Mac or on the iPhone. Apple lists it among the features it has chosen not to build, for privacy and security reasons. Firefox declined too.3031
The facts and their sources
Primary sources come first: the organisation, person or document itself. Secondary sources are reputable press or reference works.
- 1
Nokia's researchers had started on it in 2001, five years before the rest of the world heard its name.
- 2
On the third of October 2006, Nokia put it on the table. It was a radio for things that run on a button cell: watches, keyboards, toys, sports sensors. Chip makers signed on the same day, among them a small Norwegian company called Nordic Semiconductor.
- 3
It was never meant to carry music. Its makers said so themselves: the harder you push it, the less power it saves. It was built to say small things, rarely.
- 4
The promise was a sensor that could run for months, in many cases more than a year, on a battery the size of a coin.
- 5
By 2004 the idea had a plain working name in a conference paper: a 'low end extension for Bluetooth'. The phone would carry a little extra, so that the watch or the sensor could carry almost nothing.
- 6
In June 2007 Nokia handed Wibree to the Bluetooth group. The group said it would be ready in about a year. It took three.
- 7
In 2006 Nokia announced its own low-power radio, Wibree. A year later it agreed to fold it into Bluetooth, and in 2010 it came back as Bluetooth Low Energy, the headline of version 4.0.
- 8
Low Energy did not replace Classic Bluetooth. It was added beside it: a second radio with a different way of talking, under the same name and the same logo.
Often told as: Bluetooth Low Energy is the newer, better version of Bluetooth and replaces Classic.
Why that is not right: Common misconception. The SIG primer says LE 'rather than replace its predecessor, Bluetooth BR/EDR, sat alongside it as an alternative'. The two are not compatible over the air, and that is the root of the iPhone wall. - 9
Low Energy uses 40 wider channels, and just three of them are for announcing 'I'm here'.
- 10
The design gives the hard work to the phone, which has a big battery, and lets the little device do as little as possible.
- 11
For most of its life a Low Energy device just announces itself. It sends one short message, 31 bytes at most, on three channels, to anyone listening, and it doesn't wait for a reply.
- 12
From there, it can do two things. It can let one phone connect for a private conversation, or it can simply keep broadcasting to any number of listeners, with no connection at all. Classic Bluetooth only knew the first.
- 13
Everything a Low Energy device knows is laid out like a tree. The services are the branches, and the characteristics are the leaves, each holding one value. A phone can read a leaf, write to it, or ask to be told whenever it changes.
- 14
The branches have standard names. Any heart-rate strap, from any maker, puts its reading in the same place, a Heart Rate service numbered 180D, so any phone knows where to look.
- 15
In June 2011 two new names joined the Bluetooth group's board: Apple, and Nordic, the Norwegian chip maker that had backed Wibree from its first day.
- 16
Apple's door for apps was called Core Bluetooth. It arrived with iOS 5 in October 2011, two days before the iPhone 4S, and it opened onto Low Energy.
- 17
On the fourteenth of October 2011 the iPhone 4S went on sale with Bluetooth 4.0 inside. It was reported at the time as the first phone to carry Low Energy.
- primaryApple press release, 4 Oct 2011
- primaryApple iPhone 4S technical specifications
- secondaryEngadget, 12 Oct 2011
- secondaryMacRumors, 24 Oct 2011
- 18
Ten days later the Bluetooth group gave Low Energy a consumer name, Bluetooth Smart, and held up the new iPhone as the example of a phone that was ready for it.
- 19
Android apps waited almost two more years. Android 4.3, in July 2013, finally let them talk to Low Energy devices, and only as the listener. Letting the phone play the device itself came later, with Android 5.0.
- 20
The company behind the HM-10, Jinan Huamao, wasn't a radio company first. In 2013 its website led with queue-ticket machines, payment kiosks, oil sensors for power stations and software for operating theatres. Its first Bluetooth modules were Classic ones, built on CSR BlueCore chips, the same family inside the HC-05.
- 21
In January 2013 Huamao posted a video of its HM-10 talking to an iPhone 4S. Within weeks it was giving away the source code of an iPhone app to go with it. The selling point was clear from the start: this module works with the iPhone.
- 22
The HM-10 builds a serial cable on top of that tree. It has one service, numbered FFE0, with one characteristic, FFE1, that carries whatever bytes you send. Those numbers aren't a Bluetooth standard. They're just the module's choice, and you can change them.
Often told as: The HM-10's FFE0/FFE1 UUIDs are standard SIG-assigned numbers for a Bluetooth serial service.
Why that is not right: The Huamao datasheet: 'Service: 0xFFE0 (Modifiable use AT+UUID command) / Characteristic: 0xFFE1'. - 23
The HM-10 was Low Energy, built by Jinan Huamao on a Texas Instruments chip. Soon the market filled with boards carrying the same TI chip and different firmware (the CC41-A, the AT-09, the MLT-BT05), and most people who think they own an HM-10 own one of those.
Often told as: HM-10 uses the TI CC2541, and the clones (CC41-A etc.) follow from it.
Why that is not right: Early HM-10s used the CC2540, current ones the CC2541. The clones copy the hardware design, not the firmware.- primaryJinan Huamao HM-10 datasheet
- primaryTI CC2541
- secondaryYavilevich — HM-10 or CC41-A
- secondaryYavilevich — MLT-BT05, a clone of a clone
- 24
Then came the copies. Another company, Bolutek, made a near-identical board with its own firmware, and sellers listed it as an HM-10. Huamao's own datasheet ended up warning buyers about fakes, and it printed its name on both sides of the board so you could tell.
- 25
The quickest test is to ask the module its name. A genuine one wants a question mark and no line ending. The clones want the opposite. Follow a tutorial written for one, with the other in your hand, and you get silence.
- 26
Then the copy was copied. The MLT-BT05 is a clone of the clone, and it lost a little more each time: a status pin that isn't connected, and a speed table that runs backwards.
- 27
Apple's own developer notes put the question plainly: why doesn't my app see the Bluetooth accessory sitting next to my iPhone? The answer was a licence. Classic Bluetooth devices could talk to an iPhone app only if they were built under Apple's accessory program. An HC-05 never was.
- 28
Apple never let ordinary iPhone apps talk to Classic Bluetooth serial devices; that is reserved for accessories in Apple's own licensing program. Low Energy was open to anyone. So the HC-05 that every Android tutorial used simply does not exist to an iPhone app.
- 29
In 2019 Apple opened a side door: apps could now reach some Classic devices, but only ones that speak the same tree-shaped language as Low Energy. The HC-05 predates that language. For it, the door stayed shut.
Often told as: Core Bluetooth is Low Energy only, and iPhone apps can never reach any Classic Bluetooth device.
Why that is not right: Since iOS 13 (WWDC 2019, session 901), Core Bluetooth supports GATT over BR/EDR ('Core Bluetooth for BR/EDR'). Apple's documentation now describes the framework as communicating with 'Bluetooth low energy and BR/EDR (Classic) Devices'. GATT arrived with Bluetooth 4.0; the HC-05 is a Bluetooth 2.0+EDR SPP module (iTead datasheet), so it has no GATT to offer. - 30
In January 2017 Chrome let an ordinary web page talk to a Low Energy device. You open a link, pick the module from a list, and drive it, with no app at all.
- 31
And Apple's browser has never supported it, on the Mac or on the iPhone. Apple lists it among the features it has chosen not to build, for privacy and security reasons. Firefox declined too.
- 32
But it only speaks the Low Energy tree. To a web page, as to an iPhone app, the HC-05 isn't there.
- 33
Intel's Curie put Low Energy on the Arduino 101 in 2016. A year later Intel left the maker market.
- primaryArduino blog, 16 Oct 2015
- secondaryHackaday, 25 Jul 2017
- 34
In 2019 the Nano 33 BLE arrived on a Nordic chip, with Arduino's own Bluetooth library on the same day.
- 35
Espressif's ESP32, out since 2016, put Wi-Fi and Bluetooth together on one small chip.
- 36
The original ESP32 speaks both languages. With one chip it can pretend to be an HC-05 and an HM-10 at the same time. And an iPhone app can still only hear the Low Energy half.
- 37
The newer chips in the family made a choice. The ESP32-S2 has no Bluetooth at all. The C3 and S3, from 2020, and the chips after them, carry Low Energy only. Classic was left behind.
Often told as: Every ESP32 has Bluetooth Classic, so any ESP32 can replace an HC-05.
Why that is not right: Espressif product pages: ESP32-C3 'Wi-Fi and Bluetooth 5 (LE)' (announced Nov 2020); ESP32-S3 'Wi-Fi and Bluetooth 5 (LE)' (announced Dec 2020); ESP32-C6 Wi-Fi 6 + Bluetooth 5 (LE) + 802.15.4; ESP32-H2 Bluetooth 5 (LE) + 802.15.4, no Wi-Fi; ESP32-S2 datasheet: Wi-Fi only.- primaryEspressif ESP32-C3
- primaryEspressif: Introducing ESP32-C3 (Nov 2020)
- primaryEspressif ESP32-S3
- primaryEspressif: Announcing ESP32-S3
- primaryEspressif ESP32-C6
- primaryEspressif ESP32-H2
- primaryEspressif ESP32-S2 datasheet (Wi-Fi SoC)
- 38
In December 2016, Bluetooth 5 gave Low Energy three upgrades: a fast lane at twice the speed, a long-range mode that reaches about four times as far, and room to say about eight times more in each announcement.
- 39
The long range didn't come from shouting louder. It came from saying each thing more carefully, with enough redundancy that a faint signal can still be understood.
- 40
Outside America the founders couldn't safely use their own name, so they made a new one: Genuino. Italian for genuine. As if the board had to prove it.
The images
Real photographs and documents used in this part, with their credits and licences. Tap one to see the original.



Dramatised scenes
Places, people and eras for which no footage exists, reconstructed for the film. They are marked DRAMATISATION on screen.



















All sources
- primaryAndroid 4.3 APIs (Bluetooth Low Energy, Smart Ready)
- primaryAndroid 5.0 APIs (LE peripheral role)
- primaryAndroid Developers Blog, 24 Jul 2013
- primaryApple Developer: CBPeripheralManager (iOS 6.0+)
- primaryApple Developer: Core Bluetooth (iOS 5.0+)
- primaryApple Developer: External Accessory framework
- primaryApple Developer: transport bridging key (iOS 13.0+)
- primaryApple Technical Q&A QA1657 (2010, rev. 2012)
- primaryApple WWDC 2019 session 901, What's New in Core Bluetooth
- primaryApple iPhone 4S technical specifications
- primaryApple press release, 4 Oct 2011
- primaryArduino blog, 16 Oct 2015
- primaryArduino blog, 31 Jul 2019
- primaryArduinoBLE on GitHub (created 2018-11-13; 1.0.0 on 2019-07-31)
- primaryBluetooth SIG Assigned Numbers (service_uuids.yaml, characteristic_uuids.yaml)
- primaryBluetooth SIG and Nokia joint release, 12 Jun 2007 (wibree.com, via Wayback)
- primaryBluetooth SIG release 'Bluetooth 5 Now Available', 7 Dec 2016 (Business Wire)
- primaryBluetooth SIG release, 21 Jun 2011: Apple and Nordic join the board (via Wayback)
- primaryBluetooth SIG release, 24 Oct 2011: Bluetooth Smart marks (via Wayback)
- primaryBluetooth SIG tech overview
- primaryBluetooth SIG, The Bluetooth LE Primer v1.2.0
- primaryBluetooth SIG: Core 5.0 Feature Enhancements (PDF)
- primaryBluetooth SIG: Core 5.0 feature overview
- primaryChrome Platform Status: Web Bluetooth API
- primaryChrome Releases: Chrome 56 stable, 25 Jan 2017
- primaryEspressif ESP32 datasheet ('Bluetooth v4.2 BR/EDR and Bluetooth LE')
- primaryEspressif ESP32-C3
- primaryEspressif ESP32-C6
- primaryEspressif ESP32-H2
- primaryEspressif ESP32-S2 datasheet (Wi-Fi SoC)
- primaryEspressif ESP32-S3
- primaryEspressif — ESP32 launch
- primaryEspressif — ESP32-S2 (no Bluetooth)
- primaryEspressif: Announcing ESP32-S3
- primaryEspressif: Introducing ESP32-C3 (Nov 2020)
- primaryHC-05 datasheet: CSR BlueCore4-External
- primaryHuamao news item: HM-05 on CSR BlueCore (via Wayback)
- primaryIEEE Xplore, 'Low end extension for Bluetooth', RAWCON 2004 (doi 10.1109/rawcon.2004.1389107)
- primaryJinan Huamao HM-10 datasheet, V609/V705, Aug 2019
- primaryJinan Huamao website, Bluetooth news list, Aug 2013 (via Wayback)
- primaryMozilla standards positions: Web Bluetooth (negative)
- primaryNokia press release, 3 Oct 2006 (wibree.com, via Wayback)
- primaryTI CC2541
- primaryWeb Bluetooth spec (abstract: GATT over Bluetooth 4)
- primaryWebKit: Tracking Prevention (features not implemented)
- primaryWibree FAQ, Nov 2006 (via Wayback)
- primaryarduino-esp32 BluetoothSerial README
- primarywibree.com home page, Jan 2007 (via Wayback)
- secondaryApple Developer Forums — Core Bluetooth is LE-only
- secondaryApple Developer Forums — no Classic API
- secondaryEE Times — Wibree becomes ULP Bluetooth
- secondaryEngadget, 12 Oct 2011
- secondaryGSMArena: SIG adopts 4.0 (see F07a)
- secondaryHackaday, 19 May 2019
- secondaryHackaday, 25 Jul 2017
- secondaryMIT Technology Review, 12 Jun 2007
- secondaryMacRumors, 24 Oct 2011
- secondaryMacRumors, 7 Dec 2016
- secondaryMake: Arduino announces new brand, Genuino, 16 May 2015
- secondaryMartyn Currey: HM-10 Bluetooth 4 BLE modules
- secondaryTranscript of WWDC 2019 session 901
- secondaryYavilevich — HM-10 or CC41-A
- secondaryYavilevich — MLT-BT05, a clone of a clone
- secondarycaniuse: Web Bluetooth (data read 2026-09-27)
Two Kings: a history of Arduino and Bluetooth, by Troniction. The Bluetooth® word mark and logos are registered trademarks owned by Bluetooth SIG, Inc. Arduino® is a trademark of Arduino S.r.l. Neither endorses this film. Image credits and licences are listed with each image.
