Friday, September 30, 2011

Flashing a new firmware

I hope you had a good time soldering your programmer.

I take the time to refine mine to make a bit more sexy !

I show you the ugly part too : (I'm a little proud)

So !!!! are you ready ?
We have to test it a bit before trying to upload some cool stuff in it.
First you can play a little with the PSTool. But I prefer command line.

Saving your own firmware :
You can find in the Bluelab/Tools/bin directory, a tool to make a extraction of the firmware.
You can download your firmware with the following command :
BlueFlashCmd -DUMP my_saved_firmware

The BlueFlashCmd should create in your current directory, two files called my_saved_firmware.xdv and my_saved_firmware.xpv

Take care of these files, they can be useful if you missed something in the next steps.

If you don't manage to extract these files, DO NOT PROCEED FURTHER. I have to make a little disclaimer, i will not be responsible if you broke your bluetooth module, please be careful, don't do thing you don't understand. Ask me before if you have any doubt.

Saving your personal bluetooth module parameters :
One another cool program is pscli.exe. CSR firmware contains some special parameters that can be dump, upload, modify by pscli.exe and PSTool.exe.

I will not describe each PSKEY as you can have useful information via PSTool.
pscli.exe can extract a set of PSKEY by passing PSKEY queries in a config file.

The goal is to save your bluetooth UUID and some crystal calibration data to restore them after the firmware download.

You have to know that downloading my firmware to your module will make a perfect copy of my module. So if you planned to make several HC05 modules you have to make them unique if you want to pair them together.

The PSKEY query file (data.psq) is made like this :


Each line starting by a ? is a query to grab the corresponding PSKEY stored in your module.
You can invoke the following command to stored those PSKEY in your computer :
pscli query data.psr data.psq

Some explanations ? Be careful ! 3 parameters :

  • 1st parameter : The command query
  • 2nd parameter : The response file
  • 3rd parameter :  The query file
Do you see it ? you have to pass the  the output file (data.psr) before the input file (data.psq). If you change this order, you will delete the psq file :-/

You can check the data.psr file to verify that you manage to get these PSKEY with your text editor.

Flashing another firmware :

Flashing the firmware, you can simply invoke that command :
BlueFlashCmd HC05
please notice that you should have the following HC05.xpv and HC05.xdv files in your current directory.
Be patient and take care that everything is working well.

Restoring your personal data :
At this point you have a perfect copy of my own module.
You had to restore your Bluetooth address and crystal factory setting to your module.
This can be done with this command :
pscli merge data.psr

The data.psr file is the one that you created before.

Et voilĂ  !!!
Please don't hesitate to comment this post if you have any question. You would be gentle to share this information if it helps you.
And don't forget to donate if you want to thank me !

You can download those files in the following link :
Google Drive

Wednesday, September 28, 2011

Upgrade your bluetooth module


Here we are. In the post, you will find (i hope) useful information to upgrade your module with HC05 firmware.

CSR support website provides a complete SDK with very useful tools. You only have to register to access to bluesuite 2.4 download page.

During the installation, let's talk about the pinout needed to gain write access to the internal firmware.

CSR BC417 chip native firmware flashing is possible by SPI connection.

SPI pinout :

    • PIN16 : CSB
    • PIN17 : MOSI
    • PIN18 : MISO
    • PIN19 : CLK
On PC side, CSR toolkit uses LPT port to emulate SPI protocol.
With few resistor, you can make your own programmer.

You will need a 3,3 V power source, I opted for a USB 5V with 3,3 V regulator.

When it's done, you will be ready to read the next post about firmware upgrading commands.

Tuesday, September 27, 2011

HC05 Firmware


Let's take a look to the HC05 firmware.
This one offers a wider range of AT command set.
With these AT commands you can set the module to master or slave devices.
I will not describe all the AT command since you can refer to online documentation.

Before going on, you had to know that entering in the AT mode is a bit more difficult with HC05 firmware.

This firmware provides 2 ways to activate AT mode :
The first way is described as below :
    • set low level on PIN34
    • Supply power to the module
    • set high level on PIN34
Then the module will enter on AT mode without your configured baud rate (default : 9600 8N1)

The second way :
    • set high level on PIN34,
    • Supply power to the module
The module will ALWAYS enter in AT mode with a 38400 baud rate (8N1).

The second way is kind useful if you don't remember your configured baud rate.

As you probably notice, AT mode can be reached only when PIN34 is high.

Moreover sending AT commands is different from the HC06 firmware (Linvor). In HC05 firmware you have to send CR and LF after each command.

For your information, here comes some useful AT commands :
    • AT\r\n AT test command should respond OK\r\n
    • AT+ROLE=1\r\n Set master mode
    • AT+ROLE=0\r\n Set slave mode
    • AT+VERSION?\r\n Get the firmware version
    • AT+UART=115200,1,2\r\n Set the baud rate to 115200 (8E2)
    • AT+PIO=10,1\r\n Set PIO10 to high level

Further information can be found in this documentation.

That's it for now...

The next article will answer this question : Can I upload a HC05 onto a linvor module ?

One board... several firmwares

Hi !

The first time I bought some UART bluetooth devices, I ordered them on 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.

Usefull to check connection and   baudrate
Get the version of the module
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
Change bluetooth device name :
String can be any string you want ! be creative !! (20 characters limited)
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.

Saturday, September 24, 2011

Some words about me !

Hi folks,

So, here we go ! My first message on my first blog...

Why this blog ? For whom ?

Since I decided to take a little time for realised few projects I dreamt a long time ago, since no one takes the time to do them for me, I have to do this myself if I want to make it real.

For your information, I'm french, 35 years old, engineer in embedded programming.
Please be indulgent for my English skill.

So !!! The reason why I start that blog is to share some information about CSR bluetooth board. Some of you may have exchange some word on dealextreme forum (nickname Byron76).

I realized that we can do a lot of cool stuff we that device... but it's a bit hard to find some resource and it's hard to get any help to start developing Bluecore4 chip ! Hope this blog we help some of you...

Feel free to encourage me buying me a beer, some electronic gadgets or other stuff by cliking this button. It's not mandatory, don't blame me.

That's all for presentations.