I have just received some new HC-05 and HC-06 Bluetooth modules. These were sold as zs-040s which is the module I actually wanted but I received modules marked FC-114. They share the same breakout board as the zs-040 but have different pins soldered between the Bluetooth module and the breakout board and have a very different firmware.
The small push button switch still has traces to pin 34 and still pulls pin 34 HIGH, however, on the FC-114 boards, pin 34 is a regular IO pin and closing the button switch doesn’t do anything. On the zs-040 boards, closing the button switch and pulling pin 34 HIGH puts the modules in to AT mode. Since the FC-114 starts in AT mode this is no big loss.
It took me a while to figure out the differences.
When powered on, the modules report themselves as “AEGIN” and default to Slave Mode with a baud rate of 9600. The process for using them in Slave Mode, connecting to the Arduino and talking to an Android device, is the same as other modules.
Like other HC-05s and HC-06s the boards have a voltage regular on the vcc pin and accept a voltage in of 3.6v to 6V, however, the other pins are 3.3v only. This means you can power the boards from a 5V rail using the vcc in but you should not connect the others pins directly to 5V.
I assumed these were like other HC-05s I had but could not find how to get in to AT mode. By accident I reset the module while the serial monitor was open and received a start up message.
This shows the manufactures website, that the modules are in Slave Mode and that they have a “AT+HELP” command.
A quick “AT+HELP” later I had a list of the AT commands.
This means the modules do not have a separate AT mode like other HC-05s. On start up they are in Slave Mode and accepting commands. After a connection is made the modules go in to communication mode and AT commands no longer work. In communication mode anything the module receives is treated as data and sent to the connected device.
“AT+VERSION” returns the firmware version number which reports as:
+BOLUTEK Firmware V2.43, Bluetooth V2.0, HCI V2.1, HCI Rev37, LMP V4, LMP SubV37
The HC-06s use the same breakout board as the HC-05s but have some differences.
– there is no button switch
– there is no connector on the EN pin
– there is no connector on the STATE pin
When the EN pin is pulled LOW (connected to ground) the modules are disabled.
The STATE pin on the breakout boards connects to pin 25 and pin 32 on the small Bluetooth module. On the FC-114 pin 32 in a normal IO pin and pin 25 is MCU_INT. On the boards I received pin 25 was not connected to the breakout board and so the STATE pin was not connected. After connecting pin 25 to the breakout board the STATE pin works as expected; LOW when not connected and HIGH when connected.
Tt appears that the HC-06 FC-114s have the same firmware as the HC-05 FC-114s. “AT+HELP” gives the same list of AT commands and “AT+VERSION” reports the same firmware version: “+BOLUTEK Firmware V2.43, Bluetooth V2.0, HCI V2.1, HCI Rev37, LMP V4, LMP SubV37” and should mean that HC-06s can be used as Master devices.
The manufacturers website gave me the model number of the Bluetooth modules.
A visit to http://www.bolutek.cn shows that the Bluetooth daughter boards are model BLK-MD-BC04-B.
And from the manufacturers website we find that:
The BLK-MD-BC04-B is a Bluetooth serial module for OEM manufacturers who want to implement Bluetooth functionality with their products cost effectively and also in timely manner. The BC04-B supports UART, USB, I2C, PCM, PIO interfaces for the communication with the OEM products.
The BC04-B is provided with Bluetooth v2.0 compatible firmware runs internally for SPP (Serial Port Profile) applications by default. It based on CSR BC04 External chipset with an antenna integrated and with the firmware provided by our company, it could be easily used for kinds of Bluetooth products.
The BC04-B is fully qualified with Bluetooth v.2.0+EDR specification so OEM manufacturers can save cost and time for overall OEM product certifications, which makes the BC04-B ideal solution for larger volume and cost sensitive applications.
Bluetooth protocol: Bluetooth Specification v2.0 + EDR
USB protocol: USB v1.1/2.0
Frequency: 2.4GHz ISM band
Modulation: GFSK (Gaussian Frequency Shift Keying)
Transmit power: ≤ 4dBm, Class 2
Sensitivity: ≤-84dBm at 0.1% BER
Rate: 2.1Mbps(Max)/160 kbps(Asynchronous);1Mbps/1Mbps(Synchronous)
security features: Authentication and encryption
Support profiles: Bluetooth serial port (master & slave)
Power Supply: +3.3 VDC 50mA
Operating temperature: -20 ~ +55 Centigrade
Dimensions: 26.9mm x 13mm x 2.2 mm
One thing to note is the power consumption; 3.3v at 50mA. I do not know if 50mA is constant or if it is the maximum the board can draw (likely it is the maximum) and this too much for a regular Arduino pin to supply so the modules should not be connected to a regular Arduino pin.
They can safely be powered from the Arduinos 5V out but it is worth remembering that the 5V pin on can only supply up to to 200mA so if you are adding other devices/sensors you may need to be careful of the total current.
Once I had the model number it was fairly easy to get more information online and means these are not new modules, just new to me. It may be that they have not been put on to these breakout boards before though.
Although the small modules look the same as the ones used in other HC-05s and HC-06s the Bolutek firmware uses different pins.
From this we can see that
– Pin 24 is for a status LED. This is connected to the LED on the breakout board.
– Pin 26 is reset. This is not connected.
– Pin 27 is used to determine if Master Mode can be selected in software or Hardware.
– Pin 28 is used to select Master or Slave through hardware.
Pin 26 reset:
– short press = memory clear
– Long press (3 seconds+) = restore default settings
If pin 27 is HIGH then we can set Master Mode in software. If pin 27 is LOW then we need to use hardware (pin 28) to select Master Mode.
When pin 27 is LOW (or not connected) pin 28 is used to selected either Slave Mode or Master Mode.
– Pin 27 LOW + pin 28 LOW = Slave Mode.
– Pin 27 LOW + pin 28 HIGH = Master Mode.
On the modules I have, pin 27 and pin 28 are not connected. This means, at least at the moment, I cannot set the modules to Master Mode in software. Trying to change to Master Mode using “AT+ROLE1” gives me an OK but it does not seem to actual put the modules in to Master Mode. However, it is early days and I haven’t really experimented with these modules yet.
I need to research this further but it it likely that if I want to use these modules in Master Mode I will need to solder wires to pins 27 and 28.
I ended up putting a wire on to pin 27. See HC-05 FC-114 and HC-06 FC-114. Part 3 – Master Mode and Auto Connect