Skip to main content
← projects

September 27, 2025

Canon BT Remote

BLE shutter remote for Canon cameras

FlutterDartBluetooth LEWear OS

Objective

Create a Flutter app for my phone and watch that triggers my Canon camera's shutter over Bluetooth, so I can take tripod shots on my Japan trip without a visible remote or a 10-second timer sprint.

Tools & Technologies

BLE GATT

Wear OS Data Layer

Share This

Details

I'm heading to Japan and wanted a way to take photos of myself in front of landmarks without racing a 10-second timer or holding a phone at arm's length. So I built Canon BT Remote: two companion Flutter apps, one for my Android phone and one for my Wear OS watch, that trigger my camera's shutter over Bluetooth.

The phone app handles the Bluetooth LE pairing and communication with the camera, using the same GATT services Canon's own app uses. The watch app is basically just one big button. Pressing it sends a message to the phone through the Wear OS Data Layer, and the phone relays it to the camera over BLE.

Tested and working on my Canon EOS RP. Both apps keep a background service running so the BLE session and the data layer listener stay alive.

While making this project I learned way more than I expected about BLE, GATT services and characteristics, and all the creative ways Android and Wear OS can make communication between devices difficult.

Source Code


Take a closer look at the source code here: GitHub

Gallery

Phone app

Phone app

Phone app (scanning)

Phone app (scanning)

Watch app

Watch app

// related writing

Read the full write-up