Fix DIP switch doc: was sourced from the wrong printer (DFX-5000, not +)

The plain DFX-5000 has 2 switch banks; the "+" model actually has 3, and
even shared switch numbers (1-1, 2-3, etc.) mean different things between
the two. Re-derive every recommendation from the real DFX-5000+ product
info sheet and add the SW3 bank (page length, skip-over-perforation, and
paper-handling features, including automatic tear off).
master
Amir Alexander Abdelbaki 2026-07-21 13:25:25 +02:00
parent 649b93acf4
commit 29c10cfac8
1 changed files with 30 additions and 16 deletions

View File

@ -14,27 +14,41 @@ printer:
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".
The DFX-5000+ has three DIP switch banks (SW1, SW2, SW3) — different from,
and not a superset of, the plain DFX-5000's two-bank layout. Even switches
that share a position number between the two printers can mean different
things, so don't carry settings over from the non-"+" model.
## DIP switch 1
Reference: Epson DFX-5000+ Product Information sheet (3/15/94), "Setting
the DIP Switches".
## SW1 — emulation, speed, character set
| 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. |
| 1-1 | OFF | ESC/P mode (not IBM mode) | Factory default. `txt2printr.sh` only relies on the generic `ESC @` reset, which works the same in both modes, and staying in ESC/P mode is what makes 1-4 through 1-8 below select an *international character set* rather than the unrelated IBM-mode option bits (auto-CR-by-LF, code-page selection, etc.). |
| 1-2 | OFF | High draft speed | Fastest print speed on the datasheet's table (560 cps at 10 cpi) — this is a coarse ascii-art novelty print, not a document, so speed matters more than finish. |
| 1-3 | OFF | Draft quality (not NLQ) | NLQ is roughly 5-6x slower (84-101 cps vs. 420-560 cps) for characters that already look better rendered coarsely — draft keeps photobooth turnaround fast. |
| 1-4, 1-5, 1-6, 1-7, 1-8 | OFF, OFF, OFF, OFF, OFF | International character set: Italic U.S. | 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 U.S. is the only setting guaranteed not to corrupt the art. |
## DIP switch 2
## SW2 — zero shape, buffer, line feed, interface, baud rate
| 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. |
| 2-1 | 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. |
| 2-2 | OFF | Input buffer valid (enabled) | Lets the printer accept the whole raw write from `txt2printr.sh` without the host blocking on printer-speed backpressure. |
| 2-3 | OFF | Automatic LF by CR: invalid (disabled) | `txt2printr.sh` already appends an explicit CR *and* LF to every line (`sed 's/$/\r/'` before the trailing `\n`). If this were enabled, the printer would insert its own extra line feed on top of that CR, double-spacing the entire print. |
| 2-4, 2-5, 2-6 | ON, OFF, OFF | Parallel interface (forced, not auto-detect) | `txt2printr.sh` writes to `/dev/lp0`, a parallel port device. The factory default (all three OFF) is an auto-selecting serial/parallel mode that waits up to 30 seconds to see which interface receives data before locking on — forcing Parallel explicitly skips that standby delay on every print. |
| 2-7, 2-8 | — | Serial baud rate (don't care) | Only meaningful when SW2-4/2-5/2-6 select a serial mode; ignored once Parallel is forced above. Leave at factory default (OFF, OFF). |
## SW3 — paper handling
| Switch | Position | Function | Why |
| --- | --- | --- | --- |
| 3-1, 3-2 | OFF, 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. |
| 3-3 | OFF | Skip-over-perforation: invalid (disabled) | The printed art is a continuous strip with no page concept on the software side; if enabled, the printer would silently insert an extra line-feed gap wherever a perforation falls mid-image, splitting the art. |
| 3-4 | OFF | Paper memory area 1 | Factory default. This only matters if you swap the same job between the front and rear tractors (each can remember its own top-of-form position); this project only ever uses one paper path. |
| 3-5 | OFF | Overlapping forms: invalid (disabled) | Factory default. This targets a specific overlapping multi-part form stock the project doesn't use — plain continuous paper. |
| 3-6 | OFF | Forms with a label: invalid (disabled) | Factory default. Not printing on label stock. |
| 3-7 | OFF | Skip binding: invalid (disabled) | Factory default. Not using bound multi-part forms. |
| 3-8 | **ON** | Automatic tear off: valid (enabled) | Not the factory default. When the input buffer goes idle after a print, the printer auto-advances the paper just far enough to reach its built-in tear-off bar (minimal waste), instead of relying only on `txt2printr.sh`'s own form feed — which, in roll mode, feeds a full page length (11in, per SW3-1/3-2) forward on every single capture. Worth confirming on the actual hardware that this doesn't double-feed against the script's explicit form feed; the product info sheet doesn't document the exact timing interaction. |