also check out
https://processing.org/reference/libraries/serial/serialEvent_.html
Example
import processing.serial.*;
Serial myPort;
String data; // latest arduino line
// rev
int[] datos; // as array of integers
StringList list; // stored lines
int listlong = 18; // many
int w= 640, h = 360; // canvas settings
void setup_serial() { // USB arduino..
printArray(Serial.list());
String portName = Serial.list()[1]; // adjust 0.. x port
myPort = new Serial(this, portName, 9600);
myPort.clear();
myPort.bufferUntil('\n');
println("try connect to "+portName);
}
void serialEvent(Serial p) { // handle serial data
data = trim(p.readStringUntil('\n'));
if (data != null) {
println(data); // print every GOOD line
datos = int( split(data, ",") ); // create int array (unused example )
list.append( data ); // OR store line as String list
if ( list.size() >= listlong ) list.remove(0); // erase the oldest? // for ( int i = 0; i<list.size(); i++ ) print(i+"_"+ list.get(i) ); println();
}
}
void settings() {
size(w, h);
}
void setup() {
list = new StringList();
setup_serial();
}
void draw() {
background(0, 0, 80);
for ( int i = 0; i<list.size(); i++ ) text( list.get(i), 10, 20+i*20 ); // running list of arduino lines
}