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
Often told as: HC-05/HC-06 use the CSR BC417 chipset and Classic SPP.
Often told as: The HC-05/HC-06 default PIN is always 1234.
And when the phone asked for a code, the answer was almost always 1234. On some, 0000.
Often told as: SoftwareSerial was written by Mikal Hart.
Often told as: Arduino LLC won the lawsuit.
It never reached a verdict. The two sides settled, and in January 2017 the court closed the case.
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
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
The radio on it came from Bluegiga, a small Finnish company from Espoo, a Nordic radio on an Italian board.
- 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
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
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
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
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.- primaryHC-05 datasheet
- primaryCSR BC417 datasheet
- secondaryMartyn Currey — the complete guide to the HC-06
- secondaryMartyn Currey — Bluetooth modules
- 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
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
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
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
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
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
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
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
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
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
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
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
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
By 2011, more than a quarter of a million, and that doesn't count the copies.
- 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
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
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
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
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
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
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
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.



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




















All sources
- primaryATmega328P datasheet (V_IH = 0.6 VCC)
- primaryAndroid 2.0 release notes (API level 5)
- primaryAndroid Developers Blog, 27 Oct 2009
- primaryAndroid reference: BluetoothDevice.createRfcommSocketToServiceRecord
- primaryArduino IDE revisions.txt: 1.6.4, 2015.05.06
- primaryArduino blog, 1 Oct 2016: Two Arduinos become one
- primaryArduino blog, 16 Oct 2015: Arduino 101 and Genuino 101
- primaryArduino blog, 28 Jul 2017: A new era for Arduino begins today
- primaryArduino docs source: Arduino BT board page (retired)
- primaryArduino docs source: Getting Started with the Arduino BT
- primaryArduino docs — Arduino BT (retired)
- primaryArduino docs: SoftwareSerial library (based on NewSoftSerial; limitations)
- primaryArduino, LLC v. Arduino S.r.l., D. Mass. 1:15-cv-10181, Complaint (23 Jan 2015), ¶65, 76–77
- primaryBluetooth RC car site (Andi.Co), 'Bluetooth modules and Arduino code' (Wayback)
- primaryBluetooth SIG: Serial Port Profile 1.2
- primaryCSR BC417 datasheet
- primaryCourtListener docket, Arduino, LLC v. Arduino S.R.L., 1:15-cv-10181
- primaryGoogle Play: Arduino Bluetooth RC Car, July 2014 (Wayback)
- primaryGoogle Play: Bluetooth RC Car, Dec 2023 (Wayback)
- primaryGuangzhou HC: HC-06 datasheet (rev 2.2, 2011)
- primaryHC Serial Bluetooth Products User Instructional Manual (Guangzhou HC)
- primaryHayes Stack Smartmodem Owner's Manual, © 1981
- primaryMassimo Banzi, Make: 'Fighting for Arduino', 19 Mar 2015
- primaryMikal Hart, arduiniana.org: NewSoftSerial ('Starting with Arduino 1.0 (December, 2011)…')
- primarySilicon Labs press release, 3 Feb 2015
- primaryarduino.cc 'So you want to make an Arduino', Dec 2008 (Wayback)
- primaryarduino.cc Arduino BT page, Feb 2007 (Wayback)
- primaryarduino.cc FAQ, Jan 2008 (Wayback)
- primaryarduino.cc Guide/ArduinoBT, Dec 2008 (Wayback)
- primaryarduino.cc Guide/ArduinoBT, Feb 2007 (Wayback)
- primaryarduino.cc Hardware page, March 2006 (Wayback)
- primaryarduino/Arduino commit 39d1dfc, 6 Mar 2015: 'Added warning for uncertified boards'
- primaryiTead Studio HC-05 datasheet, 18 June 2010
- primarywavesen.com home page, Jan 2011 (Wayback)
- primarywavesen.com home page, Sept 2009 (Wayback)
- secondaryHackaday interviews Federico Musto of Arduino Srl, 23 Jul 2015
- secondaryHackaday, 1 Oct 2016: Arduino vs. Arduino: Arduino won
- secondaryHackaday, 30 Jan 2012: Firmware programmer for a cheap Bluetooth module
- secondaryHackaday: Arduino IDE forked, 6 Apr 2015
- secondaryHackaday: Arduino v Arduino, Part II, 12 Mar 2015
- secondaryHackaday: Musto out, Banzi in
- secondaryIEEE Spectrum — The making of Arduino (David Kushner, 26 Oct 2011)
- secondaryLWN: A trademark battle in the Arduino community, 25 Mar 2015
- secondaryMake: Arduino announces new brand, Genuino, 16 May 2015
- secondaryMartyn Currey — Bluetooth modules
- secondaryMartyn Currey: HC-05 firmware 2.0-20100601
- secondaryMimms Museum Hall of Fame: Dale Heatherington
- secondaryWired — Build it. Share it. Profit. (Clive Thompson, Oct 2008)
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.
