PaulS:
So for our single byte of data, use sprintf() to convert to a null-terminated (thus 3 element) char array and then serial.print() that?
Yes. Only two bytes will actually get transmitted.
On the other hand, you could use Serial.write() and skip the whole conversion process.
Or, you could send all the data as strings, with delimiters, and it wouldn't matter how long the string is. "123!" or "1!" or "122864662!".
Well, for KISS reasons I was going with a start token character and a defined data structure after that. Because at least one of the two data bytes could potentially be any value from 0 to 255 there would be no way to differentiate a single byte start token from a potential data value. Also, the conversion from uint8_t to ASCII encoded hex is simple even without sprintf(). The receiver would just need to watch for the start token and then the next 4 characters would be the ASCII encoded hex value of the two bytes of data. The data is already well defined because it comes from an attached I2C device that outputs a count of 0.02 degree increments above 0 Kelvin. Eventually he wants the temperature as a float so I'm having him convert the data to a float on the receiver end instead of trying to transmit the float.
Simple data only requires a simple solution. And, keep things simple until absolutely necessary to add complexity.