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,

    Thanks for the prompt response and information.  This example is indeed much more complex than what I need or would want to support.  My development has proceeded with a UART cable and I was hoping to use that as a base for a BLE CLI implementation for a mobile device where the UART cable is replaced by the BLE link.  I'm going to see if I can create a simpler implementation with NUS.  I'll report to this post later on how it goes.

    Thanks again,  Max

Reply
  • Edvin,

    Thanks for the prompt response and information.  This example is indeed much more complex than what I need or would want to support.  My development has proceeded with a UART cable and I was hoping to use that as a base for a BLE CLI implementation for a mobile device where the UART cable is replaced by the BLE link.  I'm going to see if I can create a simpler implementation with NUS.  I'll report to this post later on how it goes.

    Thanks again,  Max

Children
No Data
Related