I might be onto something...
This is what I had found in ibustrx
// assume bus is clear for sending after a short period of inactivity
if (tx_msg_waiting && millis()-t_last_rx_byte >= 32) { // send all bytes in the transmit buffer
for (uint8_t b = 0; b < tx_bytes; b++) { serialPort->write(tx_buffer[b]); }
tx_msg_waiting = false; // clear tx wait flag }
Condition millis()-t_last_rx_byte >= 32 cant become true if there wasn't any rx byte at all.... Will try to remove that, but I'm not at home right now.