THIS DIY CAMERA PRINTS A POEM INSTEAD OF A PHOTO

Point the camera at anything, press the button, and a receipt printer pushes out a poem about what it saw — no screen, just paper.

by Kelin Zhang and Ryan Mather (Bokito Studio)

FULL CAD BOM FIRMWARE DOCS

AIDisplays

Built withRaspberry Pi

difficulty
●●●○○
time
a weekend
license
CC-BY-NC-SA-4.0
repo
repo ACTIVE361 stars
1
Jump to section

COMPAREE VERDICT

This is a working build with beginner-friendly documentation that the creators still flag as a work in progress. The code is simple and the wiring is explicit. The single hardest part is not the electronics — it is managing the API cost and knowing that every shutter press costs you a couple of cents in OpenAI credits, and if the camera sits at a party where people keep pressing the button, you will get a bill. The thermal printer is the same kind used in receipt machines, so replacement rolls are cheap and widely available. No screen means you never know if it worked until the paper comes out, which is the entire point but also the main source of user confusion. The camera is a Raspberry Pi Camera Module 3, so low-light performance is what you would expect from a small phone-style sensor. If you want the exact enclosure from the launch photos, you will have to design your own or find a community remix — the repo does not include it. The licence is CC BY-NC-SA, so this is for personal and non-commercial builds. This is for someone who likes the idea of a physical AI artifact more than they like taking good photos, and who is comfortable with the fact that the magic costs money every time it runs.

GOOD TO KNOW

  • —Full Python code for the Raspberry Pi Zero setup, thermal printer driver, and GPT API integration.
  • —Hardware list with specific part numbers (CSI camera, Adafruit thermal printer, shutter button).
  • —Beginner-oriented step-by-step guide with a cron job to start the camera on boot; the wiring diagram is still marked to-do, and printer wiring points to Adafruit's tutorial.
  • —No enclosure CAD files — the README says this beginner build is less compact than the creators' photographed versions, and no case files are published.
  • —You will need your own OpenAI API key and a Replicate API token: each photo is captioned by BLIP-2 on Replicate and the caption is turned into a poem by GPT-4, and both calls cost real money per image.
  • —CC BY-NC-SA 4.0 — free to build and remix with credit, but not for commercial use; OpenAI's terms also apply to the API calls.

Parts to buy

7 items

From our check of the build. Exact quantities and part numbers are in the creator’s BOM.

  • Raspberry Pi Zero 2 W with headersFind
  • Raspberry Pi Camera Module 3 with a Zero-sized camera cableFind
  • TTL-serial mini thermal receipt printerFind
  • Shutter buttonFind
  • 5V power supplyFind
  • Thermal paper rollsFind
  • Jumper wiresFind

BUILDS OF THE WEEK

Five open-source builds worth your weekend, every week.

Checked like this one: what’s really in the repo, what it costs, how hard it is. One email, unsubscribe anytime.

Can I build this?

PrintNo STL files in the repo — original enclosure was custom, not published. You will need to design your own case or run it as an open breadboard build.
BuyRaspberry Pi Zero 2 W with headers, Raspberry Pi Camera Module 3 with a Zero-sized camera cable, a TTL-serial mini thermal receipt printer (Adafruit's line is discontinued; compatible models work), shutter button, 5V power supply, thermal paper rolls, jumper wires
ToolsSoldering iron for header pins, SSH access to the Pi, OpenAI API account with billing enabled, basic Linux command-line familiarity
SkillsIntermediate — you need to flash an SD card, SSH into a Pi, edit Python config files, and understand that every photo costs API credits. Not difficult if you have done a Pi project before; frustrating if this is your first one.
TimeA weekend — an hour for assembly, two hours debugging the printer driver and camera focus, the rest is installing dependencies and testing the API loop
Cost$$ — Pi Zero 2 W, Camera Module 3, a thermal printer and odds and ends. The real ongoing cost is the OpenAI API: the creators say each request costs a couple of cents.
SafetyLow voltage only (5 V for the Pi, 5–9 V for the printer, e.g. a 6×AA pack). The creators warn the Pi and camera are easily damaged by the wrong power source or static, and you must shut the Pi down before unplugging it. The thermal printer gets warm while printing.

Build at your own risk. Projects involve tools, electronics and sometimes mains voltage — follow the creator’s safety notes.

Videos

A camera that makes poems

A short 90-second film about the Poetry Camera published by Anthropic; there is no official build video, and the creators' Config 2025 talk covers the story behind it.

More builds like this

All projects

Gallery

img.youtube.com

Start here

Navigation into the creator’s own docs — we don’t rewrite the guide, we route you to the source.

  1. 1.Read the repo README and hardware list (Check the specific part numbers for the thermal printer — some cheaper models do not work with the Adafruit driver.)
  2. 2.Set up an OpenAI API account and add billing(You need an active API key before the camera will work. Test it with a curl command first so you know it is live.)
  3. 3.Flash the Pi, install dependencies, wire the printer and camera(Follow the repo's cron setup so the script runs on boot. Test each component separately before putting it all together.)

Resources

Documentation, files and community threads for this build — we link straight to the original sources and never rehost the creator’s files.

KNOWN ISSUES

  • The repo does not include the enclosure STL files. If you want a case, you will have to design one yourself or run it as an exposed build.
  • Every photo costs API credits — the creators say a couple of cents per request, so a party with hundreds of presses adds up. Set a budget alert or rate limit.
  • Adafruit's thermal printers are discontinued. The creators say similar TTL-serial printers from Amazon and AliExpress work with the same drivers — check the listing says TTL serial, and expect to tweak baud rate.
  • No screen means you will not know if the camera focused, if the API call failed, or if you are out of paper until the print finishes (or does not). The lack of feedback is intentional but trips up first-time users.
  • The small Pi camera is not great in low light. Indoor evening shots will be grainy, and the AI will still write a poem about them, but the photo it is describing will be dim.
  • If your internet drops or the OpenAI API is down, the camera silently does nothing. Add a fallback LED or buzzer if you want error feedback.

Can I use a different AI model or run it locally?

Yes. The current main.py already splits the job in two: BLIP-2 on Replicate captions the photo, then GPT-4 turns the caption into a poem. You can swap either call for another captioning or text model, including a local one, by editing those two calls.

Does it save the photos anywhere?

Only the latest one. The script saves each shot to the same image.jpg file before sending it to the API, so the next photo overwrites it. Change the filename in the code if you want to keep them all.

How long does the thermal paper last?

Thermal paper fades over time, especially in sunlight or heat. Expect poems to be readable for a few years if kept in a drawer, but they are not archival. Some people scan or photograph the prints if they want to keep them.

Can I make this without soldering?

Mostly. Buy a Pi Zero 2 W with headers, or use hammer-on headers as the README suggests, and connect the printer and button with jumper wires. The recommended battery circuit with a buck converter needs soldering; the README's no-solder alternative is powering the Pi and the printer from two separate batteries.

Community builds

No community builds yet — be the first, we feature the best ones.

Discussion1

FROM THE COMPAREE TEAM

Every shutter press is a live OpenAI request at a couple of cents each. How would you handle that at a party or event — rate limit, prepaid budget, local model?

CompareeTEAM2mo agoedited

Practical notes from our verification: the code works with a Pi Zero 2 W, a Camera Module 3 and a TTL thermal printer, but the repository has no enclosure files — the README says the beginner build is less compact than the photographed versions, so for the clean handheld form factor you will need to design your own case or find a community remix. The thermal printer is the part to source carefully: the Adafruit model used is discontinued, though compatible clones work with the zj-58 driver. In the current main.py each photo is captioned by BLIP-2 on Replicate and the caption is turned into a poem by GPT-4, so you need both an OpenAI key and a Replicate token; the README says each request costs a couple of cents, and the running cost grows with use. The licence is CC BY-NC-SA 4.0, so no selling builds. The README is written for complete beginners, but it is marked as still in progress, so expect a few gaps. Correction (4 October 2026): we re-checked this page line by line against the project's own repository, documentation and videos, and fixed errors in earlier versions.

Kelin Zhang and Ryan Mather (Bokito Studio)

Kelin Zhang and Ryan Mather (Bokito Studio) created the Poetry Camera, which they now also sell as a finished product at poetry.camera. They released this Raspberry Pi version as open source with instructions written for complete beginners, simplified so the parts are easy to source.

GitHub

Star the project on GitHub

DISCLAIMER

  • Comparee is not the author of the projects featured here. All rights to each project belong to its creator — every page links to the original source, and we never host creators’ files.
  • Information is provided without warranty and may become outdated as projects evolve. Prices are indicative bands only — always check the creator’s parts list for current costs.
  • Building and operating any project is at your own responsibility. Protective equipment, safe workshop practice and compliance with local regulations are the builder’s responsibility.