Skip to content

Commit

Permalink
Update README.md for v2.0 (#81)
Browse files Browse the repository at this point in the history
Rearrange the README so installation and usage are up the top, relegate the background to the end.
Furthermore, add mention of:
* easy web installer
* M5StickC Plus2
* GPS unit support on Fujifilm
* Shutter lock
* Intervalometer
  • Loading branch information
gkoh authored Mar 13, 2024
1 parent f79df73 commit 820c73b
Showing 1 changed file with 90 additions and 63 deletions.
153 changes: 90 additions & 63 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,22 +8,95 @@ cameras.
The remote uses the camera's native Bluetooth Low Energy interface so additional
adapters are not required.

furble is developed as a PlatformIO project for the M5StickC and M5StickC Plus
furble is developed as a PlatformIO project for the M5StickC, M5StickC Plus and M5StickC Plus2
(ESP32 based devices). Additionally, it can be used on the M5Stack Core2.

## Supported Cameras

The following devices have actually been tested and confirmed to work:
- Fujifilm GFX100II ([@matthudsonau](https://github.com/matthudsonau))
- Fujifilm GFX100S ([@adrianuseless](https://github.com/adrianuseless))
- Fujifilm X-H2S ([@val123456](https://github.com/val123456))
- Fujifilm X-S10 ([@dimitrij2k](https://github.com/dimitrij2k))
- Fujifilm X-T200 ([@Cronkan](https://github.com/Cronkan))
- Fujifilm X-T30
- Fujifilm X-T5 ([@stulevine](https://github.com/stulevine))
- Fujifilm X100V
- Canon EOS M6 ([@tardisx](https://github.com/tardisx))
- Canon EOS RP ([@wolcano](https://github.com/wolcano))
- Fujifilm
- Fujifilm GFX100II ([@matthudsonau](https://github.com/matthudsonau))
- Fujifilm GFX100S ([@adrianuseless](https://github.com/adrianuseless))
- Fujifilm X-H2S ([@val123456](https://github.com/val123456))
- Fujifilm X-S10 ([@dimitrij2k](https://github.com/dimitrij2k))
- Fujifilm X-T200 ([@Cronkan](https://github.com/Cronkan))
- Fujifilm X-T30
- Fujifilm X-T5 ([@stulevine](https://github.com/stulevine))
- Fujifilm X100V
- Canon
- Canon EOS M6 ([@tardisx](https://github.com/tardisx))
- Canon EOS RP ([@wolcano](https://github.com/wolcano))

## What Works

- scanning for supported cameras
- initial pairing
- saving pairing data
- connecting to previously paired camera
- shutter release
- focus (Fujifilm)
- GPS location tagging (Fujifilm)

## Installation

### Easy Install

The simplest way to get started is with the web installer.
Follow the instructions on the wiki: [Easy Web Install](https://github.com/gkoh/furble/wiki/Easy-Web-Install)

### PlatformIO

PlatformIO does everything assuming things are installed and connected properly.
In most cases it should be:
- clone the repository
- plug in the M5StickC
- `platformio run -e m5stick-c -t upload`
- OR plug in the M5StickC Plus/Plus2
- `platformio run -e m5stick-c-plus -t upload`
- OR plug in the M5Stack Core2
- `platformio run -e m5stack-core2 -t upload`

More details are on the wiki: [PlatformIO](https://github.com/gkoh/furble/wiki/Linux-Command-Line-(For-Developers))

## Usage

The top level menu has the following entries:
- `Connect`
- `Scan`
- `Delete Saved`
- `Settings`
- `Power Off`

On first use, put the target camera into pairing mode, then hit `Scan`. If the
camera advertises a known, matching signature, it should appear in the list.
You can then connect to the target camera, which, if successful, will save the
entry and show the remote menu.

Upon subsequent use it should be enough to hit `Connect`, selecting the
previously paired device and leads to the remote menu.

From the remote menu you may choose to disconnect or control the shutter.

### GPS Location Tagging

For Fujifilm cameras, location tagging is supported with the M5Stack GPS unit:
- [Mini GPS/BDS Unit](https://shop.m5stack.com/products/mini-gps-bds-unit)

GPS support can be enabled in `furble` in `Settings->GPS`, the camera must also be configured to request location data.

### Intervalometer

The intervalometer can be configured via three settings in `Settings->Intervalometer`:
- Count (number of images to take)
- Delay (time between images)
- Shutter (time to keep shutter open)

Count can be configured up to 999 or infinite.
Delay and shutter time can be figured with custom or preset values from 0 to 999 in milliseconds, seconds or minutes.

### Shutter Lock

When in `Shutter` remote control, holding focus (button B) then release (button A) will engage shutter lock, holding the shutter open until a button is pressed.

## Motivation

Expand All @@ -35,14 +108,6 @@ I really just wanted the [Canon
BR-E1](https://www.eos-magazine.com/articles/remotes/br-e1-canon-bluetooth-remote.html),
but for my camera.

## What Works

- scanning for supported cameras
- initial pairing
- saving pairing data
- connecting to previously paired camera
- shutter release

### Possibly Supported Cameras

#### Fujifilm
Expand Down Expand Up @@ -77,9 +142,11 @@ to trigger the shutter release.
The best way is to repeat the previous steps, analyse the bluetooth HCI snoop
log with Wireshark, implement, then test against the actual device.

## Requirements
## Background Story

### Requirements

### Hardware
#### Hardware

I wanted a complete solution out of the box to have:
- bluetooth low energy
Expand All @@ -91,14 +158,14 @@ I wanted a complete solution out of the box to have:

My search concluded with the [M5StickC](https://m5stack.com/products/stick-c)
from [M5Stack](https://m5stack.com).
The M5StickC has since been EOL and replaced with the [M5StickC Plus](https://shop.m5stack.com/collections/stick-series/products/m5stickc-plus-esp32-pico-mini-iot-development-kit).
The M5StickC and M5StickC Plus have since been EOL and replaced with the [M5StickC Plus2](https://shop.m5stack.com/products/m5stickc-plus2-esp32-mini-iot-development-kit).

The M5StickC is an ESP32 based mini-IoT development kit which covered all of the
requirements (and more). At time of writing, M5Stack sell the M5StickC for
US$9.95.
The M5StickC Plus sells for US$19.95.

### Software
#### Software

The project is built with [PlatformIO](https://platformio.org) and depends on
the following libraries:
Expand All @@ -108,46 +175,6 @@ the following libraries:
- [NimBLE-Arduino](https://github.com/h2zero/NimBLE-Arduino)
- [TinyGPSPlus](https://github.com/mikalhart/TinyGPSPlus)

## Installation

### Easy Install

The simplest way to get started is using `esphome-flasher` and the release binaries.
Follow the instructions on the wiki: [Easy Install](https://github.com/gkoh/furble/wiki/Easy-Install)

### PlatformIO

PlatformIO does everything assuming things are installed and connected properly.
In most cases it should be:
- clone the repository
- plug in the M5StickC
- `platformio run -e m5stick-c -t upload`
- OR plug in the M5StickC Plus
- `platformio run -e m5stick-c-plus -t upload`
- OR plug in the M5Stack Core2
- `platformio run -e m5stack-core2 -t upload`

More details are on the wiki: [PlatformIO](https://github.com/gkoh/furble/wiki/Linux-Command-Line-(For-Developers))

## Usage

The top level menu has the following entries:
- `Connect`
- `Scan`
- `Delete Saved`
- `Settings`
- `Power Off`

On first use, put the target camera into pairing mode, then hit `Scan`. If the
camera advertises a known, matching signature, it should appear in the list.
You can then connect to the target camera, which, if successful, will save the
entry and show the remote menu.

Upon subsequent use it should be enough to hit `Connect`, selecting the
previously paired device and leads to the remote menu.

From the remote menu you may choose to disconnect or control the shutter.

# Things To Do
- error handling is atrocious (it'll probably crash, then restart, which is OK,
the M5StickC boots quickly)
Expand Down

0 comments on commit 820c73b

Please sign in to comment.