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

ERROR 8198 BLE UART on nRF52810 (Laird Connectivity PN 453-00005)

I used the ble_app_uart for pca10040e successfully on the DK52, now I'm trying to port that project onto actual nRF52810 chip.

This is my build configuration on SES (Segger Embedded Studio 4.22).

Under Build:

Memory Segments: FLASH RX 0x0 0x30000;RAM RWX 0x20000000 0x6000 (which is inherited from common configuration)

Under Runtime Memory Area:

Heap Size: 2048 bytes (inherited from common configuration)

Main Stack Size: 2048 bytes (inherited from common configuration)

Process Stack Size: 0 bytes (inherited from common configuration)

Under Debugger:

Target Device: nRF52810_xxAA (inherited from common configuration)

Under Preprocessor:

"BOARD_CUSTOM;CONFIG_GPIO_AS_PINRESET;FLOAT_ABI_SOFT;INITIALIZE_USER_SECTIONS;NO_VTOR_CONFIG;NRF52810_XXAA;NRF52_PAN_74;NRF_SD_BLE_API_VERSION=6;S112;SOFTDEVICE_PRESENT;SWI_DISABLE0;" from project in Common configuration

The code compiles and I can flash without a problem, the app starts and i can talk to it via nRF Connect and the Nordic UART app.

However, every time after about 3-4 minutes, it crashes with Fatal Error. The app consistently crashes after 3-4 minutes after reset.

Using the RTT viewer I can see the following error message:

<00> info> app: Debug logging for UART over RTT started.
00> 


<00> error> app: ERROR 8198 [Unknown error code] at :0
00> 


00> PC at: 0x00000000
00>


<00> error> app: End of error report
00>

I looked at the infocenter resources to do this:

https://infocenter.nordicsemi.com/topic/com.nordic.infocenter.sdk5.v15.3.0/sdk_for_custom_boards.html

https://infocenter.nordicsemi.com/topic/com.nordic.infocenter.sdk5.v15.3.0/nrf52810_user_guide.html

but no luck so far. Ultimately I won't be using the hardware UART module, so I commented out the following from main.c

//#include "app_uart.h"

commented out the entire functions:

void uart_event_handle(app_uart_evt_t * p_event)

static void uart_init(void)

Thank you for the support!

  • Forgot to add:

    Preprocessor:

    "BOARD_CUSTOM;CONFIG_GPIO_AS_PINRESET;FLOAT_ABI_SOFT;INITIALIZE_USER_SECTIONS;NO_VTOR_CONFIG;NRF52810_XXAA;NRF52_PAN_74;NRF_SD_BLE_API_VERSION=6;S112;SOFTDEVICE_PRESENT;SWI_DISABLE0;" from project in Common configuration

  • Hello,

    What SDK version do you use?

    Are you debugging while this happens? What BLE state are you in when this happens? Connected? Advertising?

    Are these the actual values that you get, or did they get corrupted when you copy pasted them?

    Can you try to define "DEBUG" in your preprocessor defines?

    Besides from this, I can see that you get ERROR 8198. (dec)8198 == (hex)2006, which is defined to NRF_ERROR_SOC_POWER_OFF_SHOULD_NOT_RETURN in the SDK, so it looks like you are trying to debug while the nRF wants to enter System OFF (shut down). If you define DEBUG in your preprocessor defines, you will probably see that it points to an APP_ERROR_CHECK(err_code); on a line right after calling:

    err_code = sd_power_system_off();

    And it is probably in main.c, if you haven't moved it. 

    The reason you get this error is that the chip can't enter system off while you are debugging. It should be similar if you use the nRF52832 while debugging. Another guess is that it happens quite accurately 180 seconds after you start the application (unless you connect to something). But if you have defined APP_ADV_DURATION to 18000 then the advertisements will time out after 180 seconds, and you will then try to enter System off mode. 

    So are my assumptions correct? Are you advertising, and the advertisement times out after APP_ADV_DURATION? And are you physically debugging?

    Best regards,

    Edvin

  • yes, it was a combination of the above, I figured it out and was going to update the ticket so you wouldn't have to waste your time, but the question was under review and I couldn't do it. Sorry for the trouble.

Related