Tuesday, September 27, 2011

One board... several firmwares

The first time I bought some UART bluetooth devices, I ordered them on suntekstore.com website. Since these devices seems promising, i ordered a few more on DealExtreme for my job.

I discovered that even these boards seem identical, they had different firmwares.

The suntekstore ones has HC05 firmware, the DealExtreme ones has linvor 1.5 firmware.

The differences between them is mainly the AT command set.

Linvor 1.5also known as HC06
This firmware offers a very limited set of AT command.
By default the baudrate is 9600 8N1.

For this firmware you have to not send LF or CR character at the end of your AT command.AT programming mode is up when your board is not paired by bluetooth devices. For this firmware, you have to copy/paste AT command since timings is important. You can send about one command per second.

Command

Response

Note

AT

OK

Usefull
to check connection and baudrate

AT+VERSION

Linvor1.5

Get
the version of the module

AT+BAUDx

OKyyyy

Set
the baudrate :

xcan
take the following values :

1for 1200bps

22400bps

34800bps

49600bps

519200bps

638400bps

757600bps

8115200bps

9230400bps

A460800bps

B921600bps

C1382400bps

AT+NAMEString

OKsetname

Change
bluetooth device name :

String
can be any string you want ! be creative !! (20 characters
limited)

AT+PINxxxx

OKsetpin

Set
the bluetooth pincode :

1234by
default

And that's it !!! No other AT command.

In the next, post I will provide some links to the HC05 firmware. This one is a bit better than HC06.

Thanks a lot for the info. I order a few of these modules and to my surprise, they are HC-06. I have a few questions, they may be trivial, but I'm am a novice in electronics:1. How important is the value of the resistors? I mean, it seems to be a voltage divider, can you provide some info on Vin/Vout? I don't think I have these resistor values around and I would like to get started on this.2. Will the activity led remain at pin 24? I saw some diagrams for HC-05 where the led was connected to another pin, but I guess this change is done in firmware since this are programmable I/O pins

Hi Byron, first I'd like to thank you for all information about BT modules you have provided here and on DX website. I bought several modules on DX with linvor 1.5 fw. Unfortunately these modules work bit strange. Once everything works fine another time there are some interuptions in communication or it's not possible to establish connection. From this reason I'd like to update these modules to HC05 fw. I've downloaded original fw acording to your describtion. It wasn't possible to open LPT port, so I re-installled drivers ...//driver/win32/*.bat restarted PC, after restart it work fine(WXP, LPT1 EPP mode). In the next step I need to dump configuration constants related to concrete module, but I didn't catch how to proceed from your describtion of PSKEY command. Please,could you describe it more in detail? Will you post step by step instructions how to flash linvor to hc05 fw? thx JAN

I have 2 types of BT modules, for BTM0604 http://www.oemblue.com/BTM06%20class2%20standard.html there is software to set UART mode parameters and Manual with AT cmds, for the second one A18 http://www.ktlink.cn/en/product2show.asp?id=6 only pin placement, both use CSR BC417 (does the same chip on Your modules?)

The first already works as BT-RS232 bridge; to set it in cmd mode one must connect Vcc to PIO6/WLAN_Active/Ch_Data pin. Is it so in Your modules?

Now this might be a stupid question, but it has been years since I used AT commands (when we still needed modems and a phone to connect to internet), so I forgot if e.g. "AT+VERSION" actually means that you have to type the "+" character as well

It seems they are on to us :p I am unable to download bluesuite from CSR. I am starting to get annoyed. I'm in my third year of Computer Sciences, understand all the terminology, and still can't get a $10 bt module to work.

I unfortunately do not have a bus pirate. After more extensive reading I think that one isn't required, since I believe I can replicate its function using an Arduino.

We use SPI to communicate with the bluecore right? Why not just use a USB-SPI programmer, or create a custom interface using the ATMega microcontroller? If I had access to a parallel port, I probably could sniff the communication and have a better chance.

I also have another problem. I realized that I never tried the BT modules, even with their current firmware. While I am able to send AT, AT+PIN, AT+BAUD, and receive the correct response, I am unable to send AT+NAME, and I can't find it using bluetooth (Tried a laptop, PC with dongle, 2 phones and a WM6 PDA).

I soldered an LED with the correct resistor to PIO1 (24), and it blinks normally, and the device is able to reset.

I managed to find a (very) old pc with an LPT port. I will try to create a programmer like yours, and give it a try. This is getting frustrating :p

I tried to understand Frans-Willem's work, (thankfully I know VB/C#), but have never heard of BlueLab. Is this part of CSR's Bluesuite? Is it downloadable?

Also, I still haven't managed to find the bluetooth module by scanning. I am beggining to think that they were part of a pair, and these were master, not slaves. I read somewhere that if the module doesn't respond to AT+NAME, then it is in fact, a master.

The device can't be paired (even by accident - the led on 24 blinks normally). I am unable to find the module using bluetooth, I have searched using all kinds of devices, but it seems it isn't broadcasting.

I have a pair of the same devices, and have the same problem.

Do I need to pull-up/down any other pins? I have reset pulled high, and that's all.

Mine worked 1st try. It's a 121326 from DX.com.I hooked up 5V, and its LED started blinking.I scanned for BT devices with my android phone, and "linvor" showed up. I paired with it, passcode was 1234, and the LED went solid on.

Downloaded SENA BTerm from the marketplace, and told it to scan for devices, then connected to linvor.When I type on the screen, I see the TX line from the module change on a scope.

Now, it still seems to do about everything, EXCEPT it somehow seems to have lost its name 'Linvor'. Shows up by its address on my Android. Also, when I try the AT commands, all work EXCEPT for the AT+NAMEJOHN_DOE. This always brings up the response OKsetname, but doesnt actually change the name. Any idea at all what could be happening?

Like I said, the PC-to-module connection is fine, so is the wireless bluetooth. Just the issue with not being able to change (or give one) the name.

For some android phone (such as my HTC Desire) the class 0000 0000 is not pairable ! so you need to change it with PStool.exe

For the name of your device you may need to delete your module in your windows environment... I think that some registry key store the name of your bluetooth module according to your bluetooth MAC address.

Do you know why it is showing multiple serial ports? It is really messing up the Arduino IDE. It still has the Linvor firmware on the device. I really like the simplicity of this firmware, but the multiple serial ports with serial ports that don't work right is making it a pain to work with.

I have the Linvor module. Can send and receive from terminal but can not get any response from AT commands....?

Have tried unpairing the module on the PC and added \n and \r\n to AT in case it's HC-05 firmware but no joy.Also tried powering the module with Pin 26 and Pin 34 to force the module to forget last pair but again no luck.

This device is horrible. The one I have answers as linvor 1.8 and is supposed to be an HC-06, but no matter what I do, I can't get the bluetooth function to send or receive anything. I thought it was a baud rate issue, but it's not. I cycled through all the baud rates. I flipped rx/tx but still nothing. The lack of documentation when you order the product is pathetic.

Developing a wireless Audio or Data accessory can become a tedious, expensive and risky project. By offering a fully integrated solution with certifiedBluetooth Module the associated development kits and Smart Phone Apps

I set my JY MCU (BT Board V1.05) baud rate 9600 to 460800.The response from JY MCU was OK460800.But now it is not communicating to normalize (9600). (Previously i tried for to 115200 and normalize successful)

+1 to folks not able to set name on linvor slave modules. I have about 30 of these all working nicely. After two misbehaved I found they would not respond to set name or version command but would respond to AT and AT+PIN commands. They were also no longer discoverable by other bluetooth devices. it turned out I was driving the modules with 3.1V which is on the threshold of them working. Enough power to satisfy some AT commands but not enough for others....

I ended up buying JY-MCU HC-06(by mistake), if I have followed this blog correctly it means by changing firmware I can change HC-06 to HC-05? Is there HW difference?. I intent to use it with Arduino which needs to have both modes Master and Slave. This would really help me

Does any one have the source code for th HC05 or HC06 ?I want to do something very simple which I could not find anywhere ...I want the led to be off when not connected and on when connected - why ? - this will enable me to turn on a device (on led) when i connect to an approved bt phone (after pairing) - i.e unlock my car!!! open my door!!! - no Arduino - no CPU - just this simple BT module .Can anyone pls pls help me - this idea is free for anyone .pls contact me if there is a simple way to have one of the pins on these module 1 when paired . very simple - pls email me at moriszen[AT]gmail[DOT]com.Thanks!!!!

I was wondering if,we purchase just BC417 ext chip and one EEPROM(for storing stack) and integrating it on breadboard(instead of purchasing HC-06 module). Can we flash this integrated module(on breadboard) with some firmware and make it work as HC-06 module. It will be big college project if we can do so !!! Is it possible ?