A wireless Bluetooth Low Energy remote shutter control for Fujifilm cameras, built for the M5StickS3 ESP32-S3 device.
Based on the furble project, stripped down to support Fujifilm cameras exclusively.
- Remote Shutter Control - Trigger shutter and focus wirelessly via BLE
- Fujifilm Basic - Supports older Fujifilm cameras using token-based pairing
- Fujifilm Secure - Supports newer Fujifilm cameras (July 2025+ firmware) with encrypted BLE connections
- Intervalometer - Built-in time-lapse photography with configurable count, delay, shutter, and wait times
- Multi-Connect - Connect to multiple Fujifilm cameras simultaneously
- Infinite Reconnect - Automatically reconnect to paired cameras
- Persistent Settings - Camera pairings and settings saved to non-volatile storage (NVS)
- LVGL UI - Graphical user interface with theme support
Any Fujifilm camera with Bluetooth remote shutter capability, including:
- Fujifilm X-T5, X-T50, X-H2, X-H2S, X-S20, X-S10
- Fujifilm X100VI, X100V
- Fujifilm GFX series
- Other Fujifilm cameras advertising BLE remote control
Cameras running firmware from before July 2025 connect via FujifilmBasic (token-based). Cameras running newer firmware connect via FujifilmSecure (encrypted/bonded).
- PlatformIO (Core CLI or IDE extension)
- USB-C cable for M5StickS3 connection
- Git
git clone https://github.com/yerffejytnac/furble-lite.git
cd furble-litePlatformIO automatically downloads all dependencies on first build.
pio run -e m5stick-s3Dependencies installed automatically:
| Library | Version | Purpose |
|---|---|---|
| M5GFX | 0.2.19 | Display driver |
| M5Unified | 0.2.13 | Hardware abstraction |
| esp-nimble-cpp | 2.3.4 | BLE stack |
| LVGL | 9.4.0 | UI framework |
Connect your M5StickS3 via USB-C and flash:
pio run -e m5stick-s3 -t uploadpio device monitor- Power on the M5StickS3
- Scan - Select "Scan" from the main menu to discover nearby Fujifilm cameras
- Put your camera in pairing mode - Enable Bluetooth pairing on your Fujifilm camera
- Connect - Select the discovered camera to pair and connect
- Control - Use the shutter and focus buttons to control your camera remotely
| Menu Item | Description |
|---|---|
| Connect | Connect to a saved or discovered camera |
| Scan | Scan for new Fujifilm cameras |
| Delete | Remove a saved camera pairing |
| Settings | Configure display, features, intervalometer, theme, TX power |
The built-in intervalometer supports:
- Count - Number of shots (or infinite)
- Delay - Wait time before first shot
- Shutter - How long to hold the shutter
- Wait - Delay between shots
| Setting | Description |
|---|---|
| Display | Brightness control |
| Features | Infinite reconnect, multi-connect |
| Timer | Intervalometer configuration |
| Theme | UI theme selection |
| TX Power | BLE transmit power level |
furble-lite/
├── lib/
│ ├── furble/ # BLE camera control library (from furble)
│ └── preferences/ # NVS storage wrapper
├── src/ # Application source
├── include/ # Application headers
├── components/icons/ # LVGL UI icons
├── patches/ # BLE stack patches
├── platformio.ini # Build configuration
└── CMakeLists.txt
| Parameter | Value |
|---|---|
| Board | esp32-s3-devkitc-1 |
| Platform | espressif32@6.12.0 |
| Framework | ESP-IDF 5.4.2 |
| Build Flag | -DFURBLE_M5STICKS3 |
Set a version string before building:
export FURBLE_VERSION="1.0.0"
pio run -e m5stick-s3# Clean and rebuild
pio run -e m5stick-s3 -t clean
pio run -e m5stick-s3- Check USB-C cable and connection
- Verify the device appears:
pio device list - Try holding the PWR button during upload if needed
- Ensure your Fujifilm camera has Bluetooth enabled
- Put the camera in pairing/discoverable mode
- Move the M5StickS3 closer to the camera
- Try increasing TX Power in Settings
This project is derived from furble by gkoh, a multi-camera BLE remote supporting Fujifilm, Canon, Nikon, and Sony cameras across multiple M5Stack devices. The BLE protocol implementations, UI framework, and overall architecture originate from furble.
See LICENSE for details.