Replacing the laser assembly might be
"interesting", as will realigning
the optics. My back-of-an-envelope calculations suggest I need a 0.085mm
spot size to get to 300DPI:
There are of course various optical components in the sanner assemhly. A
pair of cylindrical lenses IIRC, various mirrosm and some kind of optical
uinit on the front of the laser diode.
300dpi = 300 dots per inch, or 1/300in per pixel
1/300 * 25.4mm/in = 0.0846667
Focusing that will be.... "fun", especially with a 20mW blue diode
laser... and I need to find a beam sensor that's sensitive to blue light.
Setting up a (CX engine) scanner from scratch was 'fun' too :-). It's an
IR laser so you can;'t see the beam. I was tracing it through the optical
bits with an IR remote control tester :-).
Seems like it should work... though designing a suitable
constant-current controller with ~3MHz analog current modulation will be
interesting. PWM would require ~768MHz modulation, so analog is the
"easy way out", and beam power is roughly linear from the lasing
threshold (30mA) up to 10mW (~40mA). Hmmm.
The origian laser controller was on/off only (but not a simple design due
to the speed reuired). There was a DAC (IIRC discrete resistors in the
SX engine) to steh laser diode current, but that was done AFAIK once per
page (it depended on the sensitivity of the drum in the toner cartridge,
encoded by a couple of plastic clips on the cartridge detected by
microswitches on the side of the PSU module).
Would uofficial scheamtics of the SX engine be any use? When I've
recovered from the 'treatment' at the local quackshop and when the
temperature has dropped enoguh to be conducive to hacking, I will see
what I can dig out if you are interested.
Of course at
the start of a page, the laser it turned on until the
controlling electronics starts to get beam detect pulses, so it knows
roughly when to ecxpect them thereafter (and can then know when to turn
on the laser for this purpose).
So am I right in thinking it has some form of PLL to generate the pixel
clock from the beam-detect (or motor tacho?) pulses?
Not AFAIK (or at least the CX enginer controllers I've worked on don't).
The motor speed is controlled by a PLL-tpye thing (the chip on the motor
PCB in the scanner unit, with an 'FG' coil on the PCB). Any slight errors
in the bir rate would slightly cheange the size of the printout, but who
actually checks that (rememebr a crystal almost certainly better than 1
part in 1000, so the erors will not be large).
That's along the lines of what I was going to do... lock a fairly
slow-loop PLL off the either the beam detect or the tacho (haven't
decided which), then use the pulses from that to drive the clock input
for the data shifter.
It's like the CX-VDO all over again.... :)
The CX and SX printer engine interefaces are remarkably similar (to the
extend that the CX-VDO simply has a cable from the external DC37
connector to the 34 pin header on the DC controller board, the SX does
have an extra PCB, but it's just logic buffer chips). I should ahve
scheamtics for that board (and the CX engine) too.
I think the PERQ scheamtics books are on bitsavers. Take a look at the
OIO board schematics, you should find a CX-VDO printer interface there.
Agian I shouldbe able to provide details of the state machine ROMs, etc.
-tony