Datasheet

TX FIFO Buffer Handling
Starting with firmware version 0.6.7, when the TX FIFO buffer is full a 200ms blocking delay will be used to see if any
free space becomes available in the FIFO before returning ERROR. The exact process is detailed in the flow chart
below:
You can use the AT+BLEUARTFIFO=TX (https://adafru.it/id3) command to check the size of the TX FIFO before sending
data to ensure that you have enough free space available in the buffer.
The TX FIFO has the following size, depending on the firmware version used:
Firmware <=0.6.6: 160 characters wide
Firmware >=0.6.7: 1024 characters wide
AT+BLEUARTTXF
This is a convenience function the serves the same purpose as AT+BLEUARTTX, but data is immediately sent in a
Note: The TX FIFO full check will happen for each GATT transaction (of up to 20 bytes of data each), so large
data transfers may have multiple 200ms wait states.
It IS possible with large data transfers that part of the payload can be transmitted, and the command can still
produce an ERROR if the FIFO doesn't empty in time in the middle of the payload transfer (since data is
transmitted in maximum 20 byte chunks). If you need to ensure reliable data transfer, you should always
check the TX FIFO size before sending data, which you can do using the AT+BLEUARTFIFO command. If not
enough space is available for the entire payload, add a SW delay until enough space is available. Any single
AT+BLEUARTTX command can fit into the FIFO, but multiple large instances of this command may cause the
FIFO to fill up mid transfer.
© Adafruit Industries https://learn.adafruit.com/adafruit-feather-32u4-bluefruit-le Page 113 of 211