Skip to content

marcotidei/LAURACam

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

50 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

L.A.U.R.A. Cam

LoRa-powered Action-camera Ultra-long-distance Remote Actuator

L.A.U.R.A. Cam is a remote control system designed to trigger GoPro camera recording from long distances using LoRa communication.
It is not designed to replace the GoPro App entirely (it does not support live preview or setting changes yet), but to overcome the distance limitations imposed by the BLE protocol—particularly in situations where it is not safe or possible to stay close to the GoPro when the action starts.


System Overview

The system is built around two devices:

  • Controller – Communicates with the GoPro via BLE, receives LoRa trigger/wake-up commands, and sends back status updates.
  • Remote – The physical remote control used to send triggers, request status updates, and wake up cameras from standby over LoRa.

This design allows users to control cameras far beyond the typical BLE/Wi-Fi range, while still ensuring recording confirmation and camera feedback.

BLE Camera Control

The Controller uses BLE to wake up the GoPro, send commands, and query the current recording state — all wirelessly!

Low Power Architecture

Optimized for Heltec LoRa (ESP32) boards, supporting sleep mode and wake-up features to minimize power draw.
The system can also send BLE wake signals to GoPros in power-save mode — ideal when remote cameras are sleeping to conserve battery and reduce the risk of overheating.

At the moment, the controller assumes to be powered by an external source like a power bank. A future update to the Controller will add battery management similar to the one already implemented for the Remote.

Remote OLED Display

The status of each camera is shown on the Remote’s screen, including signal strength, recording status, alerts, and health indicators.

Multi-Device Support

Control up to 3 cameras with unique IDs and receive independent feedback from each.


Hardware Compatibility

Tested and optimized for:

  • Heltec Wireless Stick V3 (Controller)
  • Heltec LoRa 32 V3 (Remote)
  • GoPro cameras that are compatible with the OpenGoPro API

Suggested 3D-Printable Cases

Here are some recommended enclosures to protect your L.A.U.R.A. Cam hardware:

Note on Display Configuration

The Wireless Stick V3 and the LoRa 32 V3 have the same hardware features,
except for the OLED display, which is twice as large on the LoRa 32 V3.

To ensure correct display behavior, set the pixel count in config.py based on your board:

Heltec LoRa 32 V3

OLED_WIDTH = 128
OLED_HEIGHT = 64

Heltec Wireless Stick V3

OLED_WIDTH = 64
OLED_HEIGHT = 32

Performance Tips

To improve memory usage and execution speed on MicroPython:

  • Compile all .py modules into .mpy using mpy-cross
  • Upload the compiled .mpy files to your device

Project Status

Work in Progress – Core functionality is stable and actively tested.

Current Capabilities

  • Reliable long-range recording triggers
  • BLE camera wake-up
  • Real-time recording feedback
  • Multi-camera support
  • Health feedback based on overheating and low temperature detection

Planned Improvements

  • Improve LoRa communication
  • Add battery management for GoPro and Controller battery
  • Configuration menu for the Controller
  • Adjustable heartbeat interval
  • Remote check of camera settings

Installation Instructions

Recommended Setup via Thonny

We suggest using Thonny IDE to install MicroPython and manage libraries. This setup has been tested on MicroPython versions 1.24, 1.25, and the 1.26 preview.

Installing MicroPython on Your Board

  1. Connect your ESP32 board via USB.
  2. Open Thonny and navigate to Tools → Options → Interpreter.
  3. Select your device and click "Install or update firmware".
  4. Choose one of the supported MicroPython versions and complete the installation.

Required Libraries

For Both Controller and Remote:

  • micropython/lora
  • micropython/drivers/display/ssd1306

For the Controller Only:

  • micropython/bluetooth/aioble

These can be installed from within Thonny using the Manage Packages tool, or manually by placing the .py files into the lib/ directory on your board.

Recommended: Compile Libraries for Performance

While using .py source files is convenient during development, we strongly recommend compiling your libraries into .mpy files for:

  • Faster execution
  • Lower memory usage
  • Increased stability on constrained devices

For details on compiling libraries using mpy-cross, refer to the official MicroPython documentation or follow the step-by-step instructions here:
How to Compile .py to .mpy →


Acknowledgements

Special thanks to @KonradIT and his project goprowifihack for the foundational work and inspiration behind this project.

About

Long distance remote controller for GoPro cameras

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

Packages

No packages published

Languages