Skip to content

dreistudio/inkless

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Inkless Possibilities

A wireless thermal receipt printer powered by an ESP32 and a QR204 58mm thermal print mechanism. Print text, images, QR codes, and AI-generated receipts over WiFi from a browser or the command line.

Built for Strebergarten, our innovation studio. The AI modes are garden-themed because that's us. Yours will be different and uniquely yours. You won't get around cringey puns in this project...

Read the full build story →

What it does

  • Web UI at http://printer.local — type a message, hit print
  • AI modes — generate prints using Claude (affirmations, haikus, personalized notes, end-of-day rituals)
  • CLI (rp command) — print text, images, QR codes, notes, and todos from the terminal
  • HTTP API — full ESC/POS control over WiFi

Hardware

Part Notes
ESP32 dev board Any ESP32-WROOM-32 variant
QR204 58mm thermal printer 384 dots/line, 203 DPI, ESC/POS, 5–9V (datasheet)
58mm thermal paper rolls Standard receipt paper
5V power supply Shared or separate for printer; USB for ESP32

Wiring

ESP32 GPIO17 (TX2) ──→ QR204 RX
ESP32 GND          ──→ QR204 GND
5V supply           ──→ QR204 VH (printer power)

The printer UART runs at 9600 baud (8N1).

Setup

Note: This project was built for a specific hardware setup and hasn't been tested as a standalone kit yet. The instructions below describe the general flow, but you may need to adapt things. If you run into issues, open an issue (or more likely to get a quick response, ask your LLM-of-choice about it.)

1. Configure WiFi

cp firmware/include/secrets.h.example firmware/include/secrets.h
# Edit secrets.h with your WiFi credentials

2. Flash firmware

Requires PlatformIO. Connect the ESP32 via USB:

cd firmware && pio run -t upload

On success the printer prints a startup receipt with its IP address.

3. AI features (optional)

The AI modes require inkless-server, a lightweight proxy that holds your Anthropic API key:

cd inkless-server
cp .env.example .env
# Edit .env — add your ANTHROPIC_API_KEY
pip install -e .
python -m uvicorn server:app --host 0.0.0.0 --port 8100

Then add the server URL to secrets.h:

#define INKLESS_SERVER_URL "http://YOUR_IP:8100"

Without inkless-server, all direct print features still work — only AI generation is unavailable.

4. CLI (optional)

cd cli && pip install -e .
rp status

Project structure

firmware/          ESP32 firmware (PlatformIO, C++)
inkless-server/    AI proxy (Python, FastAPI)
cli/               Command-line tool (Python, Typer)

Make it yours

What Where
AI modes & prompts firmware/src/web_ui.h
AI provider inkless-server/server.py (swap Claude for OpenAI, Ollama, etc.)
Look & feel firmware/src/web_ui.h (single HTML page, Tailwind CSS)
CLI print templates cli/src/receipt_printer/formatting.py

The ESC/POS driver, web server, and CLI are generic — they work with any ESC/POS thermal printer.

Acknowledgments

License

CC BY-NC-SA 4.0. See LICENSE. Non-commercial use only.

About

Wireless thermal receipt printer (ESP32 + QR204)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors