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.
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.
The Controller uses BLE to wake up the GoPro, send commands, and query the current recording state — all wirelessly!
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.
The status of each camera is shown on the Remote’s screen, including signal strength, recording status, alerts, and health indicators.
Control up to 3 cameras with unique IDs and receive independent feedback from each.
Tested and optimized for:
- Heltec Wireless Stick V3 (Controller)
- Heltec LoRa 32 V3 (Remote)
- GoPro cameras that are compatible with the OpenGoPro API
Here are some recommended enclosures to protect your L.A.U.R.A. Cam hardware:
-
Remote (Heltec LoRa 32 V3 – Slim Form Factor)
HT Slim Case on Printables.com -
Controller – Using Heltec LoRa 32 V3 (Pocket Layout)
HT Pocket Case on Printables.com -
Controller – Using Heltec Wireless Stick V3
Wireless Stick Lite V3 Case on Printables.com
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:
OLED_WIDTH = 128
OLED_HEIGHT = 64OLED_WIDTH = 64
OLED_HEIGHT = 32To improve memory usage and execution speed on MicroPython:
- Compile all
.pymodules into.mpyusing mpy-cross - Upload the compiled
.mpyfiles to your device
Work in Progress – Core functionality is stable and actively tested.
- 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
- Improve LoRa communication
- Add battery management for GoPro and Controller battery
- Configuration menu for the Controller
- Adjustable heartbeat interval
- Remote check of camera settings
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.
- Connect your ESP32 board via USB.
- Open Thonny and navigate to
Tools → Options → Interpreter. - Select your device and click "Install or update firmware".
- Choose one of the supported MicroPython versions and complete the installation.
micropython/loramicropython/drivers/display/ssd1306
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.
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 →
Special thanks to @KonradIT and his project goprowifihack for the foundational work and inspiration behind this project.