hkr / fuji-cam-wifi-tool

Trying to reverse-engineer the wifi remote control protocol used by Fuji X series cameras
The Unlicense
230 stars 37 forks source link

Project news? #1

Closed mariobrussi closed 3 years ago

mariobrussi commented 7 years ago

I'm interested in your work, have you leaved the project?

Thanks for your answer :)

hkr commented 7 years ago

Have just been busy with other stuff. Just curious, do you have any plans to use the project for anything? :)

mrosseel commented 7 years ago

I'm following this project because I would like to automate the photography of the solar eclipse in the US next summer. Last time I did it with a fully automated canon, would be sad if I have to rent a camera this time! Does this project work in its current state? Or do you think it's not possible to reverse engineer?

mariobrussi commented 7 years ago

Somethink like a new mobile app or a remote control (telegram bot for example) or a web app :)

hkr commented 7 years ago

It's quite straightforward to reverse engineer what the Fuji App can do. I mainly looked at the remote control part of it. Triggering the shutter, querying the current settings and changing some of the settings works in the current state. But there is no documentation, user-friendly application etc.

mrosseel commented 7 years ago

the linenoise directory is empty, is that normal? I'm getting an error:

xx@xxfuji-cam-wifi-tool → master make [ 77%] Built target fuji_cam_wifi [ 88%] Building CXX object tool/CMakeFiles/fuji_cam_wifi_tool.dir/src/main.cpp.o /Users/xx/dev/fuji-cam-wifi-tool/tool/src/main.cpp:12:10: fatal error: 'linenoise/linenoise.h' file not found

include "linenoise/linenoise.h"

     ^

1 error generated. make[2]: * [tool/CMakeFiles/fuji_cam_wifi_tool.dir/src/main.cpp.o] Error 1 make[1]: * [tool/CMakeFiles/fuji_cam_wifi_tool.dir/all] Error 2 make: *\ [all] Error 2

hkr commented 7 years ago

You are probably missing the linenoise-ng submodule. Try: git submodule update --init --recursive

martinsnajdr commented 7 years ago

I have the same problem like mrosseel. I cloned your repository, build it with cmake, than tried to make install and I got the same error – linenoise.h not found.

Is there any chance you can write a simple guide how to build / install your library on macOS? It would be very cool to build a mobile app using your library, Fuji's app is just horrible.

hkr commented 7 years ago

Fixed the include problems and wrote some minimal instructions. Let me know if you need more help. I'd would be great to see a better iOS app. Which features are you most interested in for the app? As I wrote earlier, I think it should be possible to get all the features of the existing app working.

martinsnajdr commented 7 years ago

Thank you for your quick response and for the update. Well, I have the X100T and I was really excited about the Wi-Fi capability until I installed the official app. It's ugly, but the most annoying thing is that you have to connect everytime you want to switch the functions/features of the app. I'm a webdeveloper / UX designer, so I'm still learning about the low-level programming - so I find your code quite useful. I will try your library for some basic hacking around Fuji's Wi-Fi protocol and maybe turn it into something better than is the Fuji's app, because clearly they don't really care. I will stay in touch.

mrosseel commented 7 years ago

Thanks for the update, everything compiles well now. Is anything special needed regarding wifi? Disable mac wifi connections for instance? Either way it's not connecting to my X-T1 (not showing up on the camera, connect command failing in the tool)

hkr commented 7 years ago

You have to connect your Mac Wifi to the camera's access point. On my camera it's called FUJIFILM-X-T10-1328. Basically the same as using the iOS and Android apps.

Output looks like this here: https://gist.github.com/hkr/be1f5cfed90303c5c1a9b09067fc8f6a

I only have a X-T10 btw, not tried any other Fuji.

mrosseel commented 7 years ago

of course :). Can confirm it works with the X-T1 as well, only tested the shutter command but it worked.

aaronpearce commented 7 years ago

Curious to know the process behind how you've been reverse engineering the protocol? I've attempted it before and failed. Where you reverse engineering the Mac app or the iOS one?

hkr commented 7 years ago

I'm using a rooted Android phone, the Fuji app for Android, tcpdump for Android and Wireshark to look at the dump files. Let me know if you need more details.

aaronpearce commented 7 years ago

Thanks for that. Attempting to root my old Android now (failing miserably). Any chance you can share your original dump files? Would really appreciate it.

GitHoaxII commented 7 years ago

Great attempt here, thank you! However, I am receiving an error when trying to compile (running make) in Linux Shell. Errors and warnings seem to occur in the comm.hpp file. Anyone facing similar issues? Any help would be very much appreciated.

hkr commented 7 years ago

@aaronpearce I still have some dump files but they might contain some of my pictures, so I don't want to just upload them to GitHub. I used a Nexus phone which is easy to root.

hkr commented 7 years ago

@GitHoaxII I made it compile and link on my Debian 8 installation, but your compile error sounds different from what I had. Please post more details if it still does not compile (compiler and version, ...)

0x5e commented 7 years ago

Hello, my girlfriend have the X100f this year, she said the official ios app is really hard to use. I'm a iOS developer, and our company have the similar app used for wifi sdcard adapter. So if this project works fine, I would like to spend my personal time develop the new one, to replace the official app :)

Thanatorial commented 7 years ago

Hello, running on arch arm (Rpi). everything compiles fine. the only problem i have is not being able to connect when running your tool(connect failure). i set up my wifi with iwconfig manually. wlan0 interface shows ad-hoc connection established with my x100t. also tried using wpa_supplicant without success. any ideas would be highly appreciated. thx for providing this tool!

Thanatorial commented 7 years ago

Hello, managed to get the connection up. fcwt> connect Connection esatablished 192.168.0.1:55740 (3) [INFO] init_control_connection (socket 3) [INFO] send hello from here i get kicked back into the shell prompt...

hkr commented 7 years ago

Is it crashing? Or the fcwt> prompt?

Thanatorial commented 7 years ago

[xyz@alarmpi build]$ ./tool/fuji_cam_wifi_tool
fcwt> connect Connection esatablished 192.168.0.1:55740 (3) [INFO] init_control_connection (socket 3) [INFO] send hello [xyz@alarmpi build]$ [xyz@alarmpi build]$ ./tool/fuji_cam_wifi_tool fcwt> set_iso fcwt> aperture fcwt> shutter failure fcwt>

hkr commented 7 years ago

Looks like it's crashing during connect. You could try to use a debugger to get a callstack. Or add some more logging. I have done very little testing on Linux.

k8k12 commented 6 years ago

نحن لها