Does this fragment:
while ( buffer_at < buffer_end )
{
*buffer_at++ = Serial1.read();
}
make the assumption that the data arrives via Serial1.read() at a rate that is slower than a byte can be incremented? It would seem to me that, at 9600 baud, this loop is blasted through pretty quickly, or am I missing something?