Sending a start byte over serial

I want to get started with Arduino+Python computer integration, and after following the great tutorial over at principia labs, I’m kind of stuck.

I’m sending 255 as a start byte for my header, but when I send 255 over the serial monitor, the arduino says instead it sees 3 data points: 2, 5 and 5. This means the start Byte isn’t triggered. What should it be instead?

void loop() {
  if (Serial.available()>2) { // my message will have 3 bytes
    byte startByte =;
    Serial.print("byte found ");
    Serial.println(startByte, BYTE);
    if (startByte == 255) {
      Serial.println("found start byte");
      for (int i = 0; i < 2; i++) {
        receivedBytes[i] =;

It is printing
byte found 2
byte found 5
byte found 5

The serial monitor sends things in ASCII. If you want binary data, you'll have to use a different program. Of course, you could make your life simple by using '#' or something as a start byte instead of 255.

My eventual use will be with Python... so how could I send the 255 that way? I just want to make sure it works so that I can send numbers > 9.

Python has chr(255), but that will probably just send the ASCII code again, right?

Just avoid the character constructor, and send an int value (0xff is 255, and the hex guarantees an integer).