gkoh / furble Goto Github PK
View Code? Open in Web Editor NEWA bluetooth wireless remote shutter release/button for Fujifilm X/GFX and Canon EOS cameras.
Home Page: https://furble-web-installer.koh.wtf
License: MIT License
A bluetooth wireless remote shutter release/button for Fujifilm X/GFX and Canon EOS cameras.
Home Page: https://furble-web-installer.koh.wtf
License: MIT License
If you have more than one remote they're all called furble
.
This makes it difficult/messy if you're developing/testing or doing interesting things with multiple cameras and multiple remotes.
Add a way to identify the remote via name. Perhaps using some fragment of the ESP32 ChipID?
Thanks to #108 I reviewed the backlight timeout brightness handling ... and it sucks with multiple problems.
Let's start with the first problem:
64
If we look at the ezBacklight::menu()
, the brightness slider goes down to 48
, something I recall determining via trial and error on the original M5StickC.
This means if we set minimum brightness at 48
, we actually increase brightness to 64
during inactivity timeout, this is so wrong.
Second problem:
64
is quite bright for the M5StickC Plus2 and M5Stack CoreI propose the following solutions:
ezBacklight
, say ezBacklight::getMinimumBrightness()
ezBacklight::getMinimumBrightness()
in:
ezBacklight::loop()
during inactivityezBacklight::menu()
as the minimum brightness in the sliderM5Unified is now at 0.1.16.
M5GFX is now at 0.1.16.
NimBLE-Arduino is now at 1.4.2.
The changes seem reasonably benign.
Where is the Donation Button? I would say "Thanks" to the dev...
Newer cameras that are support the new tripod remote (TG-BT1) have new firmware (eg. 1.50 for X-T30).
With this firmware, when furble
connects, a little smart phone icon appears under the Bluetooth icon.
This is expected as furble
is built from replicating the protocol between the smart phone app and the camera.
It would nice if we could work out the TG-BT1 protocol as that is more in-line with furble
.
It seems that cloudflare/pages-action will be deprecated in favour of cloudflare/wrangler-action.
Migrate the release workflow to keep current.
Will there be a support release for M5StickC PLUS2?
Thanks
Thanks to @wolcano for delving into the Canon EOS more.
It looks like pairing and connecting for Canon can and should be separated, especially due to an 'acceptance' bit where the camera needs an 'OK' to complete the pair.
For Canon EOS, the pair acceptance result comes via a BLE notification.
Which seems to be:
00010000-0000-1000-0000-d8492fffa821
00010006-0000-1000-0000-d8492fffa821
0x02
-> accept0x03
-> rejectThis is consistent with the efforts from https://github.com/robot9706/CanonBLEIntervalometer
Instead of the backlight turning off, you get a fun strobe effect. Guess the LCD pinout change wasn't entirely without problems...
To ensure future merges don't suffer from indentation or style conflicts, apply a format now and enforce it with CI.
Adding a clang-format file would help here.
furble
is primarily Fujifilm focused and the 'What Works' reflects that.
However, the longer term aim is to support more cameras.
Thus, convert the 'What Works' list to a table of feature vs camera.
With technical advance and the advent of esp-web-tools, flashing furble to a device can now be done without needing to install software.
The following can be done to support this:
There's a fair amount of code duplicated between EOS M6 and EOS RP.
Try to refactor and remove it.
At the same time, work out if the focus button could be supported.
The default camera app in both iOS and Android triggers the shutter when the 'volume up' key is sent.
This requires:
The release of new firmware for recent Fujifilm cameras to support the Tripod Grip TG-BT1 has broken our pairing.
During a new pairing request, furble
claims success, but the camera just sits there waiting for a valid pairing partner.
Going to need a fix for this, furble
is now dead with the new firmware.
The underlying M5Stack libraries are separate for M5StickC and M5StickC-Plus.
With the new M5Unified library, it will much simpler to support the entire M5 range without managing the device differences ourselves.
See here for more:
https://github.com/m5stack/M5Unified
Is it possible to use the other Key as Focus button? So we could have Focus & Shutter... the M5 have a second button π
By default the ESP32 uses transmit power level 5, which is +3dBm.
Community reports suggest this is good for 10-15 metres (I have not personally tested).
Add a transmit power setting, allowing one to choose level 6 (+6dBm) and 7 (+9dBm).
This will allow one to perhaps increase operational distance, but possibly at the cost of battery power.
Maybe a more "User Friendly" Tutorial will open this Project to more Users! Its so f**king Awesome what Fujifilm Users can get here!
Like this step-by-step guide.... (just as an idea)
Just a little more Infos ;-)
When A or B are pressed (and not released) the camera does auto-focus and releases shutter immediately, not waiting for button (A or B) release.
Tested on Canon EOS-RP
Is it possible to dim the Display more or (better) use a black backround with white font (for OLED users) to save Battery β
Thank you.... π
I have heard from other users who have updated their Fujifilm cameras that the remote has stopped working
Can this be corrected so to will work?
Adrian
I'm going to throw it here (because it should be handled by the UI changes): Connect should not be an option if the saved connection list is empty
Originally posted by @matthudsonau in #80 (comment)
The current BLE library does not provide an easy way to get the smartphone name during connection, we use the bluetooth MAC address at the moment.
However, there are changes coming that will make this possible.
Thus, rather than being asked to connect to unreadable "AA:BB:CC:....", we should be able to ask to connect to "My smartphone".
With #43 done, need to update the README to include:
See #20.
Canon EOS support for focus during shutter control doesn't behave as expected.
Investigate how or whether it is possible to bring up to parity with the Fujifilm cameras.
Shutter lock currently requires 2 hands:
This seems overly complicated.
This can be simplified to be just be:
Where 'long press' we can arbitrarily define as 'hold button a down for longer than 500ms'.
To better support non-developers, do the following:
The ultimate aim would be to reduce the consumer workflow to:
This would remove the requirement for non-developers to install the entire ESP32 toolchain.
Thanks for the nice Code !
I ordered at "banggood" for 25$ my m5Stick C-Plus and connected it with my Fujifilm X-S10. Everythings works YEAH
Thank you!
Add a remote control mode that supports shutter lock.
Use case is described by @matthudsonau here.
Hey, Congratulation for a very nice 1.0 Version and a bin. I flashed the bin file with ESPHome Alllication and it works perfect. I tried every Theme/Settigs and im really happy. Especially the βfocus onlyβ - i love it - THX! Donation coild be also add to the main page
Now to the suggestion: maybe you could edit, that the installation is easy with ESPHome and link to the App π
Preface: I have no idea if this belongs in this project, or if I should just 'steal' the camera communication parts and make my own
I now have a M5Stack Core2 (ok, two: I like to have a spare to loan out to people). With the touch interface and the addition of two extra buttons (three below the screen and two on the side of the case) there's definitely a lot more options for a UI than on the M5Stick, plus the bigger screen means that the current UI could definitely stand to be improved
At the moment there is no monitoring of the connection status by the remote, so often the only indication that the connection has failed is that the camera stops responding
After #108 and #111, the slider control for the backlight brightness has a few problems:
The actual input to setBrightness()
is a uint8_t
, so our limit is 255 steps, obviously no one wants this level of control.
The current slider has 11 steps, still too many in my opinion.
Perhaps something like 8 steps is a reasonable tradeoff.
So:
Fixing this requires unravelling my crappy maths in ezBacklight::menu()
Originally posted by edcooley June 20, 2024
New user installed on Plus 2 with web install. I can connect to my GFX100 II and fire the shutter fine. I am having issues with GPS not recording on exposures. The GPS option is turned on and GPS data shows date and location. The option to request smartphone location is enabled on the body and using the Xapp to fire the shutter adds GPS to images.
Any idea what I am doing wrong?
Equipment: M5StickC PLUS, GFX 100ii
When in shooting mode, quickly tapping a button only seems to trigger the shutterPress/focusPress functions, and the shutter/focus is locked on until the button is long pressed (another quick press keeps the function locked on)
I actually find this behaviour to be very useful, however trying to 'unstick' the buttons is annoying. It would be a lot better if a second quick press simply turned the function off
Originally posted by stulevine January 20, 2023
Hi @gkoh. Just wanted to let the you all know that I just installed furble to a new M5stack M5Stick C Plus ESP32-PICO-D4 Mini IoT Development Kit device purchased on Amazon.com and it works just perfectly with my new Fujifilm X-T5 with firmware v1.0.2 (just released this morning). Nice alternative to using my iPhone. The only other thing that would be great is if the M5Stick supported GPS locations sourcing. The X-T5 can use the CamRemote app on the iPhone when connected view BT to derive the GPS location and add it to the photo meta data. I'd be curious if this could be accomplished using the WiFi module of the M5Stick? Curious if anyone has any thoughts on this. I guess, if the M5Stick does not have GPS support, that I could purchase a GPS module and connect it to the GPIO pins and see how difficult it would be to support location transmission to the camera.
Stuart
Update: M5Stack does make a GPS unit that plugs into the M5Stick Grove connector interface and works with M5Core. Here is the product link I might order it and see if it's possible to send GPS coordinates to the camera. I think the camera will poll the device for that info if enabled in the setup menu on the camera. Any insights would be greatly appreciated.
Sometime in the last 12 months the M5StickC was end-of-life'd with the M5StickC PLUS being the fully compatible replacement.
The M5StickC PLUS has a larger screen, thus the hacks to M5ez will need to be updated.
Maybe it would be better to find this nice Project, when you rename it from
"furble - FUjifilm Remote Bluetooth Low Energy"
to
"furble - Fujifilm Remote Bluetooth Trigger/Button" (Trigger or Button or both)
I just found the way to furble in an Forum as a link from anybody. With Google search i cant find a link to furble ;-)
Donation button + better finiding in google search = Fame & Money π€£
> Have you tried increasing the transmit power in settings?
Yeah, it was on max. Ended up just dropping the remote below the tripod whenever I needed to go more than a couple of metres away
Originally posted by @matthudsonau in #73 (comment)
There's no reason why we cannot support the other M5Stack controller variants, we just need to careful with menu handling.
See #50.
Hi
I am not a tech person but I do own a gfx100s and would love a wireless remote
I have no clue about coding etc but would be happy to pay for one to be made and I would test....
Adrian
Currently the GPS geotag data is only sent to the camera during:
In reality, we can provide GPS updates as soon as we are connected.
We can move geotag update call from the shutter loop into a separate event loop that is activated once we are connected.
The web installer is quite ... minimal.
Add some details of the project or similar so people know what it is without needing to click through to the actual github project.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. πππ
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google β€οΈ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.