# Trigger Hadron camera with DO_SET_CAM_TRIGG_DIST

Source: https://forum.modalai.com/topic/5108/trigger-hadron-camera-with-do_set_cam_trigg_dist
Category: VOXL 2 and VOXL 2 Mini (https://forum.modalai.com/category/26/voxl-2-and-voxl-2-mini)
Tags: voxl-2
Posted: 2026-03-16 21:39:28 UTC by restore
Replies: 5 · Views: 1089

## restore · 2026-03-16 21:39:28 UTC

I have a VOXL2 running ardupilot and have a Hadron camera connected and configured with voxl-camera-server. I can take snapshots successfully.

I am trying to configure our drone to capture images at a specific distance interval during flight with the DO_SET_CAM_TRIGG_DIST parameter. Is there a way to do this with VOXL2 and ardupilot?

Thanks!

## Reply by Eric Katzfey (ModalAI staff) · 2026-03-17 00:17:55 UTC

@restore I don't think this is possible today. How did you set it up to take the snapshot? How is it triggered?

## Reply by restore · 2026-03-17 01:38:04 UTC (in reply to Eric Katzfey)

@Eric-Katzfey We have the Hadron configured with voxl-camera-server.conf 
```
"type": "ov64b",
"name": "hires",
....
"en_snapshot": true,
...
```
so we can take images with `voxl-send-command hires_snapshot snapshot`

I would love to configure the camera in Ardupilot with CAM1_TYPE and set DO_SET_CAM_TRIGG_DIST to a distance interval that I will capture images at.

If that is not directly possible, could you help me with a way to create a sort of interface script that sits on VOXL2 that listens for GPIO relay triggers or something like that? Then I can just call the snapshot command when triggered.

## Reply by Eric Katzfey (ModalAI staff) · 2026-03-17 15:56:37 UTC (in reply to restore)

@restore Are there any Mavlink messages coming out of ArduPilot that you could use to know when to take the snapshot? If so, create a new application that listens, via voxl-mavlink-server, to Mavlink and the message(s) you need. Then trigger the snapshot when it's needed. ArduPilot's external interface is Mavlink so it would be good to leverage Mavlink messages for this.

## Reply by restore · 2026-03-19 00:32:39 UTC (in reply to Eric Katzfey)

@Eric-Katzfey I configured the drone to have servo5 trigger the camera. When idle, servo 5 shows 1100. When triggered, it goes up to 1300. In the Mavlink messages I can now watch for SERVO_OUTPUT_RAW msg.servo5_raw and detect the rising edge which emulates the trigger. 
```
msg = master.recv_match(type='SERVO_OUTPUT_RAW', blocking=True, timeout=2)
if not msg:
    continue
pwm = msg.servo5_raw
```
I have done this on a ground station using pymavlink to listen for messages. What is the best way to listen for this mavlink message on the VOXL2? Reminder - I am using Ardupilot.

## Reply by Eric Katzfey (ModalAI staff) · 2026-03-19 16:51:52 UTC (in reply to restore)

@restore There are a few examples of code that listens for Mavlink messages in our SDK. For example, in voxl-mpa-tools, take a look at the source code for voxl-inspect-mavlink.c. https://gitlab.com/voxl-public/voxl-sdk/utilities/voxl-mpa-tools/-/blob/master/tools/voxl-inspect-mavlink.c?ref_type=heads

Probably would be a good idea to run voxl-inspect-mavlink on the mavlink_onboard and mavlink_to_gcs pipes to see which one has the desired Mavlink message in it. Then create your own application that listens for the Mavlink message on that pipe.
