Comunicación Processing - Arduino

Antes de todo dar las gracias a todos por la comunidad tan buena que han creado.

He buscado durante un par de días, pero no entiendo cual puede ser el error. No creo que haga falta ni siquiera explicar el código. Cuando hago lo mismo desde un script en Ruby, en vez de Processing, funciona perfectamente, por lo que entiendo que el error está en el código de Processing. Lo que me ocurre cuando lo ejecuto es que se escribe en el monitor Serial, 6, 5 y saltos de líneas al azar.

Muchas gracias de ante mano!

Este es el código de Arduino:

void setup() {
  Serial.begin(9600);
}

void loop() {
  if (Serial.available() > 0) {
    Serial.println(Serial.read());
  }
}

Este es el código de Processing:

import processing.serial.*;

Serial port;

void setup() {
  port = new Serial(this, Serial.list()[0], 9600);
  size(400, 50);
}

void draw() {
  port.write(65);
  delay(500);
}

el problema es que usted envia el nemero 65, pero arduino lo interpreta como carcteres '6' '5'. prueba esto

String readString="";
float n=10.3;


void setup() {
    Serial.begin(9600);

      }

void loop() {
             int index=0;
      while (Serial.available()) {
      
        delay(10);
        if (Serial.available() >0 ) {
      char c = Serial.read();  //gets one byte from serial buffer
      readString += c;
                     index++; //makes the string readString
                    

             }
      }

    if (index >0) {   
           
    char carray[readString.length()+1];
       
    //readString.toCharArray(carray, sizeof(carray));
         readString.toCharArray(carray, sizeof(carray));
       
    n = atof(carray);
         

        Serial.println(n );

    readString="";
        
    }
           
         
              
   }