[SOLVED] linux - serialosc runs and connects to neotrellis grid, other software does not connect to serialosc

I have serialosc successfully up and running on my arch linux PC, and when I run serialosc-device /dev/ttyACM0 (serialoscd doesn’t seem to work, so I use serialosc-device) it says:

serialosc [m4676055]: connected, server running on port 18335

However when I try and connect to the grid in any way, it doesn’t seem to work, with all applications I’ve tried failing silently (tried the libmonome life example, MonoM/supercollider grid study, and pymonome examples. I don’t know if a dedicated grid test program for linux exists).
If I manually start an osc server using oscdump 9999 and oscsend a /sys/info i 9999 message to localhost port 18335 (where serialosc is listening), I get this output, which shows that serialosc is running and detected the grid:

e49f0d6c.3cbb9064 /sys/id s "m4676055"
e49f0d6c.3cbe4041 /sys/size ii 16 8
e49f0d6c.3cbed740 /sys/host s "127.0.0.1"
e49f0d6c.3cbf4cb1 /sys/port i 8000
e49f0d6c.3cbfc222 /sys/prefix s "/monome"
e49f0d6c.3cc0ad03 /sys/size ii 16 8
e49f0d6c.3cc22ee3 /sys/rotation i 0

As this reports the grid’s port to be 8000, I have tried sending osc messages to localhost port 8000 with content like monome/grid/led/all i 1 or grid/led/all i 1 but this does not seem to have any effect on the grid either.
I’ve read that serialosc should be listening on port 12002 - mine doesn’t seem to be. Is this the reason things aren’t working? If not, how could I get things working?

To have the discovery service available via port 12002, you should start things up using serialoscd.

That said, I don’t know what hardware does the neotrellis grid use, but it might be possible that the detection mechanism on Linux doesn’t support it. Can you try building serialosc from the grid-st branch and checking if that helps?

Before building the above branch, you might need to remove the test for monome_props at these lines as well.

The neotrellis grid uses a Teensy 3.2 (presents as a CDC device). Its setup to emulate the mext protocol grids. It works generally with libmonome on norns.

I have tried building from the grid-st branch and it detects the grid in serialoscd (which the master branch didn’t), but it then throws an error, as if it’s looking for the protocol libraries in the wrong directory:

couldn't load monome protocol module.  dlopen said: 
	/tmp/libmonome-git/pkg/libmonome-git/usr/lib/monome/protocol_mext.so: cannot open shared object file: No such file or directory

I don’t get this same error building from the master branch. (although curiously, it’s also similar to the error I get building the AUR package from the master branch in yay, but not if I build it myself. That may or may not be useful to know?)

yeah, it looks like there’s a problem with the Arch package to me (PREFIX and DESTDIR got mixed up in the build scripts?). i think this shouldn’t happen if you remove any libmonome and serialosc packages and build libmonome and serialosc manually from source.

uninstalled the arch packages and built+installed libmonome and the grid-st branch myself and it all seems to work now! :smiley:

thank you!
(I should probably contact the package maintainer for arch linux and flag up the problems, although I suppose if I need a different branch then the packages aren’t really useful anyway)