Einzelne Bytes senden UART

Hallo,
Ich habe hier einen Sensor, den ich per software request antriggern muss, damit er antwortet. Dazu muss ein byte mit dem request, sowie eine byte mit der passenden checksumme übertragen werden.
Ich versuche und versuche, aber ich bekomme keine Antwort vom Sensor.
Jetzt will ich mal nachfragen, ob ich das überhaupt richtig übertrage:
Der Sensor verlangt als request: 0x01
Die checksumme dazu ist: 0xFE, also der Einerkomplement des requests.
Ich habe jetzt lso deklariert:

byte byte0 = 1;
byte byte1;
byte1 = ~byte0;

Serial.print(byte0, BYTE);
Serial.print(byte1, BYTE);

Leider kommt aber nichts vom Sensor zurück.
Ist da was falsch programmiert?
Danke.

Achso, hier mal der ganze Code zum Testen:

// set Baudrate here
#define baudrate 38400

int inByte;   
boolean timeout = false;
int i = 0;
// Two bytes to send for software request. Byte0 is the databyte, 
// byte1 is the checksum
// Databyte 0x01 means, gyro will return latest data
// Checksum is calculated as one's complement of all bytes before. 
// This case only databyte byte0.
byte byte0 = 1;
byte byte1;

void setup() {                
  // Setup an led output, so we can see if anything happens
  pinMode(13, OUTPUT);
  // Baudrate debug port  
  Serial.begin(baudrate);
  // Baudrate gyro
  Serial1.begin(baudrate);
  delay(2000);
}

void loop() {
  // First turn on led
  digitalWrite(13, HIGH);
  // Generate checksum byte from databyte. ~byte0 means bitwise 
  // NOT byte0
  byte1 = ~byte0;
  // Debug info on computers COM port
  Serial.println("\r\n\r\n");
  Serial.println("+++++++++++++++++ Test begin +++++++++++++++++++");
  Serial.println("Test conditions are:");
  Serial.print("Baudrate: ");
  Serial.println( baudrate );
  Serial.print("Sending Bytes for Software Trigger: ");
  // Show both bytes on debug channel to be sure the correct
  //  bytes are transmitted
  Serial.print( byte0, BYTE);
  Serial.print( byte1, BYTE );
  Serial.println("Timeout @ each test: 100ms");
  Serial.println("Receiving '-1' means: Receiver Buffer Empty.");
  Serial.println("\r\nSending Bytes now.");
  // Send databyte and checksum to gyro
  Serial1.print(byte0, BYTE);
  Serial1.print(byte1, BYTE);
  // Wait for gyro to reply
  Serial.println("Listening...\r\n");
  // Start a timeout timer
  unsigned long int stime = millis();
  // Unless timeout is reached, readout serial buffer connectet
  // to gyro
  while ( !timeout ){
    inByte = Serial1.read();
    Serial.print(inByte);
    // Timeout reached, print results to debug port
    if (millis() >= stime + 100){
      timeout = true;
      Serial.print("\r\nTest performed w/ Baudrate: ");
      Serial.println(baudrate);
      Serial.println("Bytes sent: ");
      Serial.println(byte0, HEX);
      Serial.println(byte1, HEX);
      Serial.print("Testcycle: ");
      Serial.println(++i);
    }
    // Buffer returns '-1' when empty, so -1 means gyro did not reply
    if ( inByte == -1 ){
        Serial.println("Test failed!");
      }
      // If anythiny else would be received, that would be 
      // called successsful at first
      else Serial.println("Test succsessful!");
  }
  Serial.println("\r\n\r\n");
  Serial.println("+++++++++++++++ Test end +++++++++++++++++++++");
  delay(1000);
  // Debug info end, turn off the lights
  digitalWrite(13, LOW);
  delay(1000);
  timeout = false;
  
}

du suchst die Funktion write

Mit print wird die Ausgabe immer in ASCII Zeichen konvertiert, egal ob BIN,HEX,OCT.. . Ist BYTE überhaupt ein passender Wert?

Zumindest meckert der Compiler nicht. Aber ich versuchs gleich mal mit write.
Danke schonmal, daran wirds wohl liegen.

Ok, es lief ebend kurz. Jetzt ist da wohl noch ein Fehler in der Verdrahtung (Steckplatine....)
Danke!