HC-05 vs HM-10
The phone decides: the HC-05 is Classic Bluetooth 2.0 + EDR with the Serial Port Profile (ITead HC-05 datasheet, p. 1), so it shows up as a serial port on Android and PCs but not to iPhone apps, while the HM-10 is Bluetooth 4.0 Low Energy on TI's CC2541 (DSD TECH HM-10 datasheet, p. 1) and works with iPhones, Android and Web Bluetooth. The two cannot talk to each other. The HM-10 also sleeps at 50 µA to 200 µA (p. 1), where the HC-05 has no sleep mode (HC user manual, p. 5).
Side by side
| HC-05 | HM-10 | |
|---|---|---|
| BluetoothITead HC-05 datasheet, p. 1; DSD TECH HM-10 datasheet, p. 1 | V2.0 + EDR, Serial Port Profile (Classic) | V4.0 Low Energy, GATT service 0xFFE0, characteristic 0xFFE1 |
| ChipITead HC-05 datasheet, p. 1; TI CC2541 datasheet SWRS110D | CSR BlueCore4-External | TI CC2541 (8051 core, up to 0 dBm) |
| Works withITead HC-05 datasheet, p. 1; DSD TECH HM-10 datasheet, p. 1 | Android phones and PCs as a serial port; not iPhone apps | iPhone, Android and Web Bluetooth through BLE apps |
| Bare module supplyHC Serial Bluetooth Products user manual, p. 11; DSD TECH HM-10 datasheet, p. 1 | 3.3 V (3.0 V to 4.2 V) | 2.5 V to 3.3 V |
| Carrier board supplyZS-040 carrier silkscreen; DSD TECH HM-10 breakout listing | 3.6 V to 6 V (ZS-040 regulator) | 3.6 V to 6 V (6-pin carrier regulator) |
| CurrentHC user manual, pp. 4, 5; DSD TECH HM-10 datasheet, p. 1 | 30 mA to 40 mA pairing, 8 mA connected, no sleep mode | 8.5 mA active, 50 µA to 200 µA asleep |
| Default baud rateHC user manual, pp. 4, 13; DSD TECH HM-10 datasheet, p. 10 | 9600 data mode, 38400 AT mode | 9600, 8N1 |
| AT commandsHC user manual, p. 13; DSD TECH HM-10 datasheet, p. 10 | EN high at power-up, commands end in \r\n | Any time no phone is connected, no line ending |
| Default PINHC user manual, p. 2; DSD TECH HM-10 datasheet, pp. 10, 37 | 1234 | 000000 (asked only with bonding on, AT+TYPE2) |
| Bare module sizeHC user manual, p. 5; DSD TECH HM-10 datasheet, p. 1 | 28 × 15 × 2.35 mm | 27 × 13 × 2.2 mm |
Which one to pick
- An Android phone or a PC that should see the board as a plain serial port, with any Bluetooth terminal app (ITead HC-05 datasheet, p. 1).
- Linking two microcontrollers without a phone: the HC-05 can act as master or slave, so two of them pair to each other.
- Existing tutorials and apps built around Classic SPP, such as Android RC car controllers.
- Anything that must talk to an iPhone: iOS apps reach BLE peripherals directly (DSD TECH HM-10 datasheet, p. 1).
- Battery projects: 8.5 mA active and 50 µA to 200 µA asleep (p. 1), where the HC-05 never sleeps.
- Web Bluetooth dashboards in Chrome and BLE apps such as LightBlue or nRF Connect.
Swapping one for the other
What changes in the wiring and the code.
- The six carrier pins match (STATE, RXD, TXD, GND, VCC, EN) and both carriers take 3.6 V to 6 V, so the wiring stays: TXD to the board's RX, the board's TX to RXD through a 1 kΩ / 2 kΩ divider on a 5 V board, because both UARTs are 3.3 V logic (HC user manual, p. 11; DSD TECH datasheet, p. 1).
- Data mode stays at 9600 baud on both (HC user manual, p. 4; DSD TECH datasheet, p. 10), so SoftwareSerial bt(10, 11) and bt.begin(9600) carry over unchanged.
- AT commands change: the HC-05 wants EN high at power-up, 38400 baud and \r\n after each command (HC user manual, p. 13); the HM-10 takes them at 9600 with no line ending and only while no phone is connected (DSD TECH datasheet, p. 10). Use print() instead of println().
- The phone side changes completely: pair the HC-05 in the system Bluetooth settings with PIN 1234 and open a serial terminal; connect to the HM-10 from a BLE app and subscribe to characteristic 0xFFE1 (DSD TECH datasheet, p. 1).
HC-05 or HM-10: questions
Can an HC-05 connect to an HM-10?
No. The HC-05 speaks Classic Bluetooth 2.0 SPP (ITead HC-05 datasheet, p. 1) and the HM-10 speaks Bluetooth 4.0 Low Energy (DSD TECH HM-10 datasheet, p. 1). The two radios use different protocols, so pair two HC-05s or two HM-10s instead.
Which Bluetooth module works with an iPhone?
The HM-10. iOS does not open Classic SPP to ordinary apps, so the HC-05 does not appear to them. The HM-10 is a BLE peripheral (DSD TECH datasheet, p. 1) that any BLE app on the iPhone can connect to through characteristic 0xFFE1.
Which module uses less power?
The HM-10: 8.5 mA active and 50 µA to 200 µA asleep (DSD TECH datasheet, p. 1). The HC-05 draws 30 mA to 40 mA while pairing and about 8 mA connected, and has no sleep mode (HC user manual, pp. 4, 5).
Do both need a voltage divider on a 5 V Arduino?
Yes, on RXD. Both modules run their UART at 3.3 V logic (HC user manual, p. 11; DSD TECH datasheet, p. 1) and the carriers do not shift levels. Put 1 kΩ from the Arduino's TX to RXD and 2 kΩ from RXD to GND. TXD goes straight to the Arduino's RX.
Why does my HM-10 ignore the AT commands that worked on my HC-05?
The HC-05 needs \r\n after each command and runs AT mode at 38400 baud (HC user manual, p. 13). The HM-10 wants no line ending, stays at 9600 baud and takes commands only while no phone is connected (DSD TECH datasheet, p. 10). Switch println() to print() and disconnect the phone first.
The two references
Checked on 2026-10-29 against 4 sources, the makers’ datasheets first.
This comparison as plain Markdown. /compare/hc-05-vs-hm-10.md

