ARMmbed / ARMmbed/ble

X-Nucleo-IDB05A1 Not Working

Open
#195 4 comments 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
81
Forks
71
PR merge metrics
No merged PRs in 30d

Description

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](https://developer.mbed.org/teams/ST/code/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](https://developer.mbed.org/forum/team-79-ST-community/topic/27616/). 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](https://developer.mbed.org/teams/ST/code/BlueNRG-MS-Stack-Updater/). 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

Contributor guide

Open the contributing guide

Research direction

Start with the BLE_HeartRate-IDB0XA1 example, BlueNRGDevice.h, and the BlueNRG-MS-Stack-Updater instructions, then reproduce the missing serial output and LED behavior on the Nucleo-F446RE with X-Nucleo-IDB05A1. Determine whether the hardware, firmware version, reset timing, or example compatibility is responsible, and document a verified recovery or support path.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
embedded-iot
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.