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.




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