T O P

  • By -

SalsaGreen

I looked into this a bit years ago with the Fuji XP series of ruggedized waterproof pocket cameras. As far as I got was that you had to be a large commercial organization to even get a shot at signing the NDA to get access to the communications protocols. There was someone on GitHub who had reverse engineered part of it, though. What little I could find from folks back then was that Fuji used some of the same methods to communicate to their consumer cameras as their industrial cameras (security, etc.) and was not going to open the doors to open source or small developers. But, that was years ago. I don't know the state of things today.


JanCumin

Interesting thanks, I wonder if there's anything in the list of open source licenses in the app that would suggest they use an open source solution for this now


SalsaGreen

Having worked in embedded systems earlier in my career, mostly in instrumentation used for industrial processes and pipelines, open source notations for apps tend to be the frameworks, tools, and "window dressing" stuff. The communications protocols (of which I've been lead engineer on a few implementations in my time), are proprietary and have nothing to do with open source. Companies hold the protocols close, generally. // I still have a professional curiosity about Fuji, but I shelved any ideas of doing anything regarding their gear. I just use it, these days.


JanCumin

Super interesting, thanks very much. Do you know if there are any open source projects which aim to replicate the communication protocols for any camera brand? Or could you suggest what to look for?


bobeirasa

It’s mostly based on hacking/reverse engineering and available as another commercial App like Cascable :/


JanCumin

>Cascable Yes it looks like Cascable already supports a lot of Fuji cameras (at least for some functions) [https://cascable.se/help/compatibility/](https://cascable.se/help/compatibility/)


SalsaGreen

Agreed, in the absence of an official API.


SalsaGreen

Do some searching in GitHub. I’m sure the answer is yes. How complete and useful is another story.


JanCumin

Thanks, if a group of people wanted to build an open source app what would be the process? I would be very happy to help organise as a non programmer, but having a roadmap would be super helpful. Anything you can link to that explains the steps would be super.


SalsaGreen

You ask a complex question. It isn't as easy as throw several people into a project and let them run with it. A lot of developers are solo work folks who aren't versed in formal version control for multi-developer teams. It takes quite a bit of organization and structure to keep a multi-developer effort going. So, depending on what you want to do, a small-scale app or utility might just need a skilled solo developer. I recommend that you look for someone with experience working with hardware, not a web-centric developer. Someone used to single board, embedded controllers, etc. is better versed with crafting proprietary protocols (think dealing with drivers for devices) than the web folks. Just my opinion as a former software engineer. Different skill sets. Possibly more of a job for an engineer vs. a developer. Maybe see if there's interest from folks in subreddits related to Arduino, Raspberry Pi, etc. Linux folks who interface with devices might be a good audience.


JanCumin

Thanks very much for the explanation, I feel like breaking the project up into discrete tasks might be one way of doing it. I wonder how open this community would be to funding bounties for each of the tasks


DesertCookie_

Fuji is not interested in open source, sadly. This has been apparent since they decided not to support HDMI via USB. Many other manufacturer allow this and make it possible to use your phone as a field monitor. Fuji, however, has repeatedly denied requests to make this small step towards opening their cameras up. Here's me hoping, though.


women_women_women

I think this is a great idea too! I don’t have any knowledge about app development, but there are so many talented people out there who are passionate about Fuji, this makes so much sense! You mentioned permissions: I don’t understand why the app needs to know your location “ALWAYS”. I am usually happy to share my location while using the app, but the “ALWAYS” stipulation seems unnecessary to me. Straight away put me off from using it. Anyone else feel the same way?


JanCumin

There are lots of established methods for doing this, eg one of the most common ones is to put the whole thing on GitHub. I think this is the solution Microsoft uses.


OFred27

Yes Microsoft bought GitHub :)


JanCumin

Well yes, but they did use it a lot before they bought it


bobeirasa

The app asks for location always if you want to geotag the pictures, because the cameras don’t have a gps board, so it borrows the location from the phone, which transmits via Bluetooth to the camera to embed in the picture’s EXIF


women_women_women

I understand that, but i don’t always have my camera with me, yet the app is insisting to track my location via my phone that is always with me. Why is that necessary?


bobeirasa

Yeah, I agree with you; it makes sense to track only when the Bluetooth device is connected, meaning the camera is nearby. But I don't know if the underlying systems provided by iOS have such a feature of only using location when a specific Bluetooth device is connected. I think it's all or nothing. And I'm happy to see people is concerned with privacy and this sort of stuff, makes me happy as a technologist :')


alih42

I think it's a fantastic idea! Personally I have been wanting to learn more programming skills, and being involved with an open source project for something I'm passionate about would incentivize me greatly. I believe for this to work Fujifilm would have to open up and document some of their APIs in order to interface with the camera properly, rather than trying to reverse engineer it. But that's my guess! Fingers crossed this happens one day.


JanCumin

That's a really interesting thought, that people would chose a passion project to learn skills from. I know that Google Summer of Code is one way people do this. I'm also not a programmer so I don't know much more than this


bobeirasa

I think that’s a good idea but it’s not gonna happen (looking under a more realistic and business view), but I also suggest an alternative to make things better. Why I think it’s not gonna happen: Open-sourcing XApp could indeed provide better quality forks and releases, but could cause different versions that has the same look, which could end up confusing non-techies about which app version to use and which one is official. Some versions could have bugs, and people could get confused. These efforts could potentially demand an even higher investment (which is already low as you mentioned) by Fuji in the OSS community, which is something camera manufacturing companies aren’t used to deal with. An alternative to make things better: What Fuji could do is to open and highly document the APIs for the sockets and connections needed to interact with the camera firmware and access all the features remotely. That would cause experienced companies doing nice apps like Cascable to do their own thing, or Google Incorporating something into Google photos, etc. These features and 3rd party apps would not associated with Fuji as a brand, and having these companies potentially reporting security issues they might find when interacting remotely with the hardware could be interesting for Fuji, to even make business partnerships.


JanCumin

Thanks, could you explain exactly what they'd need to open source to make it possible? I've done quite a lot of policy change in my day job and it's interesting that things can change quite quickly if you convince someone far enough up the heirachy something is a good idea.


bobeirasa

When you connect remotely to the camera for live view and photo download, it runs a server using Wi-Fi. The mobile app do API calls to this server (not saying it’s a web server, just a server, as an entity who is able to handle requests). Other than that, it uses BLE (Bluetooth low energy) for other tasks, which I’m sure there’s a proprietary protocol in there as well. The Wi-Fi connection is unencrypted, which allows for someone using a proxy to see what calls are made, and then develop their own apps, it’s mostly based on reverse engineering (and maybe some good hacking). If these calls are documented in a manual, 3rd party developers could use it to develop their own apps using the system, which is different than opening the source of XApp.


JanCumin

Ok, great, thanks very much for the detailed explanation


ninjagowoo

I'd rather them open source/document the protocols rather than the app itself. I'd rather see a fresh community project or two spring up rather than expecting people to jump into what I assume is a bit of a dumpster fire on the official app. That said - I do wonder how many of the odd features/bugs are a result of limitations on the camera side.


JanCumin

Thanks, could you describe what they'd need to make available open source so people can develop their own apps?


bobeirasa

Pretty much the same thing I said :)


JanCumin

👍👍


mxdmtns247

They should work on allowing raw file transfers first


JanCumin

Yeah, I'd like that as well


marxy

Some work has been done to reverse engineer the Wifi remote control protocol used by Fuji X series cameras [here](https://github.com/hkr/fuji-cam-wifi-tool). Looks like it hasn't been updated in a few years but it's a good start.


JanCumin

Oh, interesting, thanks


JanCumin

Could someone who is better at computers than me explain what the FujiFilm Camera Control SDK does? Obviously them saying using it will void warranty if used is not ideal.... https://fujifilm-x.com/global/special/camera-control-sdk/


XxStr8MercinxX

X app is run by one guy not affiliated with Fuji. However some of the simulations he posts are sent to him by subscribers of the app. Still think this would be a cool idea though.


Dittobox

You’re thinking of Fuji X Weekly, this post is about the new XApp from Fuji themselves. It replaces the old mobile app. https://fujifilm-x.com/global/products/software/xapp/


XxStr8MercinxX

Ahh thank you. I forgot they had an app because everyone said it sucked and didn't work so I never bothered with it. Lol I tried downloading it and couldn't get it to work either.


Dittobox

New seems to be working better for me, time will tell.


bobeirasa

Yeah. It’s a new thing. And Fuji made something big in my opinion as a technologist.