Solo 3DR reach M+ integration with GoPro


I wrote a GoPro photo trigger based on a ESP8266 Arduino wifi module, see code here:

I am waiting for my Reach M+ to arrive. I would like to add PPK cm accuracy to my OpenSolo 3DR on firmware 3.7.0-dev.

From what I understand, the reach M+ will catch the flash signal of the camera hot shoe to log the shutter opening exact time. If this how it works, what is the signal voltage needed by the M+ ?

My goal for now is to send the logging signal from the esp8266 to the M+ at the same time that I send the shutter command to the GoPro and try to synchronize the hole thing. I have an extra GPIO on the ESP8266 that I can use to trig the M+.

An other question related to synchronizing things together, the M+ use GNSS time, as well as the Reach Base, I presume, is that true ?

Thanks for your advices

Patrick Duhaime

1 Like

It will registre the change and create an event in the raw file if the signal goes up or down, but not log the opening time ( how long the shutter time is open). If the signal goes up and down to slow, you will have two events, one for the signal going up and one for the signal going down.
The voltage specs are found here

Be aware of the timedelay (in milliseconds) you introduce here. If the shutter is only few milliseconds slower to capture the image you will have a delay from the actual timestamp and when the photo is taken. This is probably the main issue most have trying to capture accurate timestamps on photos.

Not sure i understand this question, could you elaborate?

Thank you for your awnser and sorry for my bad english,

From what I undersand, The M+ will log the moment the camera was trigged, then, you enter those logs and the base logs into RTKLIB. The base and the M+ need to be synchronized for this to work, how is this synchronization done ? I presume they both, the M+ and the base, use the time from the GPS feed, the GPS message contains information that allows a receiver to convert GPS Time into Universal Time. So my question is what is the time used by the M+, GPS time or UTC time ?

My plan is to point the GoPro at a computer screen showing a clock in miliseconds and to trig the capture to compare the picture taken with the log on the M+.

Rover uses its own time and observation data against the refrence data from the base, also containing time and observation. Then rover compare and adjust to compute a solution based on difference between the two recivers.

It uses GPS Time.

Be sure you have a screen that has a fast enough update, like 1ms refresh rate and that there is no other bottlenecks slowing down the rate

Thank you again

What would be the error on a 10ms timing difference ? 50, 75, 100cm ?


That would depend on your speed the camera is moving.
With 15 m/s and 10ms delay, the offset would be 15cm

15m/s is a slow flying fixed winged plane

Thank you very much, I will report my progress here.

This project is done for the Université du Québec à Trois-Rivières. I am building an ag rover using an Edge controller, the rover is called Weedee.

The plan is to fly the Solo 3m above ground at 1.5m/s with an NDVI optical camera trigged every seconds or so. We can make it go faster between 2 captures and hover if it is needed. The goal is to map a wild blueberry field and to position every Kalmia plant that Weedee needs to irradicate. They both use the same base positioned at the exact same place.

I am very new to all of this, sorry if this is a noob question but when we are talking of 1.5 to 5cm error, that is on the hole map after post processing right ? I mean if there is an error of Xcm at Y degree, all Kalmia plant mapped will have this exact same error. If that is the case, it will be easy enough to correct and ajust the hole map after identifying 3 or 4 Kalmia plants on Weedee with video detection

Sorry no, that is just one of many you would stumble over. This issue came up based on the question you asked. But you have a good starting point having such low speed and low altitude.
Camera hardware is important too. Getting as little distorted image is the key, all the info is based on the quality of the image.

Awesome project btw :blush:

Yes, you’re right ! Just one of many for sure :smiley:

Hello again,

Still waiting for the M+ to arrive and now also waiting for a tripod and a high res screen to complete this project. The code is pretty much all done.

The code for my gopro hero4 silver is available here:

You can find the API for other GoPro hero4 models here:

Here is a screenshot of the ESP8266 webif:

You can start a survey after choosing the delay between captures, the offset delay to tweak your own shutter timing and the delay the Emlid M+ pin will stay on.

1 Like

This topic was automatically closed 100 days after the last reply. New replies are no longer allowed.