Poor Man's Polaroid

DIY instant camera with a thermal printer built into a yellow and black case
This is an instant camera that uses thermal printer to print photos, the same one that prints your receipts at the store. Photos aren't the same quality as the self developing film that polaroid uses, but they do have some, uhh, charm to them, I suppose.
Title might be a bit misleading though. When I call it poor man's, I mean fun diy project, possibly made by poor hands, and not a cheap camera, since the parts cost me more than the cheapest polaroid.
Although parts cost more, it's cheaper in the long run - one polaroid picture costs around 1 euro, while a picture from this camera is less than 1 cent (50 meter thermal paper roll costs a couple of euros).

Camera

When talking about camera, I have to mention that it's hooked up to a small computer which touches up the image and sends it to printer.
Raspberry Pi Zero single-board computer
The computer - Raspberry Pi Zero
This is an actual computer, same as your desktop or laptop, albeit not as powerful (unless you haven't upgraded in the last 25 years), but it has ports for monitor, keyboard and mouse, it has bluetooth and wifi. It also has a few pins where you can solder LEDs, buttons, sensors and program them to do as you please.
It also has a dedicated camera which doesn't take up too much space and is easy to use.
Raspberry Pi camera module with its ribbon cable
Raspberry Pi camera with cable
Some might say this is an overkill, I say this is what I had on hand.

Power

Raspberry Pi needs a power source, you can plug it into a power outlet on the wall, but thats hardly portable, unless, you know, a really looong cable.
You could buy some rechargeable batteries, DC/DC converter, battery charge controller, and make your own rechargeable power source.
Parts for a DIY power source: batteries, voltage converter and charge controller
DIY power source parts
Or you can get a power bank which has all of the above included and pull it apart, which is what I did. This is somehow a lot cheaper than buying same parts separately.
Commercial power bank with a battery level indicator
Power bank, has a battery indicator too!
Get some tools, safety glasses and be careful when using something sharp to pull the power bank apart, because if you puncture the battery, it will burst into flames and it won't be fun. Not as if house fire is ever fun, but at least you can use a bucket of water to put out most burning things, here though, you'll need a bucket of sand to, literally, smother this problem.
Power bank half disassembled on the workbench
Power bank half way disassembled, no fire
Disassembled power bank showing the battery and circuit board
Naked power bank, still no fire

Printer

It's like your average printer, but small, requires non average paper and uses heat instead of ink to print. Ok, maybe it's not like your average printer, anyway, here's a couple of them that I have.
Two small thermal receipt printers used in the camera
Forgot to take a photo before removing front panel
You can connect to it using a cable or bluetooth. So in theory, you could use your phone to take a picture and send it to printer via bluetooth. In practice though, you won't be running a risk of setting your house on fire with a punctured power bank battery and where's the fun in that?
I don't really have anything to add about the printer, got it from China, one cost 20 euros, the other 60 euros, supposedly they are the same model, but of course they are not. In any case, if you want to get one, the model is "PT-310", and, well, good luck.

Case

Whipped out my trusty ruler to measure the weird shaped printer in order to make a case around it.
Thermal printer being measured with a ruler
Would have been a lot easier if it was a square box, but nooo
Whipped out my trusty FreeCAD to make a model and print it on my trusty 3D printer.
Got myself a few parts, case for the printer, case for the battery and computer, these should come together like a sandwich. Plus a few button things and cosmetic parts.
3D-printed camera case parts laid out on the table
After some sanding checked out how it comes together.
Sanded camera case parts test-fitted together
Then sprayed on some primer to fill in some gaps.
Camera case parts coated with grey primer
And finally - paint, yellow and black looked good in my mind.
Camera case painted yellow and black
Hey, it does look good

Assembly

All what's left is to glue a few things, put in a couple of screws and write a few lines of code. So here are the things.
Assorted LEDs used for the camera status lights
LEDs - you have to have lights
Added a few leds to tell me what's going on, blue when power is on, green when camera is on, red when a picture is being taken.
Raspberry Pi doesn't have a "power" button, you can shut it down by pulling the power chord or by programming a button to tell it to shut down once pressed. How to turn it on when there's no power button? Pull out the power chord and put it back in, aka power cycling. Instead of doing that, I added a switch which toggles power cable connection. Both of them are inside a panel on the side of the camera.
If you remember the times when after shutting down the PC there would be a message "It is now safe to turn off your computer" and you had to hit the power button, the set up above is basically same thing, good times.
Shutdown button and power switch mounted in the side panel
Button to shutdown, switch to power off
Theres another button on the front of the case which takes the photos, here you can see it at the top right, along with computer, battery (below plastic plate to hold it in place) and power buttons with lights.
Inside of the camera front showing the Raspberry Pi, battery and wiring
Inside of the front of the camera
It's a bit messy because of all the wires, but there's no way around it, best I could do is color code them, so I know what is what.
Now the other side of the case - I drilled a few holes in the printer and used screws to attach it to the case.
There's also power bank circuit and a button which when pressed, reprints last taken photo, in case I need two of the same picture (one for me and for you).
Both halves of the camera case showing the printer and wiring
Even more wires, fuck yeah. Two for button, four for power and two for a thing I found in the power bank - thermal sensor. If battery overheats, this sensor is triggered and power is cut off, so as to not burn your house down, which is appreciated.

Making it Work

Without going too much into detail, I used Python to code this, because of all the available libararies to work with Raspberry Pi, it's camera and image manipulation. If you're curious - code is below.
Pi camera is decent, but sometimes the picture is too dark, other times there's too much light, because of this, in the code above you can see a bunch of functions which adjust the picture depending on it's brightness.
Four versions of the same portrait processed with different brightness adjustments
Different adjustments on the same photo. Hey, Kenny!
I've figured out when to use which adjustment by trial and error, aaaaand we're done.
Front view of the finished DIY instant camera
Back view of the finished DIY instant camera
Side view of the finished DIY instant camera
And here it is in action.
If you'd like to have your own magic photo box - let me know via contacts at the bottom of the page.