Arc Serial/OSC Protocol Documentation?

In a Q&A with CreateDigitalMusic, @tehn mentioned plans to open source the serial and OSC protocol details for the Arc, has that been detailed somewhere or should one look through the serialosc source on GitHub? Are the technical capabilities and how they are reflected in the protocol documented somewhere between the rev 1 and rev 2 devices?

I have a project that I would like to use an Arc 2 or Arc 4 as input, and I’d be interested in going straight to serial if it would simplify setup/deployment requirements and potentially a modicum of latency by not shimming through serialosc.

the link is:

and you’ll want to generally check out

the serial and osc have always been open source.

1 Like

Excellent, thank you! I was looking at the Arc docs page which seemed rather bare.

The serial docs paired with the libmonome project had enough info to build a simple library sitting on serial to handle encoder input and drive the LEDs! That said, there are a couple of things I thought I’d ask for clarification on:

  1. The serial port connection specifics aren’t mentioned but I’m using the following without much issue: 115200 baud / 8 data bits / no parity / 1 stop bit / no flow control
  • Is there any way to detect a 2011 vs 2012 Arc?
  • Strangely when requesting the firmware version, I’m getting a seemingly unrelated response - REQ: [0x0F] RESP: [0x05, 0x00]
  • The docs are inconsistent in the format of the device identifier response, up top it is suggested that the string is 64 bytes, but later in the docs and in practice I am seeing 32.
  • Is the firmware for the Arc available on GitHub? I found but it seems to be for the grid devices.

The Orca thread points out that the skeleton library supports Arc, so I’ll start there for firmware investigations.

what you want is libmonome:

it allows a direct connection without using serialosc (serialosc is built on libmonome)

regarding the serial.txt, yes there may be errors in it-- it’s a largely ignored document as more or less everyone uses serialosc-- you’d need a very specific situation to code to serial. even on raspi/etc serialosc works great. i know for a fact that firmware version request isn’t implemented in firmwares.

i don’t believe there is a way to identify 2011 vs 2012 arcs, off the top of my head.