All Articles

Solar Camera Progress 1

Energy flow chart

This is basically what my circuit/system be like. Solar energies are harvested by the solar panel and stored in a supercapacitor. They will then power the microcontroller, camera, and screen module. To make the system practical, there are several parameters I need to consider:

  • The energy it takes to take one photo and display it on the screen
    -> affect how many photo I can take in a roll
  • The quiescent power consumption of the whole system
    -> affect how long it will last when doing nothing
  • The power the solar panel can capture/produce
    -> affect the charging time
  • The capacity of the super capacitor
    -> affect all of the above

Giving up on Raspberry Pi

I was initially planing to build the system with a raspberry pi instead of an arduino. There is a much wider selection in cameras. (I have been dreaming to make a project with the new High Quality Camera for a long time.) And it also perform way better than most microcontrollers so I can run more complex image processing code or even computer vision model.

The Becca Cam: a camera made with the Raspberry Pi HQ Camera mod.
The Becca Cam by Becca Farsace

However, the power consumption of raspberry pi is just so high. I measured the current of my Pi Zero which is already the smaller version, and it still took about 100mA when it is basically doing nothing. It makes sense since they are not designed to be super power efficient but for better performance. So for this project, I have to switch to MCUs.

Screen

This is the part that I decided first. A 800x480 7.5 inch E-ink display seems like a good fit. Some important power specifications are:

  • Full refresh time: 5s
  • Refresh power: 38mW(typ.)
  • Standby power: <0.017mW
Waveshare
800×480, 7.5inch E-Ink display HAT for Raspberry Pi

Microcontroller / Dev Board

The basic Arduino Uno board is power-efficient enough for this project, but its RAM is too small to drive the 800x480 pixels. Here are some mcu that I found can be fit in this project. Besides power consumption, code library support is also an important factor since I don’t want to waste time rewriting protocols. These chips have good power efficiency and also well-supported community.

It need to be noted that the ESP32 also support WiFi & Bluetooth.

Chip Power (active) Power (sleep)
SAMD21 10mW 10uW
RP2040 200mW 4mW
ESP32 500mW 30uW

Another thing that need to consider is the voltage regulator. A simple LM1117 that most board have is not good for power efficiency. Having a 5mA quiescent current and a 1.2V drop voltage could be a lot of waste. However, this can be easily fixed by adding a better LDO like MCP1700 and power the microcontroller with direct regulated 3.3V.

An IoT board like the FireBeetle ESP32 by DFROBOT could be a perfect fit for this project. I also like the new Raspberry Pi Pico cause there is already community support for e-paper and there is a very power-efficient camera module built specifically for this board (which I explain in the following paragraph). A SAMD21 board like the Seeeduino XIAO is also a good idea cause it almost cost nothing in energy.

Camera

Cameras are pretty heavy in power consumption and also more sophisticated to code. One easy solution is the ESP32-Cam. It’s an ESP32 dev board with a builtin camera (usually an OV2640 or OV7670).

Name Quality Power (active) Power (sleep)
OV2640 1600x1200 125mW 2mW
OV7670 640x480 60mW < 60uW
HM0360 640×480 Monochrome < 19.6mW < 140uW
HM01B0 320×320 Monochrome < 1.1mW < 200uW

The last two cameras are built specificlly for the new Raspberry Pi Pico. They are just been released and haven’t started shipping yet. The low resolution and monochrome don’t appear to be a problem in this project since I’m gonna display the image on a low res b&w e-paper.

I wish I can get those as soon as possible and adapt the code to seeeduino Xiao. So the the final product can be super small and super power-efficient, too.