This reference is for Processing 3.0+. If you have a previous version, use the reference included with your software in the Help menu. If you see any errors or have suggestions, please let us know. If you prefer a more technical reference, visit the Processing Core Javadoc and Libraries Javadoc.



// Example by Tom Igoe 
import processing.serial.*; 
Serial myPort;    // The serial port
PFont myFont;     // The display font
String inString;  // Input string from serial port
int lf = 10;      // ASCII linefeed 
void setup() { 
  // You'll need to make this font with the Create Font Tool 
  myFont = loadFont("ArialMS-18.vlw"); 
  textFont(myFont, 18); 
  // List all the available serial ports: 
  // I know that the first port in the serial list on my mac 
  // is always my  Keyspan adaptor, so I open Serial.list()[0]. 
  // Open whatever port is the one you're using. 
  myPort = new Serial(this, Serial.list()[0], 9600); 
void draw() { 
  text("received: " + inString, 10,50); 
void serialEvent(Serial p) { 
  inString = p.readString(); 

Description Called when data is available. Use one of the read() methods to capture this data. The serialEvent() can be set with buffer() to only trigger after a certain number of data elements are read and can be set with bufferUntil() to only trigger after a specific character is read. The which parameter contains the name of the port where new data is available, but is only useful when there is more than one serial connection open and it's necessary to distinguish between the two.
void serialEvent(Serial whichPort) {
whichPort Serial: the port where new data is available
statements any valid statements
Updated on June 6, 2020 10:05:51pm EDT