markbergsma / genlc

Unofficial Python module for managing Genelec SAM monitors
GNU General Public License v3.0
25 stars 1 forks source link

On-the-wire-protocol and direct RS485 access #1

Open vaizki opened 3 years ago

vaizki commented 3 years ago

First of all, great work here and hopefully I can contribute.

I would like to explore direct RS485 connectivity from generic USB dongles and TCP-to-RS485 bridges to the GLM network, without using the Genelec USB module. I have this type of hardware already, both higher end Moxa boxes and cheap-as-chips chinese bare boards.

Have you reverse-engineered the actual on-the-wire protocol or should I break out the logic analyzers?

markbergsma commented 3 years ago

Thanks!

I was indeed planning to explore that at a later point, but I first wanted to start with a setup more similar to a "proper" GLM kit to implement the basics.

My understanding is that the RS485 on-the-wire protocol is very very similar to what is sent over USB HID, and as you can see I've prepared the code for different transports in the future (transport.py). I think it should be pretty easy and straightforward to adapt.

A TCP-to-RS485 bridge (like I also have one lying around somewhere...) would also make it easier to support an install that's physically separate from the controlling host.

Contributions welcome, of course. :)

markbergsma commented 3 years ago

Keep in mind that some of the GLM network functionality appears to be implemented by the GLM adapter (e.g. the communication sent to/from GNet address 1), and you'd be missing that with a simple dongle/TCP-RS485 bridge.

vaizki commented 3 years ago

Sure, I expect only some kind of additional addressing frames / MAC that the GLM adapter wraps around the PDUs. And even if it doesn't work out with a bridge, I can contribute the details as documentation.