Solaroid
A digital camera designed under the philosophy of Polaroid. It utilized solar power and displays the photo permanently on its e-paper screen.
Ideation
I was originally inspired by Cyanotype. It is a photographic printing process related to exposing under the sun for minutes(very like a solar panel) that creates a bluish copy of a photo. However, later I found that there is no blue-colored e-paper screen in the market and I don’t have the budget to buy a big enough screen to support the large-format-like feeling.
So I turned my direction to small handheld camera, and finally decided to make it a ‘Polaroid’. E-paper is like the digital representation of the Polaroid. The displayed image stays permanently, just as a printed photo.
Shoot and Display
This part took me way longer time than I expected. I had a set up of an ESP32-Cam capturing the photo. It was connected to the Seeeduino XIAO (the main control board) which will then talk to the e-paper and display the photo.
Memory Issue
The e-paper I was using is 4.2 inches with 400x300 B&W pixels. It needs 400 x 300 x 1 = 120,000 bits = 15,000 bytes = 15 KB for one single photo. The SAMD21 chip on the XIAO have only 32KB SRAM, and I got RAM overflow (with just a little bit) error when compiling. This was the first time I encounter this.
Luckily it was later resolved by abandoning the community epaper library I was initially using to just do it manually following the official code.
Photo Algorithm
Debuging hardware is so hard. I wish I realize earlier that I should make the camera transmit the photo to my computer and display first.
To make it display on the epaper, I wrote a simple threshold code in the following which made it to store 8 B&W pixels in a byte.
int origin = y * W + x;
int pos = origin % 8;
int index = (origin - pos) / 8;
if (pixel > 127) {
frame_buffer[index] += (0x80 >> pos);
}
I was so happy to see the first photo.
To make it more realistic, I translate the code from the Coding Train to C language and it turned out pretty good.
Powering the thing
To lower the power consumption and make it last longer, I have done some research and made the circuit perform better, see the full description here.
In the following video & graph, you can see it goes up to more than 100mA when work and cost only 2.5mA during sleep. It’s pretty sad that I am not able to make the e-paper sleep. It should have cost less than 1mA.
Super Capacitor Charging/Discharging
Unlike lithium battery, super capacitors are not that fragile. So there isn’t many power management board for it. I did find one (This is great!), but its output is rated for less than 100mA which I exceed a little bit.
Learned from this video, I only added a diode to protect reverse charging the solar panel and a DC-DC for better usage of the capacitor.
I am using a 6V 10F super capacitor which can support taking more than 10 photos when charge to 5.5V. The solar panel is rated 6V as well, but with the diode voltage drop, it may not be a problem.
(Full circuit is Listed below)
Fabrication
The making of the enclosure is my favorite part. I soldered the whole circuit on protoboards and test it well. A better-looking red shutter button is added to replace the original push button.
I then designed and laser cut a box.
And connect everything together
And its done!
Code & Resources
All the resources can be find here including Arduino & Processing codes, circuit diagram and laser cut design file.
References
- Arduino Tutorial: E-Paper Display
- Solar Cells & Super Capacitors Part#1 - A Simple Method Of Interface
- Seeeduino XIAO
- Solar Powered Sensor with Supercapacitors and ESP32
- Mini Battery and Solar Powered Timelapse Camera
- ESP8266 - Solar Moisture Sensor with Supercapacitors
- Solar with Supercapacitor circuit