cancel
Showing results for 
Search instead for 
Did you mean: 

BlueNRG firmware version questions

BPaik
Senior

I am currently using the X-NUCLEO-BNRG2A1 to experiment with the BlueNRG-2. Using the getBlueNRGVersion function, I see that the hardware version is 0x12 and the firmware version is 0x2211 and had some questions on how to interpret this:

  1. I believe the hardware version represents bluetooth 5.0, but how is the firmware version interpreted? (I found some information in DT0074 that makes me think 0x2211 corresponds to V3.4.1a, but I didn't find any image with that version number on the ST website).
  2. The X-NUCLEO-BNRG2A1 is listed as bluetooth 5.0 compliant, while the standalone BlueNRG-2 is listed as bluetooth 5.2 compliant. Is this simply the result of flashing different BLE stack images (since the X-NUCLEO-BNRG2A1 uses a BlueNRG-M2SP which contains a BlueNRG-2)?
  3. Does the BlueNRG-2 come preflashed with an image for use as a network coprocessor?
  4. Are there compatibility issues between the main application HCI APIs and different versions of the BlueNRG-2 coprocessor images?
  5. Where can I find documentation on the differences between BlueNRG-2 coprocessor firmware versions?
1 ACCEPTED SOLUTION

Accepted Solutions
Winfred LU
ST Employee

Hardware version is also known as the cut version of the IC, which comes with the chip when produced (DIE_ID). 0x12 would be cut v1.2.

Firmware version is the BLE stack (library) version being programmed in flash. 0x2211 is strange - possibly it shall be 0x211, which means stack v2.1a.

The details for different firmware versions is in ReleaseNotes, that comes with BlueNRG-1_2 DK, by default under:

file:///C:/Program%20Files%20(x86)/STMicroelectronics/BlueNRG-1_2%20DK%203.2.1/Docs/BlueNRG1_fw_stack_release_notes/BlueNRG-1_release_notes.html

X-NUCLEO-BNRG2A1 is built with BlueNRG-M2SP module.

BlueNRG-M2SP was previously certified to Bluetooth 5.0 with firmware version 2.1A, and currently certified to Bluetooth 5.2 with firmware version 2.1C.

BlueNRG-2 is not (pre)flashed with an image.

View solution in original post

4 REPLIES 4
Winfred LU
ST Employee

Hardware version is also known as the cut version of the IC, which comes with the chip when produced (DIE_ID). 0x12 would be cut v1.2.

Firmware version is the BLE stack (library) version being programmed in flash. 0x2211 is strange - possibly it shall be 0x211, which means stack v2.1a.

The details for different firmware versions is in ReleaseNotes, that comes with BlueNRG-1_2 DK, by default under:

file:///C:/Program%20Files%20(x86)/STMicroelectronics/BlueNRG-1_2%20DK%203.2.1/Docs/BlueNRG1_fw_stack_release_notes/BlueNRG-1_release_notes.html

X-NUCLEO-BNRG2A1 is built with BlueNRG-M2SP module.

BlueNRG-M2SP was previously certified to Bluetooth 5.0 with firmware version 2.1A, and currently certified to Bluetooth 5.2 with firmware version 2.1C.

BlueNRG-2 is not (pre)flashed with an image.

BPaik
Senior

Thanks for your response, I have a few more follow up questions for you:

  1. Does the BlueNRG-M2SP module come preflashed or blank?
  2. If I upgrade the BlueNRG-M2SP on the X-NUCLEO-BNRG2A1 to firmware version 2.1C, will it still be compatible with my main application software? (i.e. does the SPI interface remain the same?).
  3. I just double-checked the firmware version of the BlueNRG-M2SP and confirmed that it does report 0x2211. I am running the sensor demo from X-CubeBLE2 on the STM32L476RG.

Thanks for your response, I have a few more follow up questions for you (sorry, this is the second time I'm posting this since I didn't mark it as a reply to your message and it won't let me delete my posts):

  1. Does the BlueNRG-M2SP module come preflashed or blank?
  2. If I upgrade the BlueNRG-M2SP on the X-NUCLEO-BNRG2A1 to firmware version 2.1C, will it still be compatible with my main application software? (i.e. does the SPI interface remain the same?).
  3. I just double-checked the firmware version of the BlueNRG-M2SP and confirmed that it does report 0x2211. I am running the sensor demo from X-CubeBLE2 on the STM32L476RG.

  1. BlueNRG-M2SP module doesn't come with flashed firmware, as far as i understand.
  2. Yes. SPI interface and protocol will be the same.
  3. OK. If we look into X-CUBE-BLE2 for getBlueNRGVersion() implementation, the MSB byte (first 2 nibble) comes from LSB of HCI revision.
uint8_t getBlueNRGVersion(uint8_t *hwVersion, uint16_t *fwVersion)
{
  uint8_t status;
  uint8_t hci_version, lmp_pal_version;
  uint16_t hci_revision, manufacturer_name, lmp_pal_subversion;
 
  status = hci_read_local_version_information(&hci_version, &hci_revision, &lmp_pal_version,
				                              &manufacturer_name, &lmp_pal_subversion);
 
  if (status == BLE_STATUS_SUCCESS) {
    *hwVersion = hci_revision >> 8;
    *fwVersion = (hci_revision & 0xFF) << 8;              // Major Version Number
    *fwVersion |= ((lmp_pal_subversion >> 4) & 0xF) << 4; // Minor Version Number
    *fwVersion |= lmp_pal_subversion & 0xF;               // Patch Version Number
  }
  return status;
}

For the MSB byte, 0x22, the first nibble is HW part and the second nibble is FW major version number.

Previously I was thinking of just FW version itself, which was 0x211 (w/o HW part) instead of 0x2211 (w/ HW part), so.

Now it is clear.