Noltari/pico-uart-bridge

Trying to quickly send more than 3 characters results in corruption

lmore377 opened this issue · 2 comments

This might explain #10 #12 and #13. Basically if you try to send more than 3 characters at once the datastream gets corrupted and all characters after the second character are replaced with the last character in the string. This happens on linux (not sure about windows) and you can see these results by doing loopback on either serial port, opening it in a serial terminal emulator like gtkterm and pasting more than 3 characters or using echo like below. This happens with any baud rate and across multiple picos

Here's some examples (-n is used because otherwise the characters are replaced with newlines):

echo -n 123 > /dev/ttyACM0 = No corruption
echo -n 1234 > /dev/ttyACM0 = 1244
echo -n 12345 > /dev/ttyACM0 = 12555
echo -n "this is an example of text" > /dev/ttyACM0 = thtttttttttttttttttttttttt

I'm seeing this same behavior as well. Receiving characters through the UART seems to have no issue, but sending bursts of more than a few characters out of the UART results in the behavior noted by @lmore377.

I did try enabling the FIFOs on the UARTS (by modifying the call to uart_set_fifo_enabled in init_uart_data), and that allowed 32 - 33 characters to be transmitted correctly; but further characters in the message were then sent as the last character in the message.

Fixed by #15