Two Kings · Act 3 · The wire-cutting era

The HC-05 and the modules that cut the wire

The research behind 14:26–24:04 of the film · Watch this part

The HC-05 came from Guangzhou, from a small firm called Huicheng Information Technology: HC stands for Huicheng, and by early 2011 it was selling the HC-05 to the world.5 It was built around a CSR BlueCore chip and spoke Classic Bluetooth's Serial Port Profile, which the standard calls an 'emulated serial cable': a cable replacement and nothing more.710 In October 2009 Android 2.0 gave every app a way to open a Bluetooth serial connection, and the project that defined the era was a toy car driven from a phone, one letter at a time.161819

Key facts

  • By early 2007 the Arduino BT was official: a Bluegiga WT11 radio next to an ATmega168, and you could upload code through the air.1
  • Ask a classic HC-05 its firmware version and it answers 2.0-20100601: the first of June, 2010.6
  • The HC-06 is fixed at the factory and waits to be called. The HC-05 can be switched with one command, AT+ROLE=1, into a master that makes the call.12
  • To configure one you type AT, for Attention, a word borrowed from the 1981 Hayes Smartmodem, and the module answers OK.11
  • The pairing code was almost always 1234; on some modules, 0000.13
  • The module ran at 3.3 volts and the Arduino at 5, so tutorials put two resistors on one line to bring 5 volts down to 3.3.14
  • From 2015 two companies called Arduino sued each other. The case closed in January 2017 without a verdict, and in July 2017 four of the five founders bought the whole of Arduino back.292728

29

facts cited

48

sources, 35 primary

4

common claims corrected

3

archival images

What this part says

The narration, line by line, as it is spoken in the film.

The board that went wireless first

The two kings met almost at once. By 2006 the Arduino team was showing a Bluetooth board, and by early 2007 the Arduino BT was official: a Bluegiga radio next to the chip, and you could upload code through the air.1

The radio came from a small Finnish company in Espoo. A Nordic radio on an Italian board.2

Using it was a ritual. You paired it with your computer like a phone, under the name ARDUINOBT and the code 12345, and to send it a new program you pressed its reset button at just the right moment, a beat before or a beat after clicking Upload.3

Arduino's own guide was frank about it. The board was, in its words, "more fragile and easy to break than a regular Arduino board". And the wireless link itself, the guide later admitted, "can be temperamental".4

Too much voltage, or the battery the wrong way round, and the chip was gone. And because it was soldered down, so was the board.4

It could run on as little as 1.2 volts, from batteries. But it spoke serial only: it was no good for a headset.3

A small firm in Guangzhou

What made Bluetooth everyone's came from somewhere else: small modules that plugged into any board.

They came from Guangzhou, from a small firm called Huicheng Information Technology. HC, for Huicheng. By early 2011 the top of its product list read, "HC-05: buy it use PayPal". It was selling to the world.5

The HC-05's firmware carries its own birthday. Ask it its version, and the classic ones answer: the first of June, 2010.6

Inside was a CSR BlueCore chip speaking Classic Bluetooth's serial profile. A cable replacement, and nothing more.7

Plug in an early HC-06, search from a phone, and a strange word appeared on the screen: linvor. It was simply another name of the same Guangzhou company, left in the firmware.8

By 2012 they were everywhere, and already they weren't all the same. Two modules that looked identical could run different firmware.9

Some hobbyists even built their own jigs to rewrite it.9

As for linvor, nobody explained it. Even the company's own papers disagree about which of its names came first.8

And today, many modules sold as HC-06 carry a different chip entirely.7

A cable made of air

What these modules spoke was the Serial Port Profile.10

The standard's own name for what they spoke is an "emulated serial cable". The maker's manual put it more plainly: the module's job is "replacing the serial port line". Two wires in, two wires out, and the air in between.10

To configure one, you typed AT. Attention. It's a word borrowed from a 1981 telephone modem, and decades later a Bluetooth module still answers it with OK.11

The numbering had a logic. The HC-06 was fixed at the factory: it waits to be called. The HC-05 could be switched with one command into a master that goes out and makes the call, so one Arduino could talk to another.12

And when the phone asked for a code, the answer was almost always 1234. On some, 0000.13

Even the datasheets didn't agree on that.13

Two tin cans and a string, with the string taken away.

The rites

Then came the rites.

There was a mismatch. The module lived at 3.3 volts, the Arduino at 5. Listening was fine, because 3.3 volts is loud enough for the Arduino to hear. Talking was the problem.14

So every tutorial taught the same small fix: two resistors, on one line, to bring 5 volts down to 3.3.14

Most tutorials also moved the module onto SoftwareSerial, the processor pretending, bit by bit, to be a second serial port. It went into Arduino itself in December 2011, and it could send or receive, never both at once.15

The version that shipped was built on a library by Mikal Hart.15

Small rites, learned one tutorial at a time.

The phone in your pocket

Then the other half arrived. In October 2009 Android 2.0 gave every app a way to open a Bluetooth serial connection. Google imagined games between phones. Hobbyists had another idea.16

Google's own documentation even left them a hint: if you're connecting to a Bluetooth serial board, use this number. 1101, the serial profile's own ID, copied into countless apps.17

The project that defined the era was a toy car with its brain replaced. One Android app for it said so in capitals: this is for a MODIFIED RC car. By 2023 it had been installed more than a million times.18

The whole language of these cars was single letters. F for forward. B for back. L, R, and S for stop. A phone sending one letter at a time, a board listening, and a car on the kitchen floor.19

Digits set the speed. And if no letter arrived for half a second, the car stopped.19

Take out the stock circuit, put in a microcontroller, and the phone did the rest.18

The kingdom splits

The one thing the founders had kept for themselves was the name. By 2011 more than a quarter of a million boards had been sold, not counting the copies.2021

Meanwhile, back in Italy, the other king's name was about to split in two.

In 2008 the founders put the name Arduino into a company of their own. That December, the factory near Ivrea, run by the fifth founder, Gianluca Martino, registered the same name in Italy under its own. By the founders' account, they didn't know.22

The factory's side saw it differently. They were the ones who built the boards and carried the risk, and the name had been on their boards since 2005. In 2014 they moved first: they asked the US to cancel the founders' trademark, renamed themselves Arduino, and put up a website of their own.23

In January 2015 the founders sued. Arduino against Arduino.24

Even the software took sides. The founders' editor warned that a board from the other company came from "an uncertified manufacturer". The other side answered with its own copy of the editor, with a higher version number. And a beginner in the middle, wondering which one was real.25

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.26

It never reached a verdict. The two sides settled, and in January 2017 the court closed the case.27

That July, four of the five founders, Banzi, Cuartielles, Mellis and Igoe, bought the whole of Arduino back. One kingdom again. The fifth, Martino, who built the first boards, was not among them.28

The peace had been announced the autumn before, in October 2016, at a Maker Faire in New York. Banzi called it one of the best days in Arduino history.2927

Federico Musto, who led the other company, said they were thrilled to resolve the issues.2728

The four founders' company took its name from their initials: BCMI.28

One kingdom, one name. But the radios were about to change.

Stories that are usually told wrong

Common questions

What does HC in HC-05 stand for?

HC stands for Huicheng. The modules that took over came from Guangzhou, from a small firm called Huicheng Information Technology. By early 2011 the top of its product list read 'HC-05: buy it use PayPal'. It was selling to the world.5

What is the difference between the HC-05 and the HC-06?

The numbering had a logic. The HC-06 was fixed at the factory: it waits to be called. The HC-05 could be switched with one command, AT+ROLE=1, into a master that goes out and makes the call, so one Arduino could talk to another.12

What is the default PIN for an HC-05 or HC-06?

It is not the same on every module. And when the phone asked for a code, the answer was almost always 1234. On some, 0000.13

Why does an HC-05 need a voltage divider on an Arduino?

The module lived at 3.3 volts, the Arduino at 5. Listening was fine: 3.3 volts is loud enough for the Arduino to hear. Talking was the problem, because 5 volts pushed into a 3.3-volt pin. So every tutorial taught the same small fix: two resistors, one line, to bring 5 volts down to 3.3.14

What does AT stand for in AT commands?

To configure one, you typed AT. Attention. It's a word borrowed from a 1981 telephone modem, the Hayes Smartmodem. Four decades later a Bluetooth module still answers it with OK.11

Who won the Arduino trademark lawsuit?

Nobody did. It never reached a verdict. The two sides settled, and in January 2017 the court closed the case. In July 2017 four of the five founders, Banzi, Cuartielles, Mellis and Igoe, whose initials made the name of their company, BCMI, bought the whole of Arduino back. One kingdom again. The fifth founder, Martino, the one who built the first boards, was not among them.2728

The facts and their sources

Primary sources come first: the organisation, person or document itself. Secondary sources are reputable press or reference works.

  1. 1

    By 2006 the team was showing a Bluetooth board, and by early 2007 the Arduino BT was official: a Bluegiga WT11 radio next to an ATmega168, and you could upload code through the air.

  2. 2

    The radio on it came from Bluegiga, a small Finnish company from Espoo, a Nordic radio on an Italian board.

  3. 3

    Using it was a ritual. You paired it with your computer like a phone, under the name ARDUINOBT and the code 12345. The computer invented a serial port for it. And to send it a new program you pressed its reset button at just the right moment, a beat before or a beat after clicking Upload.

  4. 4

    Arduino's own guide was frank about it. The Bluetooth board was, in its words, 'more fragile and easy to break than a regular Arduino board'. Too much voltage, or the battery the wrong way round, and the chip was gone, and because it was soldered down, so was the board. And the wireless link itself, the guide admitted, 'can be temperamental'.

  5. 5

    The modules that took over came from Guangzhou, from a small firm called Huicheng Information Technology. HC, for Huicheng. In 2009 its website sold Bluetooth serial modules and a file system for embedded chips. By early 2011 the top of its product list read 'HC-05: buy it use PayPal'. It was selling to the world.

  6. 6

    The HC-05's firmware carries its own birthday. Ask it its version and the classic ones answer 2.0-20100601: the first of June, 2010.

  7. 7

    The HC-05 and HC-06 were built around a CSR BlueCore chip and spoke Classic Bluetooth's serial profile: a cable replacement and nothing more.

    Often told as: HC-05/HC-06 use the CSR BC417 chipset and Classic SPP.
    Why that is not right: True of the originals. Many modules sold as HC-06 today use a Beken BK3231 with Bolutek firmware.
  8. 8

    Plug in an early HC-06, search from a phone, and a strange word appeared on the screen: linvor. Nobody explained it. It was simply another name of the same Guangzhou company, left in the firmware.

  9. 9

    By 2012 they were everywhere, and already they weren't all the same. Hobbyists found that two modules that looked identical could run different firmware, and some built their own jigs to rewrite it.

  10. 10

    What these modules spoke was the Serial Port Profile. The standard's own definition is an 'emulated serial cable'. The maker's manual put it more plainly: the module's main job is 'replacing the serial port line'. Two wires in, two wires out, and the air in between.

  11. 11

    To configure one, you typed AT. Attention. It's a word borrowed from a 1981 telephone modem, the Hayes Smartmodem. Four decades later a Bluetooth module still answers it with OK.

  12. 12

    The numbering had a logic. The HC-06 was fixed at the factory: it waits to be called. The HC-05 could be switched with one command, AT+ROLE=1, into a master that goes out and makes the call, so one Arduino could talk to another.

  13. 13

    And when the phone asked for a code, the answer was almost always 1234. On some, 0000.

    Often told as: The HC-05/HC-06 default PIN is always 1234.
    Why that is not right: HC's own manual: 1234 for both HC-05 and HC-06 (linvor). iTead's 2010 HC-05 sheet lists 'Auto-pairing PINCODE: 0000' and '1234' as the restored default in the same document.
  14. 14

    And there was a mismatch. The module lived at 3.3 volts, the Arduino at 5. Listening was fine: 3.3 volts is loud enough for the Arduino to hear. Talking was the problem, because 5 volts pushed into a 3.3-volt pin. So every tutorial taught the same small fix: two resistors, one line, to bring 5 volts down to 3.3.

  15. 15

    Most tutorials moved the module off the Arduino's own serial pins and onto SoftwareSerial, the processor pretending, bit by bit, to be a second serial port. It went into Arduino itself in December 2011, with version 1.0, built on a library by Mikal Hart. It could send or receive, never both at once.

    Often told as: SoftwareSerial was written by Mikal Hart.
    Why that is not right: The original SoftwareSerial was by David Mellis; from Arduino 1.0 (Dec 2011) it was replaced by Mikal Hart's NewSoftSerial (itself grown from ladyada's AFSoftSerial) under the old name.
  16. 16

    Then the other half arrived. In October 2009 Android 2.0 gave every app a way to open a Bluetooth serial connection. Google imagined games between phones. Hobbyists had another idea.

  17. 17

    Google's own documentation even left a hint for them: if you're connecting to a Bluetooth serial board, use this number. 1101. The Serial Port Profile's ID, copied into thousands of apps.

  18. 18

    The project that defined the era was a toy car with its brain replaced. One Android app for it said so in capitals: this is for a MODIFIED RC car. Take out the stock circuit, put in a microcontroller. By 2023 it had been installed more than a million times.

  19. 19

    The whole language of these cars was single letters. F for forward. B for back. L, R, and S for stop. A phone sending one letter at a time, a board listening, and a car on the kitchen floor.

  20. 20

    Then the key decision: they gave the design away. Anyone could download the files and build, change or sell the board. The only thing they kept was the name.

  21. 21

    By 2011, more than a quarter of a million, and that doesn't count the copies.

  22. 22

    The crack went back years. In 2008 the founders put the name Arduino into a company of their own. That December, the factory in Ivrea, run by the fifth founder, Gianluca Martino, quietly registered the same name in Italy under its own. By the founders' account, they didn't know.

  23. 23

    The factory's side saw it differently. They were the ones who actually built the boards, and they carried the risk of building them. The name, they argued, had been on their boards since 2005. In 2014 they moved first: they asked the US to cancel the founders' trademark, renamed themselves Arduino, and put up a website of their own.

  24. 24

    In January 2015 the founders sued, in a federal court in Massachusetts. Arduino against Arduino. One of the defendants was a man who had been there at the start.

  25. 25

    Even the software took sides. For a while, plugging an Arduino made by the other company into the founders' editor brought up a warning: 'This board comes from an uncertified manufacturer.' The other side answered with its own copy of the editor, and gave it a higher version number. Two websites, two editors, and a beginner in the middle, wondering which one was real.

  26. 26

    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.

  27. 27

    It never reached a verdict. The two sides settled, and in January 2017 the court closed the case.

    Often told as: Arduino LLC won the lawsuit.
    Why that is not right: Popular shorthand (e.g. Hackaday's 'Arduino won' headline, Oct 2016). The docket ends with a 'Settlement Order of Dismissal' on 26 Jan 2017; no judgment on the merits. The public announcement was 1 Oct 2016 at World Maker Faire New York: Banzi called it 'one of the best days in Arduino history'; Musto said they were 'thrilled to resolve the issues'.
  28. 28

    In July 2017 four of the five founders, Banzi, Cuartielles, Mellis and Igoe, whose initials made the name of their company, BCMI, bought the whole of Arduino back. One kingdom again. The fifth founder, Martino, the one who built the first boards, was not among them.

  29. 29

    Then the kingdom split. From 2015 there were two companies called Arduino, suing each other, and outside the US the founders' boards were sold under a new name, Genuino. In October 2016 they announced that the two would become one again, and in July 2017 the founders took back full control.

The images

Real photographs and documents used in this part, with their credits and licences. Tap one to see the original.

Arduino BT (official Bluetooth board, Bluegiga WT11)
Arduino BT (official Bluetooth board, Bluegiga WT11)David Mellis / Wikimedia Commons / CC BY 2.0
HC-05 Bluetooth module wired to an Arduino Uno on a breadboard
HC-05 Bluetooth module wired to an Arduino Uno on a breadboardPradana Aumars / Wikimedia Commons / CC BY-SA 4.0
HC-05-type Bluetooth serial module, close-up (6 pins, EN button, blue ZS-040-style backplane)
HC-05-type Bluetooth serial module, close-up (6 pins, EN button, blue ZS-040-style backplane)Photo: Tanha Tamanna Syed / Pexels · Pexels License

Dramatised scenes

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

Snow drifts across a frozen Nordic bay at dusk; a low building's windows glow on the far shore.
DramatisationSnow drifts across a frozen Nordic bay at dusk; a low building's windows glow on the far shore.
A finger poised over a laptop trackpad in lamp light; it waits, then clicks once.
DramatisationA finger poised over a laptop trackpad in lamp light; it waits, then clicks once.
A narrow street of small electronics shopfronts at night, all signs soft as coloured light.
DramatisationA narrow street of small electronics shopfronts at night, all signs soft as coloured light.
A maker's desk at night: a grey padded envelope lies under the lamp.
DramatisationA maker's desk at night: a grey padded envelope lies under the lamp.
Two hands tear open the grey padded envelope under the lamp.
DramatisationTwo hands tear open the grey padded envelope under the lamp.
A small pink anti-static bag on an open palm; the shape inside is a soft blur.
DramatisationA small pink anti-static bag on an open palm; the shape inside is a soft blur.
A hand holds a phone at the desk's edge, screen away, its glow on the fingers.
DramatisationA hand holds a phone at the desk's edge, screen away, its glow on the fingers.
A beige early-1980s modem on a desk, its row of small red lights blinking in sequence.
DramatisationA beige early-1980s modem on a desk, its row of small red lights blinking in sequence.
Two tin cans joined by a taut string across a garden at dusk.
DramatisationTwo tin cans joined by a taut string across a garden at dusk.
A soldering iron's tip in its stand, a ribbon of smoke curling up in the lamp light.
DramatisationA soldering iron's tip in its stand, a ribbon of smoke curling up in the lamp light.
A laptop open on a kitchen table at night, screen turned away, a notebook of drawings.
DramatisationA laptop open on a kitchen table at night, screen turned away, a notebook of drawings.
A kitchen floor at night: a red toy car with its shell off, at floor level.
DramatisationA kitchen floor at night: a red toy car with its shell off, at floor level.
A hand holds a phone sideways like a controller at knee height, its glow on the tiles.
DramatisationA hand holds a phone sideways like a controller at knee height, its glow on the tiles.
The red car, shell off, rolls across the tiles toward the camera.
DramatisationThe red car, shell off, rolls across the tiles toward the camera.
The red car stops a hand's width from a cabinet kickboard.
DramatisationThe red car stops a hand's width from a cabinet kickboard.
The empty red shell on the tiles, the chassis and the phone's glow soft behind.
DramatisationThe empty red shell on the tiles, the chassis and the phone's glow soft behind.
A low workshop building on the plain below the Alps at dusk, one lit loading door.
DramatisationA low workshop building on the plain below the Alps at dusk, one lit loading door.
A courthouse corridor in winter light, closed wooden double doors at its end.
DramatisationA courthouse corridor in winter light, closed wooden double doors at its end.
The river below the old town at dawn, mist lifting off fast green water.
DramatisationThe river below the old town at dawn, mist lifting off fast green water.
An empty workshop bench under a window at dawn.
DramatisationAn empty workshop bench under a window at dawn.

All sources

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.