diff --git a/epson5kp-dipsettings.md b/epson5kp-dipsettings.md new file mode 100644 index 0000000..5b7e83e --- /dev/null +++ b/epson5kp-dipsettings.md @@ -0,0 +1,40 @@ +# Epson DFX-5000+ DIP switch settings for ASCII Photobooth + +Recommended physical DIP switch positions for running the DFX-5000+ with +this project, matching `printer.conf.epsondfx5kp.bak` (`PRINTER_A4=false`, +`PRINTER_MAX_LINES=0`, `PRINTER_MAX_COLS=136` — continuous fanfold paper, +parallel port, no fixed page length) and how `txt2printr.sh` talks to the +printer: + +- Writes raw ESC/P to `/dev/lp0` (a **parallel** connection). +- Sends `ESC @` to reset the printer, then the ascii-art body with each + line explicitly terminated `\r\n` (CR+LF), then a form feed to clear the + print for tear-off. +- Treats the printer as continuous/roll stock with no software concept of + a page boundary — it never relies on the printer stopping mid-job at a + perforation. + +Reference: Epson DFX-5000 Product Information sheet (9-Pin Printers, +12/12/88), "Setting the DIP Switches". + +## DIP switch 1 + +| Switch | Position | Function | Why | +| --- | --- | --- | --- | +| 1-1 | OFF | Normal (not condensed) pitch | Matches `PRINTER_MAX_COLS=136`, which is the datasheet's 10 cpi column count. Forcing condensed mode here would silently pack more (narrower) characters per line than the config expects. | +| 1-2 | OFF | Zero not slashed | Ascii-art density maps can use `0` as a shading character; an unslashed zero keeps its shape closer to what the art conversion intended. | +| 1-3 | OFF | Italics character table | Doesn't affect output — the art only ever uses printable US-ASCII (0x20-0x7E), never the high-bit code page this switch selects between. Left at the printer's factory default. | +| 1-4 | OFF | Input buffer enabled | Lets the printer accept the whole raw write from `txt2printr.sh` without the host blocking on printer-speed backpressure. | +| 1-5 | OFF | Draft quality | NLQ is roughly 5x slower (80-96 cps vs. 480-533 cps per the datasheet's speed table) for characters that are already a coarse ascii-art novelty print, not a document — draft keeps photobooth turnaround fast. | +| 1-6, 1-7, 1-8 | ON, ON, ON | USA international character set | Every other character set in the DIP table remaps one or more of `# $ [ \ ] ^ \` { \| } ~` to an accented/local character. Ascii-art density maps commonly use several of those symbols, so USA is the only setting guaranteed not to corrupt the art. | + +## DIP switch 2 + +| Switch | Position | Function | Why | +| --- | --- | --- | --- | +| 2-1 | OFF | 11-inch page length | Matches standard letter-width continuous fanfold stock. Mostly moot since `PRINTER_MAX_LINES=0` means the software never treats this printer as page-bounded, but it keeps the printer's own top-of-form tracking sane if you ever use its front-panel form-feed. | +| 2-2 | OFF | High-speed draft | Fastest print speed on the datasheet's table (533 cps at 10 cpi) — same "keep photobooth turnaround fast" reasoning as 1-5. | +| 2-3 | OFF | Skip-over-perforation disabled | The printed art is a continuous strip with no page concept on the software side; if this were ON, the printer would silently insert an extra line-feed gap wherever a perforation falls mid-image, splitting the art. | +| 2-4 | OFF | Auto line feed disabled | `txt2printr.sh` already appends an explicit CR *and* LF to every line (`sed 's/$/\r/'` before the trailing `\n`). If this switch were ON, the printer would add its own extra line feed on top of that, double-spacing the entire print. | +| 2-5, 2-6 | OFF, OFF | Parallel interface | `txt2printr.sh` writes to `/dev/lp0`, a parallel port device. The serial/parity combinations on this switch pair don't apply. | +| 2-7, 2-8 | — | Baud rate (don't care) | Only meaningful in serial mode; ignored once 2-5/2-6 select Parallel. Leave at factory default. |