Skip to content

X-Nucleo-IDB05A1 Not Working #195

Open
@waymond91

Description

@waymond91

Hello All,
I would like to preface this post by saying that I have absolutely no experience working with the BLE communication stack.
I recently purchased a Nucleo-F446RE board alongside X-Nucleo-IDB05A1 to test out the viability of using the SPBTLE-RF module in a product we are developing. I figured this would be a good way to explore bluetooth within the Mbed environment.
However, when I imported and uploaded the BLE_HeartRate-IDB0XA1 program, as shown in the link, I get absolutely no ouput from the board or the module (including serial output).
I have tried bluetooth scanning with Android, iOS, Windows, and Linux Devices.
After digging around online a bit, I discovered some people were having success by changing some of the reset time. I tried this to no available.
A little more probing reveals that there was a firmware update for the ble module that was supposed to make its internal communication stack play nicely with the mbed infrastructure. So I followed the directions here. Although, I only saw the LED blink quickly, indicating an error.

For example, while I have been able to get LED blinky and serial output working on the board, the following code produces no serial output, and the LED still blinks even though nothing in the code calls for it:

#include "mbed.h"
#include "BlueNRGDevice.h"

#define BLUENRG_MS_HW_VERSION (0x31)


DigitalOut led1(PA_5);
Serial pc(USBTX, USBRX);

int main(void)
{
    pc.baud(115200);
    pc.printf("Begin!\n");
    
    uint8_t hw_version;
    uint8_t get_hw_version_status;
    BlueNRGDevice* bleDevice;

    // Keep LED1 turned on to show that update is in progress
    led1 = 1;

    bleDevice = (BlueNRGDevice*) createBLEInstance();
    get_hw_version_status = bleDevice->getUpdaterHardwareVersion(&hw_version);
    
    if (get_hw_version_status != BLE_STATUS_SUCCESS) {
        pc.printf("ERROR: Unable to get HW version\n\r");
    }
    
    if ( (hw_version < BLUENRG_MS_HW_VERSION) || (hw_version > BLUENRG_MS_HW_VERSION) ) {
        pc.printf("Sorry, you're HW version is not supported\n\r");
    }

    else
    {
        pc.printf("Hardware Version: %d\n", hw_version);      
    }
}

Now my fear is that I've bricked the module by perhaps only performing a partial firmware update?
Any advice on how to proceed?

Best regards,
Brett

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions