Receipt Printer
A small thermal receipt printer that prints any text, line by line. The paper feeds out from behind a serrated steel tear bar in the head's own rhythm, curls a little as it grows, and can be torn off: it rips along the teeth and falls away.
Everything you set here is what the Code and Prompt tabs give you.
Datasheet
- Mechanism
- Line by line head, Stepper paper feed, Hinged row curl, Serrated tear clip, Gravity strip drop, Uneven thermal ink, Room fixed sheen, Sleeping loop
- Stack
- Vanilla ES modules, Dom, CSS
- Needs
- Nothing — no dependencies
- States
- 13 documented
- Version
- 0.1.0
- Licence
- With a Pass
States
- IdleThe lamp is green; nothing moves; the paper stays where it is.
- PrintingThe lamp is amber. Each line steps out a pixel row at a time, its ink coming with it, then the head rests for the rest of the beat; a long line takes a little longer, a rule or a blank half a beat.
- CurlingThe paper bends toward you, more the further it hangs from the slot; the rows are hinged edge to edge and the curled end catches the lamp.
- TearingBy the Tear key, a call, or a drag down past the resistance: a tug, a rip along the teeth, and the strip falls turning; its top edge is the bar's zigzag and a fresh sheet is already in the slot.
- Auto cutPast the paper length the printer cuts the strip itself and printing goes on.
- Out of paperWhen the roll's lines are used up the lamp goes red and printing waits; set a new roll and it goes on.
- FeedingThe Feed key feeds two lines; held, it keeps feeding.
- Thermal and recycledWarm off-white stock with a faint fibre grain and the head's dot grid, or greyer flecked recycled stock.
- AluminiumA bead-blasted case, steel bar and lit legends.
- GraphiteA soft-touch black case and a blackened bar.
- SoundOptional: a soft whirr for each line, a tick for each key, a rip for the tear. Off by default and only after the page has been touched.
- Off screen or hiddenThe queue holds and nothing runs.
- Reduced motionText appears whole with no feeding; a tear removes the strip; no sound.
What it is for
Output that arrives as a physical process, for the places a product hands something over: an order confirmation, an AI answer printed line by line, a log, a checkout summary, a ticket. Everything printed is real text in the page, announced politely as it prints; Feed and Tear are buttons, and the paper can also be torn by dragging it down. A plain, small API (print, feed, tear, clear) with events for each line, for the end of a job and for the tear.
Original. The paper is DOM and CSS: each printed line is a row of real text in a plane hinged to the one above, so the curl is a bend of the whole strip in perspective and the text stays selectable and readable. The tear bar and the torn edge share one zigzag polygon computed from the width.