This affects some Macintosh computers released as of late 2020, and almost all Macintosh computers that are sold today. It affects any sketch that uses
import processing.serial.*, such as the examples in Libraries > Serial. It also affects any sketch that uses a contributed library that uses the serial port, such as SerialRecord for Processing.
Do You Need This Workaround?
- Are you writing code that uses the Serial library (for example, to receive or send data to an Arduino)? If you are not using the serial port, you do not need this workaround.
- Are you using a version of Processing that has the problem? If you are using Processing 3, you do not need this workaround. If you are a version of Processing newer than 4.0.1, you may not need this workaround. (As of today, the latest Processing version is 4.0.1. It looks like the fix for this problem is on track for inclusion in the next release of Processing, but until that actually happens, it is not possible to be certain of this.)
- Are you using an Apple Silicon computer? Identify your computer. Choose “About this Computer”, in the Apple menu. Look next to the label “Chip”. If your chip is not identified as an “Apple M1” or “Apple M2”, you do not need to follow these instructions.
- Close the Processing application, if it is open.
https://github.com/java-native/jssc/releases/download/v2.9.4/jssc-2.9.4.jarto your computer.
- On your computer, rename the downloaded file
- In the Finder, select the menu item Go > Go to Folder….
/Applications/Processing.app/Contents/Java/modes/java/libraries/serial/library/and press return. (The easiest way to do this is to copy the name from this page, and paste it into the Go to Folder text entry area.)
- Move the
jssc.jarfile, that you downloaded and renamed in a previous step, into this “library’ folder. The Finder will warn that An older item named “jssc.jar” already exists in this location, and ask whether to replace it. Click Replace.
- Now, launch the Processing application.
At this point, the built-in examples that use the serial port, and the SerialRecord examples, should work.