Novgorod / LANC-USB-GUI

Arduino LANC to USB with GUI
GNU General Public License v3.0
14 stars 0 forks source link

Can this work in the opposite direction #1

Open chansearrington opened 1 month ago

chansearrington commented 1 month ago

Hey @Novgorod,

I'm curious if this (or maybe another project your aware of) could help me solve me problem.

I'm looking for a way to convert a LANC controller (sending the signal to Zoom / Focus / Record / etc.) to a camera that has a USB-C input and can be controlled over USB video class (UVC)

Specifically....

I have some of these new Mevo Core Cameras that are amazing.

But they don't support / have a LANC input for a controller.

What they do have is a USB-C port that supports UVC and the ability to power a device over USB.

Supposedly, the device has a full linux stack on it.

If I can get something working then I can use the camera with Gimbals and Controllers that are meant to connect via LANC cables to cameras with LANC inputs.

Would this work?

If not, is there another solution that you're aware of that might?

Or, would you be interested in being commissioned to build something like this?

Novgorod commented 1 month ago

@chansearrington If I understood you correctly, you want to add a LANC "master" capability to the Mevo camera so that you can use LANC remote accessories with it? If so, this tool (and any that I know of) can't really help because it's only implementing the "slave" (or remote) side on the Arduino, not the "master"/camera side.

Such a LANC "master" emulator is significantly more complicated but should be feasible in principle. It would behave as a translator between the LANC remote (like your gimbal gear with remote zoom/shutter/whatever buttons) and the action you want to map it to (i.e. send the corresponding command to the Mevo camera via UVC).

Now the implementation of it could be quick and dirty or sleek and a nightmare... The easy way would be using a PC between the LANC side and the UVC camera, similar to how this project uses a PC to emulate a service remote for a LANC camera. I'm quite sure the Arduino is capable enough to emulate a minimal LANC master (i.e. generate correctly timed LANC frames) which the gear/remote would accept and send commands to. Then the software on the PC simply listens to the LANC commands and triggers the corresponding UVC commands. The fancy but nightmarish way is to eliminate the PC and make it a self-contained dongle. This requires a microcontroller which can act as USB host and which is fast enough (and has the right dev tools) to do UVC, at least the control channel. Probably an ESP32 or a Raspberry Pi pico or something in that class may be suitable. In any case, this requires proper embedded development to manage the USB stack for the UVC and simultaneously do the time-critical LANC bit-banging. I never did USB host stuff and have very limited experience with microcontroller programming, so that's a bit above my paygrade.

An Arduino-based LANC emulator for a PC should be doable though, which would simply spit out the received LANC commands from the remote over the virtual serial port. The rest is simple scripting how you want to react to the commands - control your UVC camera or change your RGB lighting or anything you want. It could also integrate with something like LIRC or other PC-based remote control frameworks. Of course there's not much appeal for using it as a camera gimbal when both the camera and the gimbal remote have to be connected to a PC...