It’s been a while since I have done any real in depth tests on new Bluetooth modules. I keep buying them but never find the time to play with them, and fror my own projects I have started to move away from using Bluetooth and into using web apps (ESP82666 and ESP32). For the times I do use Bluetooth I tend to stick to specific modules.
I am still asked frequently about what modules to buy, and about problems the newer modules are causing, especially the latest HC-05s which seem to have a broken firmware so I wanted to give an update about what modules to buy.
Before parting with your money, assuming you haven’t already, do a little research. There are many different types of Bluetooth and many different modules, and there are many cheap modules that have limited or broken firmware that will, at best, make life difficult and at worst, simply wont do what you want.
Confirm what type of Bluetooth you want, find a module that works and has a data sheet or lots of resources online. Having said that, I realize this may not be as easy as it sounds so here is what I currently suggest.
This article focuses on hobby friendly modules such as the HC-06, HC-05, HM-10, JDY-xx. These modules are very common and usually offer transparent UART communication so they are easy to connect to each other. They tend to have limited options though. If you are looking for a more complex Bluetooth board then you may be better with those from Nordic or Microchip.
Picking a Bluetooth Standard / Module
Picking what type of Bluetooth, or what module, to use will depend on what you want to do. In some cases it may not matter, other times it will.
If you want to link two Arduinos together to send data then almost any BT Classic or BLE module will be OK. If you go with BT Classic make sure at least one of the modules is a master, for example 1 x HC-05 + 1 x HC-06.
If you decide to go with BLE then any pair of matching modules will be suitable. For example 2 x HM-10.
If you want to connect to a mobile phone then the phone will dictate what BT standard you use. Android can be BT Classic or BLE, apple is BLE only. I now recommend using BLE for both Android and apple but BT Classic can be a little easier to use.
Before discussing what modules I use and suggest, I want to say that I am in no way affiliated with any of the companies or products I mention below. If I suggest or recommend something it is because I have bought it myself, used it, and liked it.
Bluetooth 2.0/2.1 Classic/EDR – Bluetooth SSP Modules
HC Modules
For Bluetooth Classic 2.0/2.1 SSP modules, my go to, and the ones I used to recommend, were the official HC-06 and HC-05 by Wavesen / Guangzhou HC Information Technology Ltd. These modules work very well, they are very reliable, are straight forward to use, and, importantly, they have good English datasheets.
Unfortunately, a few years ago the price went up, then went up again, and again, so I now buy them for special occasions only.
Wavesen website. Chinese only and very out of date.
HC01 web site (products page). Chinese only but more up-to-date.
Taobao store https://hc-com.taobao.com/
HC-05s and HC-06s look very similar except the HC-05 has a gold tick and the HC-06 doesn’t. The official modules have the www.hc01.com and HC logo. You want the modules with the HC logos.
HC-06 English data sheet V2.2 (PDF 756.96 kb)
HC-05 English data sheet V1.01 (PDF 633.55 kb)
HC-05 AT Command List (PDF 83.68 kb)
I wanted to stay with Wavesen and started using their HC-02s as a HC-06 replacement. The HC-02s have BT 2.1 SPP and BLE 4.0 and the SPP side has similar commands to the HC-06. They are cheaper than the HC-06. They have been a simple drop in replacement and have worked well.
There is also the HC-04. These are BT 2.1 SPP and BLE 5. I have played around with the HC-04 but have not done any serious projects with them. Be aware, there isn’t any information on the website about the HC-04.
HC-02 English data sheet (PDF 1.6 mb)
HC-04 Non released English data sheet (PDF 225 kb). I cannot find an official English datasheet.
HC-04 Chinese datasheet V2.6 (PDF 583 kb). I cannot find an official English datasheet.
There are many copies/fake HC-06 and HC-05 boards and it can be difficult to buy official HC modules. I buy from their taobao shop which is great for me as I live in Hong Kong and speak a little Chinese. Not so easy if you are not in Asia. Not impossible but certainly more difficult and even more difficult if you do not speak Chinese.
I assumed that there would be an official aliexpress shop but I am yet to find one. and the general search results for HC-05 are flooded with copies. Same for HC-06. Remember to look for the HC logos!
JDY Modules
I have a growing range of JDY modules which, for the most part have been pretty good. JDY modules are available almost everywhere. The secret is to know what modules use what Bluetooth standard and for most modules the datasheet is only a quick search away.
I have never 100% confirmed who actually manufactures the JDY modules. FCC documents show different modules with different company names; Shenzhen Innovation technology and also Shenzhen City Hong Teng Yu Da Electronic Technology Co. Ltd. If anybody knows the actual manufacturer please let me know.
The ones I use the most are the JDY-31 and the JDY-33. Both can be used as a HC-06 replacement.
The JDY-31 is a Bluetooth Classic SPP module.
The JDY-33 is a Bluetooth Classic SPP + BLE4 module.
JDY-31 Datasheet V1.3 English (PDF)
JDY-33 Datasheet V1.6 English (PDF)
ESP32
If you want an all-in-one solution then the ESP32 is a good solution. It can be programmed using the Arduino IDE, has Bluetooth built in so you don’t need an external module, and it does Bluetooth Classic and BLE.
Not all ESP32 modules include Bluetooth so double check before buying.