in general, rather than waste memory on yet another buffer, just send the bytes to the serial interface; let it buffer them, and let backpressure stall the calling thread if you run out of buffer space