real actual dragon (θΔ). follow for weird photography stuff and the occasional rawr


(first - full photo scaled to 20 MP, second - crop of 64 MP original at 1:1, third - The Contraption)

📷 Ciro-flex B (1947)
🔎 Wollensak Velostigmat 85mm f/3.5
🎞️ Kodak Ektar 100
🖨️ Nikon Coolscan 8000, custom motherboard


the good

  • picture! in color, too
  • better than my epson flatbed for sure
  • the electronics and firmware pretty much work which i have to remember was not a given going into this project
  • i have the only coolscan 8000 in the world that has a native USB interface. what the hell have the rest of you been doing

the bad

  • the photo is out of focus. i believe (having inspected my other scans) that this is because the original is out of focus; i can see some film grain in the punch-in that i think is distinct from digital noise
    • also, like, i know for damn sure the scanner is in focus (i've got a simple script to run contrast-detection AF and nothing moved the focus motor between that and the scan) and i don't believe there's anything i could be doing on the electrical side to make it look like it wasn't
  • there's a lot of digital noise though. a few categories of that:
    • general background noise like you get in any analog system (probably not worth worrying about)
    • the occasional random high-level glitter spot (???)
    • a few barely-noticeable vertical stripes because i'm currently only doing a single linear regression for calibration
    • and most obviously those giant glittery stripes every 85 pixels. these are essentially an artifact of my duct-taped together analog block so i'm fairly confident they'll go away on the next hardware rev
  • no IR cleaning yet. not only did i not produce an IR channel for this scan, i wouldn't be able to do anything with it. gotta write the software and all that

the ugly

  • this scan (which is not even full-frame on the scanner) took over thirty minutes. it should be about 60 seconds for a 6x6 scan
  • that's mostly because the analog block on this board is completely fucked
    • only one input channel works. there should be three, the CCD has three rows of pixels which are supposed to be used for 3x faster scanning
    • the one working input channel is just the ADC, there's no frontend. the preamplified CCD output off its daughterboard is going straight into the ADC. this is very not good for noise performance since the input impedance is all out of whack and there's no filtering, plus no ability to offset the input signal means i have to use a voltage divider to get it within the ADC's input range, so the signal hitting the ADC has an AC gain of about 0.75 instead of the ~110 it really wants
    • so i've had to make that up with a combination of ~20x the normal exposure time (hence slow scanning) and a ~5.5x effective digital gain ("on paper" it's 22 in software but there's always going to be a 4x in there to get it to the full scale 16-bit output). both of these suck huge; exposure time for obvious reasons and that much digital gain is also not very good for the image performance. we're looking at roughly codes 4400 - 9200 on a 14-bit DAC here
  • it's also because the firmware is inefficient
    • in theory, with 18 ms exposure per channel i should be able to scan a 6x6 frame in about 8.5 minutes. i should be able to get this version of the firmware to do that with relatively little work, but 60 seconds will need serious hardware and firmware rework (which i am already planning)
  • the digital stuff on the board also isn't all working but it's much easier to tape that back together. in fairness it has been over a year since i last did any SMD work and it was a much simpler project
  • i probably should not go spend $200 on the next hardware rev of this while i'm unemployed but that might not stop me

anyways, quite happy to see it start coming together. definitely can't call it done yet but still going that direction


You must log in to comment.

in reply to @wolf-apparatus's post:

do you think you'll be able to get past whatever the problem is with the 8000 that resulted in banding unless one used "fine mode" to scan with one line? i have no clue what part of the scanner (or software) the issue would originate in

uh that is gonna be a solid "maybe". i'm not directly familiar with the issue (if you have examples i'd love to see 'em); i assume it stems from the three analog channels for each CCD row having slightly different non-linear characteristics, but since this hardware revision only has the one analog channel working i haven't been able to see for myself

the good news is that if that's the case it's likely i'll be able to sort it out. i'm storing calibration data on the host computer, so i have the option to store a whole fucking lot of it if necessary; there's nothing stopping me from, for instance, generating and storing a 256-point curve for every color and pixel (about 430 megabytes), which if that isn't enough to uniform that photo response i dunno what is

assuming i can calibrate all three lines to match exactly (as described above) that should be pretty easy, good idea. would just require a couple tweaks to the host-side software

speaking of cool scanner tricks i'm also interested to see if i can't do some stuff to get it to scan the entire 6x18 gate with one user interaction. unsure whether that will be clever hardware control or just an automated and well-informed "stitch three overlapping 6x7 scans" sort of thing but i think at least one of those approaches will work

so the ls-8000 actually has two "move the film and out" motors. each can only move the film about 10 cm by itself, and only one of them is precise enough for scanning; the high-precision "carriage" system moves the film 1/4000" with each step, whereas the low-precision "tray" system is about 1/400" per step and not particularly accurate at that

normally the scanner works by using the tray motor to set the start of the frame and then scanning across with the carriage, so scanning 6x18 requires stopping and resetting the carriage at least once.