# Processing Serial library alternatives?

**URL:** https://discourse.processing.org/t/processing-serial-library-alternatives/47609
**Category:** Libraries
**Created:** [December 12, 2025, 4:37pm UTC](https://discourse.processing.org/t/processing-serial-library-alternatives/47609 "2025-12-12T16:37:02Z")
**Posts on this page:** 1
**Showing post:** 5

<div class="post-metadata">

### Author: ![glv](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/glv/32/18785_2.png) [@glv](https://discourse.processing.org/u/glv)
#### Post date: [December 16, 2025, 11:53pm UTC](https://discourse.processing.org/t/processing-serial-library-alternatives/47609/5 "2025-12-16T23:53:52Z")

</div>

> [@villares](#):
>
> What is missing for you from the Processing Serial library?

Hello @villares ,

One example:

> <https://github.com/processing/processing4/issues/1256>
>
> \### Most appropriate sub-area of Processing 4?
> 
> Events, IO
> 
> \### Processing versi…on
> 
> 4.4.7
> 
> \### Operating system
> 
> Windows 10
> 
> \### Bug description
> 
> I noticed that when you physically remove a connected serial device processing does not detect it and serial.list() does not update.
> 
> \### Steps to reproduce this
> 
> 1.connect serial device.
> 
> 2.run below sketch (set correct serial port).
> 
> 3.unplug serial device.
> 
> 
> \### snippet
> 
> \`\`\`processing
> 
> import processing.serial.\*;
> 
> Serial myPort; // Create object from Serial class
> 
> void setup() 
> {
> size(200, 200);
> 
> String portName = Serial.list()\[0\];
> myPort = new Serial(this, portName, 9600);
> }
> 
> void draw()
> {
> println(Serial.list());
> delay(500);
> }
> \`\`\`
> 
> 
> \### Additional context
> 
> The https://fazecast.github.io/jSerialComm/ library can detect hardware disconnects.
> 
> \### Would you like to work on the issue?
> 
> No, I’m just reporting the issue

Another example:

> [@Is there an associated timeout function when using Serial Buffer](https://discourse.processing.org/t/is-there-an-associated-timeout-function-when-using-serial-buffer/30886):
>
> I have been testing the [Serial library buffer() function](https://processing.org/reference/libraries/serial/Serial_buffer_.html) and it works very well with Serial Event. But I am left wondering what happens if the Serial port is somehow disrupted. Is there a timeout parameter somewhere that I can use (a bit like in Arduino with it’s [Serial.setTimeout() function](https://www.arduino.cc/reference/en/language/functions/communication/serial/settimeout/)), or is there some other way to still trigger the Serial Event (or trigger a flag/event to notify) to read or even clear the data.

The Processing library is a modified version of jSSC:

> <https://github.com/processing/processing4/blob/main/java/libraries/serial/library/jssc.txt>

The Processing version is a user friendly version; some of the features of _jSSC_ may not be exposed to us.

I _may_ try using the jSSC library (add the jssc.jar) directly:

- [GitHub - scream3r/java-simple-serial-connector: Official jSSC (Java Simple Serial Connector) repository](https://github.com/scream3r/java-simple-serial-connector) (original 12 years old)
- [GitHub - java-native/jssc: Java library for talking to serial ports (with added build support for maven, cmake, MSVC)](https://github.com/java-native/jssc) (forked from above)

_[jSerialComm](https://fazecast.github.io/jSerialComm/)_ is an option for users that want advanced features.  
I used it alongside the Processing Serial library here:  
[Processing not finding Arduino Uno - #5 by glv](https://discourse.processing.org/t/processing-not-finding-arduino-uno/47602/5)

`:)`

---

_[View the full topic](https://discourse.processing.org/t/processing-serial-library-alternatives/47609)._
