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.
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.
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 |
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. |
SW2 — zero shape, buffer, line feed, interface, baud rate
| Switch |
Position |
Function |
Why |
| 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. |
Summary
Only two switches need to move off their factory default — everything else
stays OFF:
- 2-4 — ON (forces Parallel interface, skipping interface auto-detect)
- 3-8 — ON (Automatic tear off)
| Switch |
1-1 |
1-2 |
1-3 |
1-4 |
1-5 |
1-6 |
1-7 |
1-8 |
| Position |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
| Switch |
2-1 |
2-2 |
2-3 |
2-4 |
2-5 |
2-6 |
2-7 |
2-8 |
| Position |
0 |
0 |
0 |
1 |
0 |
0 |
X |
X |
| Switch |
3-1 |
3-2 |
3-3 |
3-4 |
3-5 |
3-6 |
3-7 |
3-8 |
| Position |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 = ON, 0 = OFF, X = don't care (2-7/2-8 only matter in serial mode,
which isn't used here).