Camera trigger via GPS

Messages
22
Solutions
1
Reaction score
8
I've tried shooting ISS transits with the Moon. I'd like to try some with the Sun as well. Since I can't see the ISS before it crosses the face of the Sun, I'd like to find a way to automate triggering the camera. I can get data for when the transit will occur down to the 1/100th of a second.
Does anyone know of any software that can send a trigger based on GPS time for something like this? The platforms I have available are PC, Android, Arduino, and Raspberry Pi.
I'm thinking I may need to dig out my Arduino Uno and start coding.
 
I've tried shooting ISS transits with the Moon. I'd like to try some with the Sun as well. Since I can't see the ISS before it crosses the face of the Sun, I'd like to find a way to automate triggering the camera. I can get data for when the transit will occur down to the 1/100th of a second.
Does anyone know of any software that can send a trigger based on GPS time for something like this? The platforms I have available are PC, Android, Arduino, and Raspberry Pi.
I'm thinking I may need to dig out my Arduino Uno and start coding.
I've spent most of my career designing radio systems which are time synchronised to a GPS receiver.

The usual interface between a GPS receiver and some system is a one pulse per second signal, with the rising or falling edge very precisely set. This used to discipline the system's internal oscillator.

Then there is an additonal interface that allows the system to ask the GPS, "what is the time of the next or last edge?"

Unfortunately I do not see how this lends itself easily to your project as building a circuit to discipline an oscillator is not too hard, but checking how well it works (and if it works) is hard. And then time base adjustments also have to be dealth with.

Useful Tutorial

Another approach that might work is to make use of the fact that mobile phone systems are very accurately synchronised to GPS time. If you can write an application for a mobile phone to send a signal on its USB connector at a specific time this might meet your needs, and the time/frequency synchronisation is already taken care of.

I recall seeing somewhere that it is possible to build or buy a USB to RS232 convertor

There will be some unpredictable delay due to SW, but I think you will have that no matter what.
 
I've tried shooting ISS transits with the Moon. I'd like to try some with the Sun as well. Since I can't see the ISS before it crosses the face of the Sun, I'd like to find a way to automate triggering the camera. I can get data for when the transit will occur down to the 1/100th of a second.
Does anyone know of any software that can send a trigger based on GPS time for something like this? The platforms I have available are PC, Android, Arduino, and Raspberry Pi.
I'm thinking I may need to dig out my Arduino Uno and start coding.
I've spent most of my career designing radio systems which are time synchronised to a GPS receiver.

The usual interface between a GPS receiver and some system is a one pulse per second signal, with the rising or falling edge very precisely set. This used to discipline the system's internal oscillator.

Then there is an additonal interface that allows the system to ask the GPS, "what is the time of the next or last edge?"

Unfortunately I do not see how this lends itself easily to your project as building a circuit to discipline an oscillator is not too hard, but checking how well it works (and if it works) is hard. And then time base adjustments also have to be dealth with.

Useful Tutorial

Another approach that might work is to make use of the fact that mobile phone systems are very accurately synchronised to GPS time. If you can write an application for a mobile phone to send a signal on its USB connector at a specific time this might meet your needs, and the time/frequency synchronisation is already taken care of.

I recall seeing somewhere that it is possible to build or buy a USB to RS232 convertor

There will be some unpredictable delay due to SW, but I think you will have that no matter what.
Apologies to original post for off topic response. I hope some of this might be helpful or interesting anyway.

I have used USB to RS232 converters. They work for interfacing antique hardware to modern computers, but I do not expect that they could be used for precise timing control.

I have written software that uses Network Time Protocol (NTP) for precise time measurement, but that is long ago and I have forgotten much. Sometimes the code received data from a GPS receiver or from an atomic clock. NTP libraries in Linux are good so far as I can remember. Some GPS clocks run Network Time Protocol and on a dedicated point to point ethernet link one can predict the delay and measure the jitter (it is necessary to not have other traffic on that link or on those network interfaces and it might be necessary to poll instead of using interrupts). But, NTP handles all of that for you. There used to be information about NTP at nist.gov.

I have written real time software to control hardware, but that was very long ago and I have forgotten much. I do not today remember how I got it to work under Linux, but it was easy on Unix System V.

https://packages.debian.org/bookworm/gphoto2 has source code for a program to control a camera. Such source might be modified for real time use. A Raspberry Pi computer will run Debian. Such a Debian computer can be run with very few processes and somewhat predictable latency.

So far as I can remember, to get a near real time response from a Linux kernel, one must run the process as root. Some decades ago, one needed to build the kernel from source with unusual options, but I would expect it to be easier now since Linux often controls radios.

One would need to experiment and learn what is the delay and timing jitter for the system one builds and then anticipate the timing of the desired event.


 
Last edited:
I've tried shooting ISS transits with the Moon. I'd like to try some with the Sun as well. Since I can't see the ISS before it crosses the face of the Sun, I'd like to find a way to automate triggering the camera. I can get data for when the transit will occur down to the 1/100th of a second.
You may be solving the wrong problem.

NTP can certainly get you to within a second or so of real time and clock drift on modern computers is pretty low over a short time scale. So set up your shooting so that level of inaccuracy won't matter. Continuous shooting modes on modern cameras is likely enough that you can get maybe 5 shots per second, which guarantees you several shots during transit. If your in camera buffer can handle 20 shots, that means you have only need to start early enough to accommodate the "slop" in your clock.

As for the GPS time base, "the Internet will Provide!"

See http://ae5x.blogspot.com/2021/10/time-syncing-pc-with-gps-dongle.html and many similar.

Between these two ideas you can likely get your shot.

-- Bob
http://bob-o-rama.smugmug.com -- Photos
http://www.vimeo.com/boborama/videos -- Videos
 
I've tried shooting ISS transits with the Moon. I'd like to try some with the Sun as well. Since I can't see the ISS before it crosses the face of the Sun, I'd like to find a way to automate triggering the camera. I can get data for when the transit will occur down to the 1/100th of a second.
You may be solving the wrong problem.

NTP can certainly get you to within a second or so of real time and clock drift on modern computers is pretty low over a short time scale. So set up your shooting so that level of inaccuracy won't matter. Continuous shooting modes on modern cameras is likely enough that you can get maybe 5 shots per second, which guarantees you several shots during transit. If your in camera buffer can handle 20 shots, that means you have only need to start early enough to accommodate the "slop" in your clock.

As for the GPS time base, "the Internet will Provide!"

See http://ae5x.blogspot.com/2021/10/time-syncing-pc-with-gps-dongle.html and many similar.

Between these two ideas you can likely get your shot.

-- Bob
http://bob-o-rama.smugmug.com -- Photos
http://www.vimeo.com/boborama/videos -- Videos
Agreed. And with the latencies involved for triggering an exposure (esp over WiFi), he'll want to start shooting a few seconds before the event anyway, so having 1/100 precision isn't all that useful.
 
I've tried shooting ISS transits with the Moon. I'd like to try some with the Sun as well. Since I can't see the ISS before it crosses the face of the Sun, I'd like to find a way to automate triggering the camera. I can get data for when the transit will occur down to the 1/100th of a second.
Does anyone know of any software that can send a trigger based on GPS time for something like this? The platforms I have available are PC, Android, Arduino, and Raspberry Pi.
I'm thinking I may need to dig out my Arduino Uno and start coding.
Further (or perhaps instaed of) my previous post and considering feedback (esp JohnMoyer) and other comments, I went back to the drawing board.

Garmin sells GPS16X-HVS GPS modules with a 1PPS output for a bit over $100. There are also two RS232 COM ports for time and device status output and device configuration.

This could be connected to one of the small single board processors like Raspberry PI or Arduino. Additonal electronics would be required.

Interfaces:

Visual Display to display GPS aquisition data and camera trigger status (LED display perhaps)

User input control to set camera trigger time (could be keyboard or possibly just mechanical switches)

Camera Trigger - perhaps use a modified shutter release cable, replace the manual contact part with an optically isolated FET switch

the 1PPS signal is connected to a seconds counter which can beset or preset by the microprocessor.

Strategy

Don't use the microprocessor to directly trigger the camera, it will never be fast enough or consistent enough.

Instead, the microprocessor determines when the 1PPS edge will be the tirgger time, and opens a gate (eg. and gate) that passes the next 1PPS edge to the camera triigger.

Enhancement - If smaller time resolution is required, or more accurate delay compensation,

Create a 1kHz clock from the microprocessor clock or a TCXO using digital circuitry. eg divide the signal from a 10MHz TCXO by 10,000

Instead of passing the 1PPS directly to the camera trigger, pass the 1PPS signal to the enable of a countdown counter, which counts the 1 kHz clock. The countdown start value is preset by by the microprocessor, when the count reaches zero, the shutter release is triggered. eg. if the transit time is at 0.31 seconds after the next second, but there is an inherent system delay of 0.18 seconds, then the microprocessor presets the countdown counter to 130.
 
Thanks all -

Based on the feedback here, I'm thinking i'll go with a Raspberry Pi. It's small, doesn't take a lot of power, and has USB ports that I can connect a GPS dongle as well as cables to control my camera with using gphoto2.

Not only am I interested in triggering shots for ISS transits, but there's the Total Solar Eclipse coming up in 2024. While an Arduino can trigger my shutter at a predetermined time, I think the RasPi along with gphoto2 will let me not only trigger the camera, but also send timed commands to the camera to control the shutter, aperture, and ISO that I'll need for the eclipse.

There already exist several computer programs for controlling Nikon and Canon systems for photographing eclipses, but nothing I can find for Sony.

And, it turns out, I have a camera intervalometer, the LRTimelapse ProTime 3.0, that can trigger a camera at a specific second, within about 0.5 seconds or so. I'll probably use that for ISS transits in the meantime. LRTimelapse PRO Timer 3 und 2.5

If anyone has other ideas, I'm happy to hear them!
 

Keyboard shortcuts

Back
Top