GoPro_RC_Remote_v01_02_20170301.zipHi everyone!

I'd like to share a little project I have been working on, perhaps it may be of use to some. Let me know what you think!
It's not totally finished, but for now it seems to be working.

I made a little device in order to control my GoPro 4, which is mounted on a brushless gimbal under my Pixhawk controlled Tarot 680 hexacopter.

Two switches on my Taranis are used for starting/stopping the recording, switching between video and stills and to control zoom level.

It is based on ESP 8266, which functions as a tiny Arduino with WiFi functions.

The ESP is connected to one channel of my RC reciever. It reads this signal and then decides what control commands to send to the GoPro over wifi.

The hardware needed for this is:
- ESP-03 module
- 3.3 V power regulator ( The ESP doesn't like 5V on Vcc! The GPIO's are OK with it though)
- resistor of 200 Ohm or so (not critical)
- small switch
- pcb
- wire
- shrinksleeve

For flashing the firmware, a USB-UART converter is needed.
Programming is done in Arduino, make sure to add the ESP arduino library.

On the Taranis, I programmed these mixes:

It all seems to work quite well.

I must admit that I am not a programmer, so things may be inefficient or even weird. One of the thing I don't like is using the pulse-in function for reading the RC input. I wanted to use an interrupt, but somehow this causes the ESP to crash and reset every few seconds.

Also i want to make some more improvements; right now it only supports GoPro 4, but it is not difficult to add Gopro3 commands. Also the SSID and password are hard-coded; it works, but it's not very user friendly.

So any tips and advice is welcome, or if someone wants to improve it themselves: pease do :-)

Any questions? Please ask.

Some final notes:
-If you want to try it,  don't forget to modify the SSID and password of your GoPro in the code.
- Currently the code only works for GoPro Hero4. The commands for other types are sometimes slightly different; you can find them on
It would be cool to let the code detect the type of camera itself!

- Both ESP and my Taranis work on 2.4 GHz. So far I have not noticed any problems with the RC link, but make sure to do a rangetest before first use!

- it turns out the Hero 4 doesnt seem to have a "narrow" zoom setting  for all resolutions. So maybe I'll find another use for this switch position.

Ps I also made a post on RCgroups, but so far no reactions:

Views: 1514

Comment by Sergio Silva on March 4, 2017 at 12:02pm

Nice! I am planning to do something alike, but instead of using the PWM, I intend to use the mavlink command CAMERA_TRIGGER, using the ESP as a mavlink wireless radio!

Comment by Marc Dornan on March 4, 2017 at 8:30pm

I saw your RCGroups posting and have now left a comment. Nice effort. I will give this a whirl. I also think a Mavlink decoder would actually be great as well.

Comment by Tsahi Mizrahi on March 5, 2017 at 12:13am

Nice effort, will definitely try it. 

Comment by EvH on March 5, 2017 at 2:23pm


Mavlink would probably be fairly easy to implement and its a good idea... maybe I'll have a go at it, but not in the very near future.

Comment by Jimmy Oliver on March 6, 2017 at 11:06am

Camera Trigger would be awesome!

Comment by Hein du Plessis on March 12, 2017 at 9:13am

Genius! Thank you for sharing! I've just finished decoding a PPM signal using a ESP8266 and controlling a thermal camera's menus. Such a revolution, these little devices!


You need to be a member of DIY Drones to add comments!

Join DIY Drones

© 2019   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service