
On this page
There is something satisfying about a physical object that shows up whether or not you open your phone.
For week four in the Schematik workshop, I built a morning printer: an ESP32 on a breadboard, a CSN-A2 mini thermal receipt printer, and firmware that connects to Wi-Fi, syncs the clock, pulls today's forecast from Open-Meteo, optionally reads Google Calendar, and prints a short daily briefing — date, weather, appointments, and a few blank to-do lines.
Watch the full build on YouTube, or jump straight to the build guide below.
The printer needs its own 5 V supply. That is not optional politeness — it is what keeps the ESP32 alive while the head heats up.
The idea
Week two was a weather station that told me what to wear. Week three was touchscreen chess on a Cheap Yellow Display. This week I wanted something quieter: a small ritual object that leaves paper on the desk.
The thumbnail idea was simple — GOOD MORNING on a strip of thermal paper. The firmware grew into something more useful: a receipt you can actually glance at before the day starts.
Parts that matter
The electronics are not exotic:
- ESP32-WROOM-32 dev board (USB for power and flashing)
- CSN-A2 (or compatible) mini thermal printer
- jumper wires and a breadboard
- a dedicated 5 V power supply for the printer — typically 5 V at about 2 A
That last item is the one people skip. The ESP32 can run from USB while you develop, but the printer VH pin draws serious current when it prints. If you try to feed the printer from the ESP32's onboard regulator, you get brownouts, failed uploads, and mysterious "why is nothing printing" afternoons.
Wire the printer's TTL RX to ESP32 GPIO 4 (UART2 TX) and share ground between both supplies. I used 9600 baud on HardwareSerial(2) with the Adafruit Thermal Printer library. Optional: printer TX to GPIO 5 if you want status read-back (mind the 5 V level on the printer side).
Schematik's diagram and pin table keep that straight — especially the split between USB power for the MCU and 5 V VH for the printer.
What the firmware does
On boot the sketch:
- connects to Wi-Fi
- syncs time over NTP (Amsterdam offsets in the starter code)
- fetches today's weather from Open-Meteo (no API key)
- fetches calendar events when you add a Google API key and calendar ID
- prints a formatted slip, then deep-sleeps until the next reset
That sleep behaviour is deliberate. It makes the project easy to trigger from a timer outlet or a morning power strip: plug in, get one briefing, done.
The printed layout is plain text — bold headers, weather lines, appointment list, checkbox-style to-do rows. It is not trying to be a full news digest. It is a desk-sized summary you can scribble on.
Steering it in Schematik
Like the earlier workshop builds, the loop was: describe the thing, check the wiring, deploy from the browser, read Serial Monitor when something fails.
Thermal printers add a few classic gotchas:
- wrong baud (check the self-test slip on the printer)
- RX/TX swapped (the starter uses
printerSerial.begin(..., PRINTER_TX_PIN, PRINTER_RX_PIN)to match GPIO 4 → printer RX) - no separate 5 V supply on VH
- grounds not tied together between supplies
Once Wi-Fi, time, and power were right, the first long slip with weather and calendar sections was the "it is real" moment.
What I would do next
This version is a workshop prototype, not a finished appliance. Obvious upgrades: a nicer enclosure, a scheduled wake without manual reset, bitmap logos on the receipt, and maybe pulling tasks from a notes app instead of blank lines.
If you want to build your own, open the morning thermal printer guide for the wiring diagram, starter code, pin table, and deploy steps — or use the guide card above. In Schematik, load the morning-thermal-printer starter, add your Wi-Fi and calendar credentials, and plug in a 5 V / 2 A charger for the printer before you print.
If you have ideas for week five, leave them in the YouTube comments.
Keep building from here
Jump into a step-by-step guide, or open Schematik and turn your own idea into code, wiring, and assembly instructions.
Related posts

I Built an ESP32 Weather Station That Tells Me What to Wear
For week two in the Schematik workshop, I built a tiny ESP32 weather station that checks the forecast and tells me whether to take a jacket, umbrella, sunglasses, shorts, or scarf.
I Built a Touchscreen Chess Game With Zero Hardware Skills
For week three in the Schematik workshop, I turned a viral idea for a distraction-free chess device into a working touchscreen chess game on an ESP32 Cheap Yellow Display.