Sunday, March 6, 2011

M9Tether 1.8 released

Version 1.8 contains mainly bug fixes and some minor new options.


Preview window

This version adds a button behind the option 'Preview JPG...' to open the JPG viewer. In previous versions, if the viewer contained pictures and you closed it, there was no way of opening the window again. Only by taking the next shot the viewer would show.


Restore set

Adds option to view the restore set when clicking the 'Camera info...' button in the main window. The line above the restore set will indicate if the set is actually written to the camera. This depends on the selection in the main window (on or off).


Bugfixes

Fixes bug where the application would not start up properly. This happened with multiple PTP devices connected to the PC after double clicking on the camera entry in the devices list shown at startup.

Fixes bug where the checkmark 'Use JPG only as preview (do not store on PC)' was still of influence even when grayed out. This could lead to JPGs not being transferred to the PC.

The resource problem of the JPG viewer returned, but now after some 35 shots. I solved this by better detection when out of resources. It means the number of photos being held in one session is dependent on your system. If a resource problem is detected at some point in the session, the first photo of the session will be erased to free up space. If all goes well (apart from not all photos showing when you navigate back) you won't notice anything of this, and every new shot will be shown.


Download

See http://www.mymymyohmy.com/software/m9tether.html for the details and download.


Done?

Apart from more bugs showing up I think I'm done now for a while, unless someone has a request or a good suggestion to extend the program. I can't think up anything new to add at this moment.


Nerd alert...

I've been trying to implement the Profile setting of the camera, but besides the fact that it's a pretty useless setting to implement, it seems (like with a few other settings) the WPD/PTP implementation on the camera side contains bugs.

The profile setting can handle 4 values according to the camera (the numbers 0, 1, 2 and 3) when you interrogate it through PTP.

However, the total number of values it needs to hold is 6 (0 for the dash, 1 for Snapshot profile, 2 to 5 for profile 1 to profile 4).

It means that the camera can hold 6 values but tells the outside world it can only hold 4, with a maximum actual value of 3. This leads to errors when trying to set it to profile 3 (value 4) and profile 4 (value 5) through PTP (those values are then beyond the faulty PTP specs for the setting).

But if you set the profile on the camera, the value set is actually correct (and can go higher than 3).

So, reading the value is ok and you get the right profile number, but setting the value through PTP leads to errors when PTP recognises you try to go beyond that faulty limit of 4 values.

It means that through PTP you can only set the dash, the snapshot profile and profile 1 or 2, but not profile 3 or 4.

Another quirk is that the value is actually implemented as a propvariant bVal - VT_UI1 - which would suggest a boolean 'yes/no' only. Turns out the bVal can hold more than just a 0 or 1 (it's an unsigned byte), so that's not really the issue, but it seems a bit weird.

I'm not fully sure if these errors are firmware related or driver related, but they do make it impossible to implement certain settings correctly. This particular 'profile' bug doesn't seem to be driver related, since it's the camera's software actually claiming the wrong (too low) maximum value.

Then again, I can't rule out the driver messing it up.

Another faulty one is the battery power level.

It's implemented by Leica, but the only value you get out of it is 'ERROR' and 'invalid function called' when it should give back a simple 0 to 100: A percentage of battery power left. But somewhere low level this goes wrong. It would be nice to be able to actually show the battery level during tethered shooting, so it's too bad this isn't working.

I have no clue where this one goes wrong, but it's either the driver or the firmware.

Leica never produced their own driver, so the Microsoft ones will have to do, but testing on Vista does suggest that at least some of the issues are driver related (like the format bug on Vista).

I've looked into producing my own driver for the M9 by the way, but that's such a messy process that I gave up on it. Maybe in future, for now it's not worth the trouble, cause it wouldn't expose new settings, only perhaps - big perhaps - fix a few of these faulty ones.

This all means there's no more settings that can be handled by M9Tether, until Leica brings out new firmware to tackle these bugs (assuming some of them are firmware issues and Leica is aware of them, this stuff is after all pretty nerdy...).

No comments:

Post a Comment