Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

X-Nucleo-IDB05A1 Not Working #195

Open
waymond91 opened this issue Sep 11, 2017 · 4 comments
Open

X-Nucleo-IDB05A1 Not Working #195

waymond91 opened this issue Sep 11, 2017 · 4 comments

Comments

@waymond91
Copy link

waymond91 commented Sep 11, 2017

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

@apalmieriGH
Copy link

Dear Brett,
first of all thanks for using STM products.
Regarding your setup, please consider that the ST-NUCLEO-F446RE requires a small HW patch as warned in the X-NUCLEO-IDB0XA1 component page.
Alternatively, you could even use your NUCLEO board as is provided that you select the ST-NUCLEO-F401RE before building the program from your mbed workspace.
Hope that helps.

Kind regards
Andrea

@waymond91
Copy link
Author

Thank you for the help!
I am trying this right now. For some reason I assumed this was only required for a literal connection to an arduino.

@waymond91
Copy link
Author

That fixed it!

@DavidF13
Copy link

Hello Brett,

I found this thread trying to fix the same problem you had with the X-Nucleo-IDB05A1. Did you manage to use the shield after the BlueNRG-MS update?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants