double buffer for serial comms