M9P sensor fixed by MAXMAX - big problem!

What seems unresolved is the $3000 payment. For the money paid, what was returned was unusable without the gracious 3rd-party help from Brian. Had this happened to someone else (and likely it has), they’d have a faulty camera
 
fantastic.
I can't believe you already were in programming in the '70s... who needed software back in the '70s?? it should be the very early birth of this kind of things

Fortran was developed in the 1950’s and was used for all sorts of scientific, military, medical, statistical, and engineering calculations. For translating Fortran code into machine language, IBM had various Fortran compilers (a compiler is program that does the translation). Some Fortran compilers were designed to produce fast running code; others to produce tight, less memory-intensive code. But the IBM Fortran H Optimizing Compiler in particular is legendary in its ability to produce object code superior to what most programmers could write in assembly language. This was in the 1960’s.

I’m actually delighted to see Brian’s Fortran code. In 1970 I learned Fortran IV at USC’s System Simulation Laboratory on their IBM 360/44 (I still have some of my card decks). Later, at UCLA, they loved PL/1, so that’s what we programmed in. The last time I used Fortran was 1978-1980. After that, it was all C and some C++ all the way to 2018. But I used assembly language at every opportunity when I could justify it - specially in embedded firmware. Anyway, I’ve always known Fortran was alive and well in some circles.
 
This might be a stupid question, but I'm curious where you put this code. Is it downloaded into the camera's firmware somehow (if so, how), or is it added to software like PS or LR (a filter maybe) for post-processing?

It won’t run in firmware. The Leica M9 uses Blackfin processors that use their own assembly language. There is no simple way to work on the processor firmware without VisualDSP++ ($3500 USD) or CrossCore Embedded Studio ($995).

The sensor corrosion issue- that was Kodak choosing poorly. They used S8612 glass for their full-frame DSLR's, but with that camera- thick glass sandwich to protect from corrosion. Optically- S8612 glass is the most efficient IR absorber available, with high transmittance in the visible. Leica ran a program for several years to replace the sensor for free, then for about 25% of the actual cost of the sensor. CCD production ended. I'm lucky to have new sensors in my M9 and M Monochrom. My M Monochrom- bought in 2012.

I doubt that Kodak set the design specifics of that parameter. The problem is thickness and operation of the microlenses on the M sensors which are under the ir cut filter. S8612 is by far the best glass for this purpose, but in M9 series cameras it wasn’t sandwiched to keep the coverglass thin. What is baffling is that they did not coat it. S8612 corrodes when exposed to normal atmospheric conditions. Hence our problem.

I fully understand the desire to keep using the M9, M9P, and M Monochrom. They produce images like no other camera. I've used my M9 for over 10 years, see no reason to replace it.

If this problem can be solved by "just typing", after all writing Code is Just Typing, I'm happy to help. Plus my wife pointed out that I am geeking out over this. Too Much Fun.

The calibration code reads the Sn from the DNG file, creates a calibration file using the serial number if verified in both locations in the DNG file. Now all I need to do is have the correction program read the SN from the DNG file being corrected and use it to open the proper calibration file. The user will need to store the cal files in a subdirectory, like "C:\M9CAL".

Your code is cool and elegant Brian. RFF is very lucky to have acces to your expertise.

These are really elegant cameras. The sensor glass debacle is a real shame. The S2 and S typ 006 have the problem too.

Marty
 
This is awesome Brian.

I can volunteer to move the code to a newer platform if needed. Future proofing it :)

(have worked in Fortran in my first job, and design architectures for the Cloud now)

WRITE( *, *) 'APPLY NUC CORRECTION '
DO 10 J= 1, ROWS
DO 10 I= 1, COLUMNS/ 2
X= FLOAT( IMAGE( I, J))
Y= X* SLOPE+ OFFSET
BIGVALUE= INT( Y+ 0.5)
IF( BIGVALUE .LT. 0) BIGVALUE= 0
IF( BIGVALUE .GT. 16383) BIGVALUE= 16383
IMAGE( I, J)= VALUE( 1)
10 CONTINUE

The code for the NUC was easy.

Fixing my routine originally written to change image tags in the DNG file to "Linear DNG"... Whoops. Took longer than fixing the non uniformity problem.

Just to add- I suspect that the linear fit will not change much with the Plus 2 and Plus 3 images, but those will help to cover the full intensity range. The Plus 1 of the 18% grey card gives about 25% of saturation.
 
The cover glass for the KAF-18500 is sealed, but it does not stand up to the wear and tear of time. The sensor itself, along with the offset Microlens array: is a Kodak product. Leica was the primary user, but ONSEMI sold them through DigiKey and other sellers. ONSEMI shutdown the CCD production line.

Ash- I will make the source code available. I am using the Open Watcom V2 Fortran-77 compiler, released in 2017. There is also a companion C/C++ compiler for the suite. "No Assembly Required".

I still do a lot in assembly and Fortran for embedded systems.
 
The cover glass for the KAF-18500 is coated, but it does not stand up to the wear and tear of time. The sensor itself, along with the offset Microlens array: is a Kodak product. Leica was the primary user, but ONSEMI sold them through DigiKey and other sellers. ONSEMI shutdown the CCD production line.

I have taken 5 M9 series cameras apart and checked the sensor cover using microscopy and spectroscopy. I sectioned one for electron microscopy. The design spec may require the coverglass to be coated, but the coverglasses on none of these cameras was coated at all. I am still astounded about it, but it explains the corrosion.

IMG_3206.JPG


My 10760 Monochrom, purchased in August 2012, and the first one in Australia, had a corroded sensor by November 2012. I loved the camera, but I had it for 3 years and of that period, it was with Leica more than I had it. The sensor was replaced three times while I had it, and twice more by its new owner, who I believe still has it and finally got the non-corroding sensor in its last exchange.

sinti+woman.jpg


Marty
 
"First off, all 35mm FF sensors are stitched. "

That there would be 2 half sensors is nonsense. There would be a gap between the 2 sensors.
The FF sensor is possibly read out in two halves to increase the read-out speed. We should not forget, that the M9 has the old fashioned CCD-sensor.
Also the sensor is not corroded, but the cover glass is faulty. The communication between Kodak and Leica was not optimal during the development of the camera. In the Leica forum LUF under M9 there is a long thread discussing the problem. Kolari vision offers a solution for 1000$.
 
The sensor is Stitched, it is in two halves. 20+ years ago my work had a 100MPIxel monochrome sensor made from stitching four 25mpixel arrays. On a table-sized blow-up, you could not see the stitching.

Edit- some sources label this fabrication technique as being "Butted".
https://harvestimaging.com/blog/?p=1568

20+ years ago- we called it a Stitched Sensor.

The datasheet for the KAF-18500 states that it is sealed. The part nomenclature has the same statement in it. I guess "Sealed How" is the question. If the glass was untreated, the S8612 data sheet indicates corrosion will start in a few months. My M9 went 8 years before it showed the smallest amount of corrosion. Leica replaced the sensor. Parts get revised through their production cycle. Some could be different from others.

Kolari will not work on the M9P nor will it work on the M Monochrom.
 
I added the test for the "M Monochrom" text located at offset '03e4'x in the DNG file. The code then uses the serial number found at location '0424'x and '0688'x. If the "M Monochrom" string is not found, it assumed the M9 locations for the serial number. I tested this on my own M Monochrom- seems to work.

The new program names are "M9CAL" and "M9FIX", run at the command line. The program asks for a filename, just hit enter and it processes all files in the current directory. Have a specially named file- you can still process it by giving the filename at the prompt. Runs under Windows XP through WIN10.
 
thanks obviously to Brian, and thanks to the other Rff members that helped me to find a way out from this mess...

next week I will return home and finally I will try the well cameras with the correction software!

in the meantime Dan disappeared and I haven't still news from credit card company...
 
"First off, all 35mm FF sensors are stitched. "

That there would be 2 half sensors is nonsense. There would be a gap between the 2 sensors.

The sensor split is clearly visible on the KAF-18500 data sheet.

The datasheet for the KAF-18500 states that it is sealed. The part nomenclature has the same statement in it. I guess "Sealed How" is the question. If the glass was untreated, the S8612 data sheet indicates corrosion will start in a few months. My M9 went 8 years before it showed the smallest amount of corrosion. Leica replaced the sensor. Parts get revised through their production cycle. Some could be different from others.

I am beginning to think that the data sheet means that the coverglass seals the sensor. I'm half joking. Of course it is possible that the sensor cover differs throughout the production of the sensor. But my Monochrom did corrode in a few months, reliably and repeatedly.

Kolari will not work on the M9P nor will it work on the M Monochrom.

Having seen the different epoxy used on the M9, M9-P and MM cameras I am not surprised. It is a crazy amount of work to get the cover glass off the sensor in an M9-P or MM without breaking the sensor, filling it with ultra fine glass powder, or doing it some other sort of a mischief.

Marty
 
My M Monochrom was delivered in Dec 2012, showed the first spot of corrosion just short of 5 years- was replaced for free. There is a huge disparity in the amount of time that corrosion shows up- must be environmental? Too many people had S8612 sensors replaced that also went bad in short order. Cannot be a production problem. It was a poor choice of material for this camera. This is where the project manager should have stepped in with some common sense when the engineers went for absolute efficiency for transmitting visible light at the expense of durability. BG55 passes about 10% less visible light than S8612, is used in the newer KAF-18500. I used to manage a team of optical engineers. "We don't need multiple-aspheric surfaces for the optics, the sensor is only 320x200 resolution"...been there, done that, prefer working on the Lab Bench again.
 
There is a readout for the left half of the sensor and one for the right half. That makes sense, the read velocity increases.
Of course there is no mechanical gap in between in the pixel array.
Imagine somebody takes a picture of an engaged couple. And one eye of the bride is on the gap. What do you think the firmware makes of the eye? Does it fill the gap with skintone or does it have eyes in its sensor database, perhaps the eye of a frog?
 
The image sensor itself is made in two halves. The light sensitive pixels are up to the edge of the section. The two sections are joined together. This becomes part of the same package. The camera does not use two independently packaged detectors. However- there were digital cameras that used beamsplitters and independent chips, the early Minolta cameras worked that way.
 
Back
Top