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)
AIDisplays
Built withRaspberry Pi
- difficulty
- ●●●○○
- time
- a weekend
- license
- CC-BY-NC-SA-4.0
- repo
- repo ACTIVE361 stars
●●●○○ · a weekend · CC-BY-NC-SA-4.0 · 361 stars · repo ACTIVE
WHAT YOU’LL NEED
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.
IN THE REPO
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 itemsFrom our check of the build. Exact quantities and part numbers are in the creator’s BOM.
Can I build this?
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 projectsGallery
Start here
Navigation into the creator’s own docs — we don’t rewrite the guide, we route you to the source.
- 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.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.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?
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.
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.
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.