Personal View site logo
GH4 — Use iPhone as wireless monitor
  • 153 Replies sorted by
  • @fweinb Have you noticed that the header changes length when record is enabled? On the GH4 the header becomes 16 bytes longer (16 extra bytes inserted after byte 46).

  • That positions changes, it looks like related to lens somehow

  • @mjas and @Rambalac header length changes depending on the mode (P, A, S, M, Auto) you're in, I don't think the lens changes anything. I think A, S, M are the same, and P and Auto are shorter.

    Didn't play with GH4, and didn't look at this for a loooong time, but it's what I remember.

  • @lenuisible It changes depending on lens and focus mode. In face recognition if face is visible it's sending bounding box and eye point, if focus point is selected its position is also sent. GH3 and GH4 are the same, and header can change more than 16 bytes. No difference in PASM modes.

  • @lenuisible @Rambalac I've seen that the header length changes, but as far as I can see the first 46 bytes seem to be the same (judging from GH4 and G80 headers). However I can't see anything in those first 46 bytes that indicates what comes directly after.

  • @mjas If you still want to know how parse that data check my c# app sources ;)

  • @Rambalac Sure. Do you have a link? I could only find Panasonic RAW decoding code online. :)

  • @mjas By the way, what is specific in connecting to GX85? I dont have that camera, but people say they cannot connect and camera tells them to update app.

    Do you need help with Offframe bytes? I updated parsing adding new parameters and fixing difference in two different types of focus area coords.

  • @Rambalac G8x (and maybe GX8x) added some sort of device check before the connection is established. If you (or anyone else working on those apps) want to support those new cameras, you have to add some commands before the classic "recmode" camcmd.

    On my G80, when I use my good old Galaxy S3, the commands look like this (but I'm pretty sure it should work with any camera and any controlling device) :

    http://Cam_IP@/cam.cgi?mode=accctrl&type=req_acc&value=4D454930-0100-1000-8001-020D0090325B&value2=GT-I9300

    http://Cam_IP@/cam.cgi?mode=setsetting&type=device_name&value=GT-I9300

    Rgds,

    Clement

  • @lenuisible Oh, ok I added that for better Image App like behavior, it will be available in next update together with LUTs . Thanks

  • @mjas I noticed that too. I only have the FZ1000 to test stuff but I think I figured out must of the stuff now. The only information that are missing are the focus/ae points that are currently displayed. I don't have much time to work on it anymore. I updated the documentation on github to include the new calculation for the header stuff. You can find it here: https://gist.github.com/FWeinb/2d51fe63d0f9f5fc4d32d8a420b2c18d

  • @Rambalac I've checked now with G80 and GH5, and the camera seems to repeat

    http://Cam_IP@/cam.cgi?mode=accctrl&type=req_acc&value=4D454930-0100-1000-8001-020D0090325B&value2=GT-I9300

    Where value = device_id (can be really anything), and value2 = <arbitrary name>

    The Pana app keeps polling the above command, and the camera keeps answering ok_under_research,etc,etc,etc (etc is just more info) until you've accepted the connection on the camera. Once accepter, the camera will reply with a plain ok,etc,etc,etc.

    After that I've witnessed both cameras be sent

    http://Cam_IP@/cam.cgi?mode=setsetting&type=device_name&value=GT-I9300

    And after that it seems like the procedure is the same.

  • Yeah, I fixed that 3 days ago, tested in local camera store.

    Extremely stupid is new cameras send CSV response while old cameras sent XML error response.

  • @Rambalac Indeed a very unnecessary difference ...

  • @Rambalac Oh, just saw your comment about the off-frame bytes. I think I'm good with them for the time being. Thanks tho. :)

  • Sorry for hijacking this thread, but the last posts relate directly to what I'm interested in.

    I've been developing a follow-focus Android app for my G85 over the last weeks and just published an early access version. The idea is to use your phone to remote control servo-lenses such as the kit lens. While the the speed of the follow-focus is very limited, it might be good enough for certain setups.

    However, I would like to figure potential issues with other popular models such as the GH4 before I post about it elsewhere.

    I have three questions:

    First, does anyone know what happens if you send the access control command (and the set device command) to older models?

    My untested code assumes that these cameras will respond with either err_non_support, err_param, or HTTP code 404.

    Second, is cam.cgi?mode=getinfo&type=capability a recent addition or safe to use with older models?

    @Rambalac You avoid the first calls entirely for models that don't support them and I could not find the capabilities call in your code. Is there a particular reason?

    Finally, is there a way to get the current focus without sending a focus change command?

    I have found nothing of that sort in the HTTP data. But I haven't touched the video stream headers yet. @fweinb Do you see a chance something like that is hidden in the fields you could not identify yet?

    Any help is appreciated. If you need something to be tested with a G85 (actually, it is a G81), let me know.

    The code of my app is available here (including a getting started guide):

    https://bitbucket.org/jimknopf/fokoid/overview

    Play Store link (Early Access):

    https://play.google.com/store/apps/details?id=com.gmail.fokoidapp&hl=en

    (you can also find a copy of the APK on Bitbucket)

  • @jimknopf I don't see any reason to request cam.cgi?mode=getinfo&type=capability . Some features could be useful like camspec but I'm not sure about full meaning so I prefer try and fallback for such features like focus area resize by pinch. I get everything I need and much more from allmenu and my minimum capability is GH3. I ignore request access for specific older cameras just to make logs cleaner :)

  • @Rambalac Thanks for the information! I am checking cam.cgi?mode=getinfo&type=capability for the tele-fast and wide-fast commands. Furthermore, I check whether oneshot_af_enable is listed as spec. But to be honest, I am not sure whether any of this is necessary.

    By the way, I forgot to mention that my app includes a report function that goes through all command one-by-one and records the responses. So if anyone has an Android device (5.0 or newer) and some time to kill…

  • @jimknopf Does oneshot_af_enable mean AF in manual focus mode? Do you know any camera not able tele-fast and wide-fast?

    I use Android VPN non-root sniffer to check what Image App is doing but have only GH3 and GH4.

  • @Rambalac That's my guess. The AF is not that important to me, but knowing whether the fast focus change commands work is. Therefore, the check at the beginning.

    I only have access to a G81, so no, I don't know about cameras not supporting it. I just assumed that there is a reason why some commands are listed explicitly, while others are not.

    Do you know the capabilities command from your GH3 and GH4? That would already answer my first question.

    I had no success with sniffers installed on my phone – which one are you using? So far I have used macOS's built in sniffer to record the traffic between the camera and the phone. Then analyzed the data in Wireshark.

    The report function of my app is of course much more primitive. All it does is to save the responses of the 11 commands it goes through and then allows to send the data via email. In particular, the app itself is not phoning home.

  • @jimknopf GH3 has fast focusing so I bet everything newer also has

  • @Rambalac OK, then I will remove it from the connection procedure. Thanks!