MagicPilot Remote Stick: Timecode & Record Button for Your Blackmagic Camera

🎬 Timecode and record button for your Blackmagic camera, on a tiny M5Stick.

A pocket-sized Bluetooth LE remote for the original M5StickC and the M5Stack StickS3. It shows the camera's live timecode and starts or stops recording with one press. No phone, no app.

View on GitHub Build & flash guide
MagicPilot Remote Stick on an M5Stack StickS3, drawn to scale: the screen shows REC and a red timecode 10:26:05:08, with the A front button, B side button, power button and USB-C port labelled
The remote on an M5StickS3, drawn to scale. A starts and stops recording; B switches between timecode and clip counter.

Features

⏱️ Live timecode

The camera's timecode as HH:MM:SS:FF, large enough to read at a glance.

🔴 One-press recording

Press A to start or stop recording. REC and the timecode turn red while the camera records.

🎞️ Clip counter

Press B to switch to the camera's clip counter, which keeps its last value after you stop.

🔗 Direct Bluetooth LE

Pairs with the camera using its 6-digit PIN. No phone, tablet, Wi-Fi or app.

📟 Two Sticks

Runs on the original M5StickC and the M5Stack StickS3; the layout adapts to the screen.

⚡ One-command flashing

flash.py detects ESP32 or ESP32-S3 and uploads the matching build.

On the original M5StickC

MagicPilot Remote Stick on an original M5StickC held in one hand, recording, with the timecode 18:10:25:18 in red
The front button is under your thumb while the stick shows the camera's recording timecode.

Supported hardware

DeviceChipDisplay (landscape)Status
Original M5StickCESP32160×80Firmware build passes
M5Stack StickS3ESP32-S3240×135Build, chip detection and upload verified on hardware; camera functions not yet verified

You also need a Blackmagic Pocket Cinema Camera 6K (or another camera that uses Blackmagic's Bluetooth camera control, untested) and a USB data cable for flashing. Other Stick variants are not currently supported.

Buttons

ScreenButtonAction
MainA (front)Connect; once connected, start/stop recording
MainB (side)Switch between timecode and clip counter
PINBNext digit value (0–9); hold for back one digit
PINAAccept digit; after the 6th digit, submit the PIN

Pairing

  1. Put the camera in Bluetooth pairing mode.
  2. Press A on the stick.
  3. Enter the 6-digit PIN shown on the camera.

Build and flash

Install Python 3 and PlatformIO (Core or the VS Code extension), connect one supported Stick with a USB data cable, close any serial monitors, and run from the project folder:

macOS and Linux:

python3 flash.py

Windows:

py flash.py

The helper reads the chip type, then builds and uploads only the matching firmware. On a StickS3 with factory firmware, hold the side reset button until the internal green LED flashes, then run the command again. After the upload, press A to connect to the camera.

Port selection, troubleshooting and Arduino IDE settings are in the full build & flash guide.

Frequently asked questions

How can I see my Blackmagic camera's timecode on a small remote?

Flash MagicPilot Remote Stick onto an M5StickC or M5Stack StickS3 and pair it with the camera over Bluetooth LE. It shows the camera's live timecode (HH:MM:SS:FF), and the front button starts and stops recording. You don't need a phone or an app.

Which Blackmagic cameras are supported?

The project targets the Blackmagic Pocket Cinema Camera 6K (BMPCC6K). Other cameras that use the Blackmagic Camera Control Bluetooth protocol may work but haven't been tested.

Which M5Stack devices does it run on?

The original M5StickC (ESP32, 160×80 screen) and the M5Stack StickS3 (ESP32-S3, 240×135 screen). Flashing is verified on StickS3 hardware; camera pairing, timecode display and recording control on StickS3 still need hardware verification.

How do I pair the stick with the camera?

Put the camera in Bluetooth pairing mode, press A on the stick, then enter the 6-digit PIN shown on the camera. B changes the current digit (hold B to go back one), and A accepts it.

Is MagicPilot Remote Stick free?

Yes. MagicPilot Remote Stick is open-source firmware licensed under the LGPL-3.0.