One day I was asked to redraw the layout and video operating area of a medium‑sized television O.B. Van. The central video router, used also for camera technical control, was a Blackmagic Design (BMD) Compact Videohub.
The camera operational control panels (OCPs – named as such in the specific case of that equipment; may differ in other situations) were equipped with joystick type control for iris & master black adjustment, with the possibility of “Joystick Override” operating mode: individual per‑OCP contact closure when its joystick is pressed. Sometimes this is referred also as touchdown function or joystick preview.
This operating mode is described, better than I could do myself, in an old Leitch GPI interface user manual lying around here somewhere:
When a joystick is operated on a given CCU, the contact closure is made and that CCU’s router input is selected. When the joystick is released, the contact closure opens and the router automatically returns to the previously selected input, usually a studio program video.
(ref.: RCP- Series: RCP-GPI64/32p ... Operation/Installation Manual)
The Joystick Override mode works in conjunction with the video router to which those CCUs are connected, but my problem was that the BMD Videohub does not have a direct GPI input for such a functionality and their GPI & Tally Interface does not perform properly a Joystick Override function. In that forum discussion I was then recommended to try to build an Arduino-based interface and write my own commands.
Well, I took the recommendation seriously, but soon I became disappointed: right then Arduino discontinued the network module (“shield”) – at least that was the situation at their own shop by the time I was studying this variant – with the exception of the Arduino Yún version, which I considered not suitable for my purpose. Therefore, I abandoned the Arduino road.
Then, from the options available to me, the Raspberry Pi caught my attention: attractive hardware, generous GPI port, true Linux operating system that allows restricted access levels – a mandatory feature, in my opinion, for a network configurable broadcast equipment.
First tests sounded promising, so here I am: the project for Joystick Override solution for BMD Videohub router(s) has started. I wrote from scratch the entire Joystick Override function software, in Python programming language.
Because usually I like to keep the quality bar at a higher level than the average, I enforced the same tendency here – so these were my major architectural guidelines:
Three months later the idea materialized in a true professional equipment, on par with other products in the same industry.
Because this has become a commercial project, it is now hosted on its own web page:
JOyVerride - Joystick Override GPI Input Interface
![]() ![]() |
---|