A year ago, department head wanted to test some “auto-tracking” cameras and noticed that Sony’s SRG-A40 seemed quite reasonably priced, compared to most options. He asked me to test control for it. I ended up making 2 different modules – 1 for Crestron control systems, and 1 for Qsys control. After a long delay, I’ve decided to post these. Be advised, there are officially supported control modules for this camera available (I think Control Concepts made them), so if you want official support.. use their version. We didn’t have those available, when I needed to deploy these, but I learned a lot making my own!


Qsys

Repo: https://github.com/acsmith41/SonySRGA40

I started with Qsys, because I also wanted to learn their plugin development framework. I used a text controller component, at first, to test Qsys’ http lua library’s communication with the camera (being able to edit the script live, with a Qsys design in emulation mode, made development and testing really enjoyable).

The camera uses digest authentication (google to learn more about what that is). Since my previous experience with web requests was mostly with python’s ‘requests’ library, I was afraid that my spoiled self would have to come up with my own MD5 parser and digest auth logic. Thankfully, Qsys’ lua http library also has built-in digest auth support, so I was saved! This simplified the project and allowed me to focus on Qsys’ plugin framework documentation, the commands for the camera itself, and the user control logic. The results are public in the GitHub repo posted above, and are also available on Qsys’ developer exchange (look in the actual Exchange – I didn’t make a post about this).


Crestron

Repo: https://github.com/acsmith41/SonySRGA40CrestronControl

The rooms we have decided to deploy these cameras in use Crestron control, so I also made a module for that (linked above). First, I looked into Crestron’s http and https C# abstractions. I found that the http library doesn’t support digest auth, while the https library does. I decided to only allow https for this module both because I prefer to avoid plain http for security reasons, and it would allow me to continue avoiding my own MD5 and digest auth.

Since this Crestron module is backend-only (there’s no UI), there’s no toggle or intelligent logic in the module – it’s all just basic command functionality. I decided I’d rather keep more complicated logic project-based, so I don’t have to rebuild this module. Since I started with the C# https library, there are also SIMPL+ and SIMPL files included in the repo to allow a user to incorporate the module into a Crestron SIMPL program.