Ok, let me state up front: Trying to get Processing to read your Arduino on linux (ones that get the /dev/ttyACM0 port) is broken! For all the good work all the devs are doing, this has been the case for far too long.

I spent a whole afternoon trying everything suggested on the RTXT site, Processing site, countless forums, including:

  • The version mismatch is at fault
  • You should be in the uucp group
  • Downgrading/Installing the TXRX package from Ubuntu
  • Throwing your linux machine off the cliff (not really tried)

Nothing of these work. And they shouldn’t be needed, because the Arduino IDE uses RXTX and still manages to work.

Why, you ask? Because our lovely Arduino devs recompiled RTXT doing two essential things:

  • Forget about locking the tty file
  • Have RXTX search ttyACM ports

So, let’s see how we can use their version of RXTX with Processing and forget this nightmare once and for all 😉

First, download the Arduino software for both 32bit and 64bit architectures from here http://www.arduino.cc/en/Main/Software .

Untar those files to some temporary folders, for which I’ll be using the names <arduino-32bit> and <arduino-64bit>

Let’s also name the folder where you have Processing lying around as <processing>.

Do the following:

  • Backup the <processing>/modes/java/libraries/serial/library folder for some good measure.
  • Copy <arduino-32bit>/lib/RXTXcomm.jar overwriting the one in <processing>/modes/java/libraries/serial/library
  • Copy <arduino-32bit>/lib/librxtxSerial.so overwriting the one in <processing>/modes/java/libraries/serial/library/linux32
  • Copy <arduino-64bit>/lib/librxtxSerial.so overwriting the one in <processing>/modes/java/libraries/serial/library/linux64
  • Copy <arduino-64bit>/lib/librxtxSerial64.so to <processing>/modes/java/libraries/serial/library/linux64
  • You’re done! 😉

Or, you could compile them from source to see what works for you, but really, why go through it?

Please, please, if you find this useful, try and locate some of all those forum threads regarding this problem and let them know ^^

Advertisements