Tuesday, September 27, 2011

One board... several firmwares

Hi !

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.5 also 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 :
x can take the following values :
  • 1 for 1200 bps 
  • 2     2400 bps
  • 3     4800 bps 
  • 4     9600 bps 
  • 5    19200 bps 
  • 6    38400 bps 
  • 7    57600 bps 
  • 8   115200 bps 
  • 9   230400 bps 
  • A   460800 bps 
  • B   921600 bps 
  • C  1382400 bps
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 :
1234 by 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.

70 comments:

  1. In dealextreme module the Pin 24 is for connection led.

    ReplyDelete
  2. thank you i will test and update

    ReplyDelete
  3. You can also set the parity with:
    AT+PN -> None
    AT+PE -> Even
    AT+PO -> Odd

    ReplyDelete
  4. 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

    ReplyDelete
  5. 1. http://www.magic-worlld.narod.ru/ try to calculate good values. vin 5 and vout 3.3

    2. led connection its done by firmware so hc05 diagrams show right pin for led

    ReplyDelete
  6. http://microsin.ru/content/view/1284/44/
    INFOS for and Pictures for the
    BlueFlashCmd Tools.
    Gruss Holger.

    ReplyDelete
  7. If the voltage divider is for vin 5v and vout 3.3v then a Schottky/3.3v pullup divider should also work, correct?
    Thanks

    ReplyDelete
  8. 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

    ReplyDelete
  9. In fact you only have to keep your Bluetooth identifier. You can make this by script with pscli command or via the pskey tool provide by CSR

    ReplyDelete
  10. Hi,
    Can be used as a bridge between bluetooth and RS232 ?
    My model is Linvor (EGBT-046S) from DX.

    Thank You,
    Best regards,

    Csaba Aranyi

    ReplyDelete
  11. Hi Byron,
    how do You set command mode?

    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?

    Vadim

    ReplyDelete
  12. 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

    ReplyDelete
  13. hi.
    is it possible to disable the pairing PIN code request of the module with HC06 fw?
    since some of my devices have problems with pairing with bt passkey, i have to disable it.
    thanks..

    ReplyDelete
  14. Sir you are the boss!

    I have been trying to get this bluetooth adapter working with the arduino, and ended up spending almost 16hours straight just trying to interface with a pc to try the AT codes!

    I will try again tomorrow, and hope for the best!

    Thanks!

    ReplyDelete
  15. Thank you for support. I'm glad that all this stuff help some of you !
    feel free to buy me a beer with a donation ! ;-)

    ReplyDelete
  16. 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.

    Oh, and if I ever succeed, your beer for a week is on me :)

    ReplyDelete
    Replies
    1. after a quick registration, you can find it there :
      https://www.csrsupport.com/PCSW#s7313

      Delete
    2. It seems you have found a loophole in CSR's website. Well done.

      I have downloaded all the available files. I am now looking for a way to use a USB-spi controller for programming/upgrading the firmware.

      It looks promising, but may take a while. (I have no parallel ports on any (working) computers :p)

      Delete
    3. I'm already on it. I'm porting frans-willem dll for buspirate.
      For now i'm able to communicate with the CSR bluecore but it's seems that the whole download procedure doesn't work ...

      I think that I have some problem with endianess when I send data back to the dll...

      I need some data dump of guys playing with frans-willem DLL..

      Delete
    4. 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.

      Delete
    5. If you have an arduino board, you should take a look to frans willem work !
      https://github.com/Frans-Willem/CsrSpiDrivers

      Delete
    6. Already did :)

      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.

      Any ideas?

      Delete
    7. Also, even though I have yet to succeed, I had to buy you that beer (or 2, have no idea how much beer costs outside of Greece :) as a thank you for your trouble

      Cheers!

      Delete
  17. 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.

    Damn.

    ReplyDelete
    Replies
    1. Bluelab 4.1 is the SDK for developping custom firmware.
      It is NOT freely available but you should find it with google or torrent search.

      For AT mode be sure that your module is NOT paired with a bluetooth device. It is a common mistake !
      Never heard that a master couldn't respond to AT+NAME...

      Delete
  18. Byron, this is getting annoying :p

    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.

    I really have to try to downgrade the firmware to H05.

    Thanks for all your help!

    ReplyDelete
  19. I got the device to (almost) pair. It was discovered once, but now is gone :(

    I soldered a wire to KEY, and just left it hanging. I powered on, and touched it, and the led started pulsing at about 500ms (instead of 100ms as it usually does). I quickly searched, and found it.

    Can you please confirm that it should blink at 500ms when waiting to pair? Have you seen it blink at 100ms?

    Thanks!

    ReplyDelete
  20. 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.

    ReplyDelete
  21. Folks, I really need some advice on this, its driving me up the wall.

    I have a Linvor 1.5 purchased from Ebay.

    When I tried it first, it pretty much worked in all respects.

    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.

    Thanks and Regards!

    ReplyDelete
    Replies
    1. hello,

      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.

      Delete
    2. Hi Byron, thanks for the response.

      An update...

      For some reason, the above was happening while I was using Hyperterminal (copy-pasting into it from notepad). I used sscom32E.exe, and all is well.

      Also, thanks for the tip on PStool.

      Regards,

      Anand Dhuru

      Delete
    3. hello, i have the same problem, i can change the name usin AT+NAME, and i cant see in my, pc, tablet, and phones

      Delete
  22. Hello. How to control In/Out ports if i have Linvor 1.5 software ? Regards, Karol

    ReplyDelete
  23. Hello Byron,

    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.

    Thanks,
    Frnak

    ReplyDelete
  24. Good day.

    Did you know - is there a firmware version with hardware flow control?

    ReplyDelete
  25. Hello, if linvor 1.5 have mac address or spp/uuid? where can i find it in csr bluetooth module? i have HC-06 ;(

    ReplyDelete
  26. Hi Byron and everybody,
    How can I change BaudRate: I want to set 7 bit instead 8 bit ?

    Thank's for help

    ReplyDelete
  27. Not directly related (mine is the breakout version) but may be useful to some. Found and changed a simple Arduino sketch to allow AT commands to be sent to the Bluetooth adapter.

    Link to the code: http://eclipse.clinertech.com/arduino/bluetooth/blth.html

    ReplyDelete
  28. I really thank you. It was usefull to set up my new livor boards, to work with a MegaSquirt. Thanks!

    ReplyDelete
  29. This comment has been removed by the author.

    ReplyDelete
  30. Hello,

    I have WML-C40AH module, can anyone BlueRadio (BR-C40#) or other firmware posting for this module?

    ReplyDelete
  31. This comment has been removed by the author.

    ReplyDelete
  32. Nice blog!

    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.

    Any help much appreciated.

    ReplyDelete
  33. Hi. Nice Blog. I need to establish a 7bit -> 1200,7,Odd,1 connection
    I cant, but I just connected a 1200,8,Odd,1
    Any idea why not 7 bits??

    ReplyDelete
  34. Hi Byron
    I will send you beer money if you answer my question.
    When I change the baud rate using AT+BAUD8, I am changing the bluetooth baud not the arduino baud. The arduino baud stays at 9600.

    If there a way to change the arduino baud? I need that to be at 115200



    ReplyDelete
    Replies
    1. Hi !
      Could you tell me what kind of response you got from the module ?
      It should be OK115200.

      If you got the right response, your module should be good when you reset your device or leave the AT mode (just try to pair it with a blutooth device).


      Delete
  35. Hi Byron
    Yes it does do into the higher baud on the bluetooth side. So I do get a ok115200.
    But on the arduino side(with the wires) it stays at 9600.

    ReplyDelete
  36. PLEASE HELP ME >>>>>
    I TRY EVERY THINK TO GET RESPONSE FROM BLUETOOTH
    EVERY TIME I SEND AT COMMAND NO RESPONSE I GET
    T USE HYPER TERMINAL & PUTTY BUT THE SAME PROBLEM

    HELP ME>>>>

    ReplyDelete
  37. Hi Byron, Thank you so much for supplying this information. This is very helpful!

    I have an HC-06 module. It was working fine, and then I enabled 460800 mode - now I cannot communicate with it- I only see garbage in transmission.

    Is there a way to reset the factory baud rate with this module? maybe with a pin connection upon power-up?

    Thank you,
    Brent

    ReplyDelete
    Replies
    1. Since you don't succed to communicate with this baudrate, I'm affraid that you have to acces your module with spi interface and try to modify some pskey with pskey tools

      Delete
    2. Thanks. I noticed the HC-05 allows you to pull a pin high to force the 38400 baud rate. Is the HC-06 different?

      I'll look at the pskey tools. Thanks again!

      Delete
  38. Hi, can someone tell whether the device supports baudrate 8192?

    ReplyDelete
  39. Hi Byron, Thank you so much for supplying this information. This is very helpful!
    but i m unable to get response from my hc05 module ...
    please suggest asap

    ReplyDelete
  40. hi i need help, i have a EGBT-046S module and I tried to set role to MASTER with comand AT+ROLE=1 where 1 is a master, but the module not respond

    ReplyDelete
  41. dear sir, plz help me ...my JY-MCU linvor 1.5 showing LED steady RED by connecting over Putty but not getting connected over android mobile. I tried various apk like arduino commander, microcontroller BT, MI device control....APP inventor made BT apk...plz help me....

    ReplyDelete
  42. 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.

    ReplyDelete
  43. plz any one resolve my issues....is there anything related to master slave funda.....

    ReplyDelete
  44. Hi! First of all, thanks for the information. I purchased two BT modules with HC-06 firmware. Can they work as Master device or i have to download the HC-05 firmware. Thanks again!

    ReplyDelete
  45. 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

    ReplyDelete
  46. set this bluetooth to 1382400 baud, now do not get to communicate with bluetooth because I have a program that trebaje at that speed.

    how do I return to a "normal" speed 9600 baud.

    greetings and thanks for the attention :)

    ReplyDelete
  47. Thank you so much, your hint with Copy-Paste

    ReplyDelete
  48. HI everybody!
    how to connect hc05 wit hc 06 ?
    thank!

    ReplyDelete
  49. 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)

    So please guide how to chance baud rate from 460800 to 9600.


    ReplyDelete
  50. thanks alot for documenting the linvor 1.5 commands! priceless info

    ReplyDelete
  51. This comment has been removed by the author.

    ReplyDelete
  52. +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....

    ReplyDelete
    Replies
    1. MasterCoder, I have the same exact symptoms as you, but I'm driving 5.03 volts into the unit. I'm actively searching for a solution.

      Delete
  53. hi guys
    i connected a hc 06 bluetooth module with my phone using sena bterm
    but i m getting funny character
    i ve set the baudrate to 9600
    what did i miss?

    ReplyDelete
  54. Hi guys,

    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

    Thanks
    VU2IIA

    ReplyDelete