[B2200] Need help to attach BLE as HCI device

Hey, I’ve recently get B2200 mesh router with BLE silicon labs chip on board. I’ve flashed the vanilla OpenWrt image on it. I was able to compile gl-ble-sdk package and installed bletool which works well and I’m able to communicate with the BLE device.

I need help to understand the right parameters for hciattach tool to create HCI device. Currently, I was able to invoke the hciattach tool in the following way:

hciattach /dev/ttyMSM1 any 115200 noflow

The hci0 was created but any communication with it with hciconfig, hcitool ends with timeout.

Any help would be appreciated.

Hi,

The Bluetooth module of the B2200 is burned with silabs NCP firmware and cannot be controlled with hcitool.
If you really need it, you can flash the module through the burn-in port reserved on the PCB. Please note that Bluetooth is currently used for wifi mesh communication with the B2200. If you convert the bluetooth firmware, it may cause the wifi mesh pairing function to fail.

Thanks,
kelly

Hey @kelly ,
Thank you for the replay.

I don’t need wifi mesh capabilities at this point. Is it possible that you share some instructions about where to find the right firmware to enable HCI for this BLE module?

Can I use the example from the Simplicity Studio - “Bluetooth - RCP” to build such firmware and flash it with gl-ble-dfu or through burn-in port as you’ve mentioned?

Thanks

Hi,

You can use the “Bluetooth RCP” project, and the chip is efr32mg21f512. TX/RX: PA05/PA06. I’m not quite sure what the default configuration is for the latest projects, but generally by default it’s fine. But please remember to remove the serial port hardware flow control.
If you have a Jlink and the easy access to disassemble the device, I’d prefer to recommend using the burn port on the PCB for firmware changes. It’s the most direct and error-free way to do it. But if you don’t have the device in question at hand, you can also try it via gl-ble-dfu, please be careful to use bgapi mode.

Thanks,
kelly

Just to confirm, @kelly :

  • Is this the PINs definition, i’ve setup following your comment:

  • For GLB file creation, would that be the right way

commander gbl create <gblfile> --app <filename> [--encrypt <keyfile>]

where the app file name would be the resulting .s37 or .hex file from the compilation of the “Bluetooth RCP” project?

Thanks again!

Hi,

For the pin setting, I think that’s right.

For the file, silabs project will create the .s37 file and you need to change it to .gbl file if you use gl-ble-dfu. If you use Jlink, you should use the .s37 file.

And the dfu tool, please check this: https://github.com/gl-inet/gl-ble-sdk/tree/master/dfu#3-upgrade
I would like to remind again that upgrading a bootloader of type bgapi using the dfu tool may cause the module to brick, in the worst case the module will not be damaged but the firmware can only be re-burned via Jlink.

Good luck!
kelly

Hey @kelly ,

I was not able to flash using the dfu app. I am now looking to use jlink approach. I wanted to check if you’d know if the following jlink version would work before I purchase it.

Appreciate all your help.

Hey,

I use Jlink V9 and I haven’t used the model you posted, but I see the chip model in the support list, so I think it should be supported.

Thanks,
kelly

It worked!
I used JLink Edu with Commander!

Thanks a lot for all the help!

1 Like

Congratulation!Thank you for sharing relevant information with us!