Files
morningedition/README.md

2.1 KiB

morningedition

A daily morning receipt printer for the Epson TM-T88V thermal printer. Prints a personalized "newspaper" every morning at 6:30am via cron.

What it prints

  • Header — date, time, location (Bridgeland, Cypress TX)
  • On This Day — historical fact for today's date (when available)
  • Weather — current conditions, hi/lo, humidity, UV, wind, sunrise/sunset via wttr.in
  • Houston News — 5 live headlines from ABC13 RSS
  • World News — 5 live headlines from BBC RSS
  • Thought for the Day — rotating daily quote
  • Morning Chuckle — rotating daily joke
  • Did You Know? — rotating daily fun fact
  • Local Tip — rotating Bridgeland/Houston tips

Requirements

  • Python 3 (stdlib only, no pip installs needed)
  • Epson TM-T88V connected via USB, configured in CUPS as printer name receipt
  • Internet connection at print time (weather + news)

Usage

# Print to printer
python3 morningedition.py

# Preview in terminal (no printing)
python3 morningedition.py --preview

Cron setup

Already configured at 6:30am Central Time:

CRON_TZ=America/Chicago
30 6 * * * /usr/bin/python3 /home/rich/Devel/morningedition/morningedition.py

Printer notes

  • Prints in raw ESC/POS mode (lpr -P receipt -o raw) — faster and more reliable than CUPS rendering
  • Paper cut is handled via GS V 0x00 in the ESC/POS byte stream
  • ASCII only — no emoji or unicode
  • WIDTH = 30 currently because the printer NV memory is locked to 58mm paper mode (even though 80mm rolls are loaded). To fix: use Epson TM Utility on Windows to set Memory Switch → Paper Width → 80mm, then change WIDTH = 30WIDTH = 42 in morningedition.py line 23.

Files

File Purpose
morningedition.py Main script
diagnose.py ESC/POS font/width diagnostic prints
diagnose2.py Print area and character spacing diagnostics
fixwidth.py NV paper-width fix attempts (v1)
fixwidth2.py NV memory switch sweep (v2)
readmsw.py Attempted memory switch readback via USB