Using TinyPilot to Control a DSLR Camera

Back in February, Will Yarborough published a review of TinyPilot on his YouTube channel, SpaceRex. Ever since then, we've been talking about other ways TinyPilot and SpaceRex could collaborate.

Will is a photography enthusiast and uses a variety of DSLR cameras for his YouTube channel. But he was frustrated at the tools available for controlling his cameras remotely. Some camera manufacturers offer remote management software, but the connection is often flaky, and the stream lags badly. Worse, each solution is manufacturer-specific, so you need a different tool for each camera.

Could TinyPilot control a camera?

Will wondered if we could modify a TinyPilot to control all of his cameras.

It seemed like it should work in theory. HDMI output is nearly universal on DSLR cameras, so we could capture video the same way we do with computers. Tons of third-party manufacturers make accessories for controlling camera shutters, and the electronics are simple.

Voyager side view

On the software side, we wouldn't have to change much of TinyPilot's functionality. Obviously, a camera has no need for logic that controls a keyboard and mouse. I could tear that out and replace it with buttons to control the camera's focus and shutter. And because TinyPilot is built on the Raspberry Pi, it already has the hardware necessary to interface with electronic components.

Early versions

I created an experimental branch of TinyPilot for this project and shared it with Will. I don't own a DSLR, so I had no idea if this code would even work.

A few days later, Will sent me the video below. He had ripped apart his poor Voyager to access the GPIO pins and connected it to a simple circuit he had rigged up. It worked! He could fire his camera shutter from his browser:

With a bit more tinkering, Will had a complete solution. His camera's viewfinder appeared crystal clear in his browser, and he could activate the shutter from anywhere on his network:

Build a DSLR TinyPilot

Will published a video yesterday demonstrating his complete solution. It shows more of TinyPilot controlling a camera and teaches you to build your own DIY version:

Written by Michael Lynch, TinyPilot Founder and CEO