This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

ble_app_cli example on custom board fails on connect

SDK 17.0.2

Murata MBN52832 module

I'm trying to bring up the ble_app_cli example on a custom board.  I've tested this board with the ble_app_blinky example using a custom_board.h file and that works fine.  Moving on to the ble_app_cli example works up until I try to connect using an Android tablet with nRF_Connect.  I've made no changes to the example code other than to build with my custom board settings.  I also set CONFIG_NFCT_PINS_AS_GPIOS.  I'm at a loss how to proceed to get this working.  It seems that if it runs on my nRF52 DK it should not have problems running on the Murata module if I haven't changed anything in the code.

Here's a copy of the custom_board.h file.  It's pretty simple as there's one RGB LED and two buttons.  Plus a UART that does not use flow control.

#ifndef CUSTOMBD_H
#define CUSTOMBD_H

#ifdef __cplusplus
extern "C" {
#endif

#include "nrf_gpio.h"

// LEDs definitions for Custom board
#define LEDS_NUMBER    3

#define LED_START 8
#define BLUE_LEDN 8
#define GRN_LEDN  29
#define RED_LEDN  7
#define LED_STOP  7

#define LEDS_ACTIVE_STATE 0
#define LEDS_INV_MASK  LEDS_MASK

#define LEDS_LIST { BLUE_LEDN, GRN_LEDN, RED_LEDN }

#define BSP_LED_0      BLUE_LEDN
#define BSP_LED_1      GRN_LEDN
#define BSP_LED_2      RED_LEDN

// Button definitions for Custom board
#define BUTTONS_NUMBER 2

#define BUTTON_START   20
#define SW1            20
#define SW2            17
#define BUTTON_STOP    17


#define BUTTON_PULL    NRF_GPIO_PIN_NOPULL  // Pullups for buttons are on the board
#define BUTTONS_ACTIVE_STATE 0

#define BUTTONS_LIST { SW1, SW2 }

#define BSP_BUTTON_0   SW1
#define BSP_BUTTON_1   SW2

// UART pins for Custom board
#define RX_PIN_NUMBER  16
#define TX_PIN_NUMBER  18
#define HWFC           false


#ifdef __cplusplus
}
#endif

#endif // CUSTOMBD_H

Here's what I see on the UART terminal running with the debugger.  It just hangs with "Unknown function at some memory location.  I tired w/o the debugger and it appears I just reset.

[00:00:00.000,000] <info> app_timer: RTC: initialized.
[00:00:00.000,000] <info> stack_guard: Stack Guard (128 bytes): 0x2000E000-0x2000E07F (total stack size: 8192 bytes, usable stack area: 8064 bytes)
[00:00:00.000,000] <info> pwr_mgmt: Init
[00:00:00.000,000] <info> task_manager: Task 0 created (name: 'rtt_cli:~$ ', stack: 0x20003D00-0x200040FF).
[00:00:00.000,000] <info> task_manager: Task 1 created (name: 'uart_cli:~$ ', stack: 0x20004200-0x200045FF).
[00:00:00.000,000] <info> app: BLE CLI example started.
[00:00:00.000,000] <info> task_manager: Task 3 created (name: 'Idle Task', stack: 0x20004C00-0x20004FFF).
[00:00:00.006,164] <info> app: Fast advertising.
[00:00:02.000,366] <info> app: Battery level update: 99
[00:00:04.000,366] <info> app: Battery level update: 98
[00:00:06.000,366] <info> app: Battery level update: 97
[00:00:08.000,366] <info> app: Battery level update: 96
[00:00:10.000,366] <info> app: Battery level update: 95
[00:00:12.000,366] <info> app: Battery level update: 94
[00:00:14.000,366] <info> app: Battery level update: 93
[00:00:14.005,371] <info> app: Connected.
[00:00:14.005,859] <info> task_manager: Task 2 created (name: 'ble_cli:~$ ', stack: 0x20004700-0x20004AFF).
uart_cli:~$

Any help or further debug suggestions would be appreciated,

Thanks,  Max

Parents
  • Hello,

    This example is found in the experimental folder, so I don't know whether I would recommend to start with this example, unless you are already far ahead in the development. 

    Is the device still connected, or does it disconnect from nRF Connect for Desktop?

    I believe what makes this example a bit unstable and confusing is the fact that it mixes together CLI both on UART and RTT, and that the logging is done both on RTT, UART and CLI. This makes something hang when the ble_cli is started. 

    In this ticket, which I handled a couple of months ago, we discussed some issues with this example and the log module.

    Best regards,

    Edvin

  • Edvin,

    I added NUS, nrf_cli.c, and nrf_cli_ble_uart.c to a ble_peripheral example (ble_app_blinky)  ... along with a number of other functions and configuration settings and it's working on my custom board.  It was a fair amount of work.  Some more testing will be run with additional CLI commands.  I hope this will be more stable than the experimental example.  Please let me know if there are some known issues with CLI over BLE.

    I rely heavily on the examples to teach me how to use your products and I think Nordic should have a stable and well tested one for ble_app_cli.  The CLI has been excellent for bringing up and profiling our prototype board with the UART connection.  It allowed me to implement a lot of robust tests and quickly interface to peripherals.  I was hoping to migrate much of that functionality to the BLE CLI and have a connected app use those functions without having to implement a complicated custom BLE service.  Again let me know if you think this might be risky for commercial product development.

    I'll mark your answer as verified.  Thanks again for the help.

    Max

      

Reply
  • Edvin,

    I added NUS, nrf_cli.c, and nrf_cli_ble_uart.c to a ble_peripheral example (ble_app_blinky)  ... along with a number of other functions and configuration settings and it's working on my custom board.  It was a fair amount of work.  Some more testing will be run with additional CLI commands.  I hope this will be more stable than the experimental example.  Please let me know if there are some known issues with CLI over BLE.

    I rely heavily on the examples to teach me how to use your products and I think Nordic should have a stable and well tested one for ble_app_cli.  The CLI has been excellent for bringing up and profiling our prototype board with the UART connection.  It allowed me to implement a lot of robust tests and quickly interface to peripherals.  I was hoping to migrate much of that functionality to the BLE CLI and have a connected app use those functions without having to implement a complicated custom BLE service.  Again let me know if you think this might be risky for commercial product development.

    I'll mark your answer as verified.  Thanks again for the help.

    Max

      

Children
No Data
Related