Coder Social home page Coder Social logo

baardove / m5goremote Goto Github PK

View Code? Open in Web Editor NEW
17.0 3.0 4.0 8 KB

M5GoRemote Uses a cheap M5StickC with ESP32 as a GoPro Hero Wifi Remote Will start and stop video recording via wifi Support up to 10 GoPros Show recording status of each camera on the display Will rescan cameras to check their status Uses one to one connection, not the GoPro Remotes reverse connection. So works a bit slower. Shows signal strength Easy to configure

Home Page: https://www.youtube.com/watch?v=QGrIxi5znqY

C++ 100.00%

m5goremote's Introduction

M5GoRemote

Uses a cheap M5StickC as a GoPro Hero Wifi Remote

  • Will start and stop video recording via wifi
  • Support up to 10 GoPros
  • Show recording status of each camera on the display
  • Will rescan cameras to check their status
  • Uses one to one connection, not the GoPro Remotes reverse connection. So works a bit slower.
  • Shows signal strength
  • Easy to configure

VIDEO

https://www.youtube.com/watch?v=QGrIxi5znqY

CONTRIBUTIONS

The initial code is based on the open source version 1337Remote by Eurodesign.de http://euerdesign.de/2016/09/06/goproremote-goes-opensource-and-got-renamed/

And great help from the WifiHack documentation by KonradIT https://github.com/KonradIT/goprowifihack

PREREQUESITES

HARDWARE

M5 STICK C

GOPRO HERO 4+

  • Tested with GoPro Hero 4. Should work with newer models as well, but not tested.
  • Might support Hero 3+ in future.

CONFIGURATION

To avoid a lot of configuration and usability on the go, makes some assumptions of your setup. This can be changed to suite your needs.

// ASSUMES ALL GOPROS TO BE CONTROLLED HAS SAME SSID PREFIX // T.EX. GOPRO_CAM1, GOPRO_CAM2, etc. // AND THAT THEY HAVE SAME PASSWORD.

String wifiPrefix="GOPRO_"; String wifiPassword="12341234";

That is it, ready to rock n roll!

STARTING

When the M5 is booting it will scan the network for devices and list all devices with prefix and show them with signal strength. The strength is a bit random and doesnt really say much about the reality. Each camera will be queried for recording status.

The camera list will show names without Prefix

If one or more camera is already recording the global recording status will be set to recording.

The A-button (large one next to display) will activate the trigger and tell each camera to record.

If one or more camera is already recording it will stop recording. Only cameras in wrong mode will be contacted.

The display will show a RED Icon with "R" to show the camera to indicate it is in recording modus.

That is more or less what it does right now...

IDEAS FOR FURTHER DEVELOPMENT

  • Battery status for each camera
  • Dynamic display if less number of cameras (bigger font for readability), rotation based on accelerometer
  • Sorting of list to keep cameras in same order / currently listed in order as reported from wifi scan
  • Support for Hero 3+ (uses binary codes)
  • Support photomodes
  • Support Wake up and Sleep of GoPro
  • Support M5 dim display and sleep to save M5 battery
  • Support other camera platforms and audio recorders. One button to start / stop it all...

m5goremote's People

Contributors

baardove avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.