Elastic Sheep

Because elasticdog was already taken

Elastic Sheep header image 2

Bluetooth module firmware dump

June 28th, 2012 · 1 Comment · Uncategorized

With a parallel-SPI adapter and the BlueSuite tools you can dump the firmware of your Bluetooth module.

Firmware dump

Firmware dump is done with the BlueFlash utility.

  • Stop the processor: if the connection with the module is successful, information about the device will be displayed.
  • Click Firmware ID to display the loader and stack version.

  • Click Dump to dump the content of the firmware. Two files will be created: a XPV file and a XDV file.

The Bluecore chip family uses a XAP2 processor, a 16-bit RISC core designed for use in ASIC, with a Harvard architecture (separate data and instruction bus).

BlueFlash outputs one file for the data memory (XDV) and one file for the program memory (XPV).

Module settings dump

The settings of the module are stored in a persistent key-value store accessible with the PSTool software.

  • Launch PSTool
  • Select SPI BCCMD / LPT1 for transport protocol

Once connected you can browse all the module settings (radio calibration, protocol stack and application parameters).

  • To dump the settings, click File/Dump and set a target PSR file.

The resulting file is a text file containing the value associated to each key in the persistent store. Here is for example the content of the application key USR1. This key contains my device current name “Shanghai” in ASCII.

Firmware update

The Bluetooth module firmware can be updated with the same tools: firmware download with BlueFlash and parameters update/merge with PSTool. The original XDV, XPV and PSR files of your module should be kept aside in case of a bad update. You should be able to restore your original firmware with those 3 files.

Also one must be careful with the radio calibration settings when updating a Bluetooth module. Radio settings are factory-calibrated to account for variability in the manufacturing process and thus are unique for each module. Overwriting those settings could really degrade the radio quality.


One Comment so far ↓

  • Matt

    Is there source code for the official firmware. If I’m correct I should theoretically be able to write my own custom firmware. I would to send my data to the gpios on this device and have them transmitted over Bluetooth as a HID rather than using the UART pins and a virtual COM port.

    I can’t find much material online though

Leave a Comment