VL.Visca with DMX to Visca(RS485) controller

Control cameras with Visca protocol, includes DMX to Visca(RS485) modules and hardware schematics.


  • VL.Elementa
  • VL.OpenCV
  • VL.Devices.Enttec
  • VL.IO.Xbox360Controller

PTZcontrol.vl (427.2 KB)
485control.zip (1.0 KB)

This is my first (working) app written in VL so the refined coder and sensible soul may find some offensive language, bear with me

Ok, Visca control, but why using DMX? First of all I had 2 units of Minnray 1201 (HD Integrated Camera UV1201 | Minrray video conferencing camera) which being fixed needed some kind of pan/tilt system, I built a pan/tilt system with printed parts, step motors, drivers, worm gears, Python API on a Raspberry, that is, a mess, so I thought a cheap fixture would do it for me and it did. It also comes handy as you can easily find DMX distribution and cabling in any show, theatre etc. so that is a plus too.


  • GUI widgets (Elementa) to control Pan, Tilt, Zoom, Focus, Focus(Auto/Manual)
  • External input with Xbox360 or similar
  • Camera preview
  • Send to UDP with Ethernet cable / Wifi
  • Send to DMX (includes schematics for an Arduino based DMX to Visca controller)
  • 4 presets which include Pan/Tilt, zoom and focus positions (in DMX mode the presets are stored by vvvv, in UDP mode presets are stored in camera)
  • Control for16bit fine stepping


  • Write presets to disk (only for DMX mode) - DONE
  • Invert fine 8bit direction (some DMX heads have that inverted 255 to 0)
  • Dropdown panel in GUI to control other camera parameters: brightness, shutter, iris, w/b etc - DONE.
  • Naming? I don´t know how to name properly the patches
  • Preset system seems a bit hacky
  • Invert directions of Pan/Tilt

I don´t actually use the TTL to RS485 on output to camera, connecting pins 9 and 11 (or whichever you chose) to the camera just works (I admit that I don´t know why it works, it shouldn´t).

A cheap chinese DMX fixture with the camera and the electronics (I know I know, I´ll fix the soldering and cabling work), all cables are routed inside, including the SDI cable, power for the camera and Arduino is drawn from the fixture itself).

This is the camera I am using connected with UDP (https://minriglory.com/products-item/hd-ptz-camera-uv510a/)


HI! I just got the link from a friend of mine and I want to know if this project ist still working? I am looking for a working interface from DMX to a PTZ camera to control P + T + F + Z.

Yes it is working you have the 2 options to send to visca control or to dmx and the electronics have not been changed, I have to say that we are not using that DMX thingy anymore but should work and if you have any issue let me know.
EDIT: I have re-read your post and it seems to me that you only need the Arduino part, as you can see in the code only Focus and Zoom are implemented (as we used a DMX head for the movement) anyway it is pretty straight forward to implement pan and tilt just add some DMX channels and get the proper visca control IDs

Please excuse me for replying so late, but I’m usually not in this forum at all and have not seen that you replied so quickly.
I am really interested in the possibility of controlling certain parameters not only with the relevant controllers but also with lighting consoles. For that I need a working interface. Maybe it will be easier if I explain the whole thing to you once, if you can see the possibilities to help me?

Hallo Thomas please try to explain as detailed as possible what you need as it is not so clear, then we can work something out, also feel free to drop in the Element chat https://app.element.io/#/room/#vvvv:matrix.org

Dear io,
what I want to do is to control the mentioned functions via a lighting desk, especially the store function in those consoles are of interest, as in the standard PTZ controller the storage/movement of the cameras is still very far behind what is possible with a DMX board. So I would make a personality on the board for the camera, connect it to the interface DMX > VISCA and could control, beside the other standard controller, the four functions PTZF. So with this setup I have manual control and programmed control of all the PTZ camera simultaneously.

But because you wrote “Hallo” i am guessing that you are german?

Italian living in Spain here. So you basically just need the Arduino part of the project, as mentioned before only Focus, Zoom, Brightness and Manual/Auto focus are implemented in the code but having that as a starting point you can easily get to the rest of functions. Are you any familiar with the Arduino IDE environment?
Some considerations:

  • I would probably use a 16bit message (2 channels each) to control pan/tilt
  • in my case I could feed ttl visca to the cameras without the final ttl-rs485 converter but that may depend on the camera manufacturer

Dear io

Do you know this one?

Let me try it soon too.