Peripheral UART - 20 Byte Limitation

Hi folks,

I'm making an application which needs to transmit a few kB of config data (for a configuration utility), and I was hoping to do it via UART.

To that end, I loaded up the peripheral uart sample (nrf/samples/bluetooth/peripheral_uart), and I'm running into a limitation regarding a 20-Byte maximum transmission.

How can I increase that limit? Alternatively, how can I configure the UART to send batches of 20-Bytes one-at-a-time?

---------

In terms of question 1: "how can I increase that limit?"

I've integrated config options from the BLE throughput sample to increase the MTU.

I've increased the CONFIG_UART_BUFFER_SIZE.

I've read most of the posts about the 20 byte limit and all seem to circle around to adjusting the MTU.

In terms of question 2: "How can I send my large transmission in batches?"

I had hoped fifo buffers in this sample would take care of that automatically.

When they didn't, I followed the instructions in the README.rst and enabled the async module, which caused more problems.

-----------

I'm worried I'm going about this in a convoluted way, so I'd like to ask from a blank slate: what's the right way to transmit a few kB of data in and out of my device?

My environment is: 

BOARD = nrf52840dk_nrf52840

nRF Connect Toolchain v2.5.0

(in vsCode, testing BT behaviors with nRF Connect for Android, building in a Windows 11 environment via nRF Connect CLI build commands)

As always, I appreciate your time and am grateful for your support.

Best,

    - Finn

Related