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) (970 Bytes)

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 ( 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)
  • 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.
  • 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 (