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

Peripheral fault from DLE with s132 v3.0?

I'm trying to maximize BLE throughput between a central and peripheral (I'm programming both) running the new s132 SoftDevice v3.0. I can't achieve the maximum data payload that I expect.

Following the migration document, I added the ATT_MTU exchange procedure and the Data Packet Length Extension, setting the MTU and the PDU to 251 on both sides, and I enabled Connection Event Length Extension. I also increased the size of the characteristic being written to 251 and set the Central's transmit bandwidth to high.

My current issue is that when I call sd_ble_gattc_write() on the Central with more than 62 bytes, the Peripheral hits some fault before the application receives the event. Even though my sniffer doesn't like extended packets, it seems to suggest that the Central is sending them properly, so the problem does seem to be with the Peripheral's SoftDevice. Are there any more obscurely documented modifications I should have made during my migration? Using a fault handler gives me no good info and I'm not using an IDE so I can't look at a call stack or anything.

By the way, are there updated serial port examples (a central and a peripheral) on the way? The ones in SDK12 have been updated to the new API, but they don't look like they exploit the new SD features.

Parents Reply
  • @Petter Thanks for the re-explanation. I was able to finally overcome the NRF_ERROR_NO_MEM error. Indeed it is the ICFEDIT_region_RAM_start value in the linker configuration file (ble_app_uart_c_iar_nRF5x.icf) that you have to modify according to what the NRF_LOG_WARNING says. My main problem is that the NRF_LOG_WARNING does not work together with the NUS service since I guess that they both try to claim the UART (in uart_init() and in NRF_LOG_INIT(NULL)). My solution was to temporarily comment out the NUS UART related code in order to see the NRF_LOG warnings. I'm sure there must be a better way to do this.

Children
No Data
Related