logajan@ns.network.com (John Logajan) (08/20/89)
HP DeskJet Plus / Atari ST power-up sequence problem -- solved! I have discovered that if the Atari ST parallel (printer) port STROBE line (normally high) is pulled toward ground (low) by a heavy load (such as a powered-off HP DeskJet Plus), the ST STROBE line will thereafter stay low until the load is removed (by powering up the DJ+), and until software intentionally sets the STROBE line high again. (Weird note: the STROBE line has to be pulled low for something on the order of 1/2 second or longer for it to "stick" low -- I do not know why this is.) Once the STROBE line gets stuck low, the DJ+ responds with a BUSY set high. The Atari TOS will not send any data to the printer while the BUSY line is high -- so no printing can take place. There are six solutions to this grid-lock (I recommend #6): 1.) Power up the DJ+ first and the ST second. (Then the ST will never see a heavy "low" load on the STROBE line.) 2.) Push the Atari RESET button. (The reset sequence sets the STROBE line high, clearing the problem.) 3.) Have a software routine which sets the STROBE line high. (No sense putting this in the auto folder to clear it on reboot, since reboot itself clears the problem -- until next time.) 4.) Power cycle the DJ+ with a print job in the ST "queue". (You will lose the first part of the print job, and I think the print job must be a minimum length of bytes long to get it over the DJ+ power-up self-test delay.) 5.) Momentarily ground the BUSY line with a print job in the ST "queue". (I'm not sure if you will lose the first byte of your listing with this method.) 6.) Install a PNP transistor in the STROBE line. This fix is much simpler than it may seem. Also it simultaneously solves the heavy loading problem the DJ+ puts on the Atari STROBE line. (Without the transistor, the loading on the STROBE line appears to push it near the 0.8 volt level limit. The DATA lines do not seem to have same problem, their low levels seem to be well within limits -- so no buffering seems needed.) You need: - One 2N2907 (or practically any PNP transistor) - Access to the Printer cable wires for pin #1 (STROBE) and any ground pin (pins 18-25 on the Atari end, or pins 19-30 on the DJ+ end.) I managed to do this inside the cover of the Centronics-type connector. Step #1 Disconnect the STROBE wire from pin #1. Step #2 Connect the Emitter (E) wire of the transistor to the Printer side of the wire/pin#1 split you did in step #1. (It depends upon which end of the cable you put your transistor into.) Step #3 Connect the Base (B) of the transistor to the Atari side of the wire/pin#1 split you did in step #1. Step #4 Connect the Collector (C) of the transistor to one of the ground pins (18-25 Atari end, or 19-30 DJ+ end.) [Caution: Metal cased transistors often have the case electrically connected to the Collector -- hence the case will most likely be grounded -- avoid having the case touch anything that should not be grounded.] Step #5 Close up and/or wrap up. Make sure the transistor case and connections are not touching anything they shouldn't be touching. Figures: -----> Ground ! / C B !/ from Atari STROBE >----! !\ \ E ! ----------> to Printer STROBE ------- / B \ / E \ Metal Can style transistor -- common pin == ! configuration -- bottom view. \ C / \ / ------- ---- ! C \ ! B ! Plastic Flat sided style transistor -- common ! E / pin configuration -- bottom view. ---- Appendix: Speed on the parallel printer port. The Atari does screen dumps at about 1250 bytes/second. The Atari does text dumps at about 714 bytes/second. A GFA Basic program I wrote dumps graphic bytes to the DJ+ at about 2174 bytes/second. Since an 8 by 8 inch graphic picture with 300dpi density requires 720,000 bytes -- you can see that the dump alone should take almost 6 minutes for even the GFA program. This all suggests that one might want to take advantage of the DJ+'s mixed mode graphic commands, where "blank" space is jumped over. Software should be able to "count" over these locations much faster than it would take to dump them in dumb mode. THE END. -- - John M. Logajan @ Network Systems; 7600 Boone Ave; Brooklyn Park, MN 55428 - - logajan@ns.network.com / ...rutgers!umn-cs!ns!logajan / john@logajan.mn.org -