Solar Power for Maker Projects: Panels, Charge Controllers, and Battery Chemistry
Once a project needs to run somewhere without a wall outlet — a garden sensor, a wildlife camera, a remote LoRa node — solar power turns from a nice-to-have into the whole point of the build. But small-scale solar for maker electronics has its own set of gotchas that are different from both household solar and generic USB power banks: panel sizing, charge controller choice, and battery chemistry all interact, and getting one wrong means a project that dies every winter or a battery that swells inside its enclosure. This covers how to size a solar setup for a low-power microcontroller project and pick the right battery chemistry for the job.
How Much Panel Do You Actually Need
Start from the load, not the panel. An ESP32 in deep sleep with a periodic sensor read and WiFi transmit draws wildly different average current depending on how often it wakes up — a node that wakes every 10 minutes to read a sensor and transmit over WiFi averages roughly 1-3mA, while one that stays connected and polls continuously can average 60-80mA or more. Multiply your expected average current by 24 hours to get daily consumption in mAh, then size the panel to replace that energy during your worst realistic sunlight day, not an ideal one.
Panel SizeTypical Output (full sun)Good For 1-2W (credit-card sized)~150-300mA at 5-6VDeep-sleep ESP32 sensor nodes with infrequent wake cycles 5-6W~800mA-1A at 5-6VESP32-CAM or nodes that transmit more frequently, moderate cloudy-day margin 10-20W1.5-3A+ at 6-18VRaspberry Pi Zero-class projects, always-on nodes, winter/low-sun climatesAs a rule of thumb, oversize the panel by 3-5x your calculated daily need in a location with reliable sun, and more like 5-8x if the project has to survive winter or a cloudy climate — panels routinely produce a fraction of their rated output on overcast days, and the battery has to make up the difference from stored reserve.
Charge Controllers: PWM vs MPPT
The charge controller sits between the panel and the battery, and prevents overcharging while regulating the panel's variable output into something the battery can safely accept.
- PWM controllers are simpler and cheaper, and they work by directly connecting the panel to the battery in pulses. They're a reasonable choice for small panels (under ~10W) where the panel's voltage is already close to the battery's charge voltage, common in single-cell LiPo/Li-ion setups.
- MPPT controllers actively track the panel's maximum power point and convert excess voltage into extra current, which can mean 20-30% more usable energy from the same panel — especially valuable when panel voltage is significantly higher than battery voltage (e.g., an 18V-rated panel charging a 12V LiFePO4 pack). Worth the extra cost above roughly 10-20W of panel.
For single-cell lithium projects, small dedicated solar LiPo chargers (built around chips like the CN3065 or similar) combine charge controller and battery protection in one small board and are the simplest option for ESP32-class projects — see our TP4056 LiPo charger guide for the equivalent wall-power version of this circuit.
Battery Chemistry Comparison
ChemistryNominal VoltageCycle LifeCold WeatherBest For Li-ion / LiPo (18650, pouch cells)3.7V/cell~300-500 cyclesPoor below freezing — capacity drops sharply, charging below 0°C degrades the cellsCompact, low-cost solar sensor nodes in mild climates; needs a protection circuit/BMS LiFePO4 (LFP)3.2V/cell2000-5000+ cyclesMuch better cold tolerance than Li-ion, though charging below freezing still isn't recommendedOutdoor installs meant to last years — longer life and much better thermal stability offset the lower energy density and higher up-front cost NiMH1.2V/cell~500-1000 cyclesGood, tolerates cold better than lithium chemistriesSimple, safe, no BMS required — a reasonable low-stakes option for hobby projects, though bulkier per watt-hour than lithium Sealed lead-acid (SLA/AGM)2V/cell (12V pack)~300-500 cyclesFair, but capacity drops in cold and charging is less efficientCheap, heavy, high-current backups where weight doesn't matter — larger Pi-class or off-grid setupsFor most outdoor ESP32/Pi projects meant to survive multiple seasons unattended, LiFePO4 is worth the price premium: the cycle life alone means the battery will likely outlast the rest of the electronics, and its stability under thermal stress and physical damage is meaningfully safer than Li-ion for something sitting outside unattended in a sealed enclosure.
Sizing the Battery for Overnight and Cloudy-Day Runtime
The battery needs to cover the load through the night at minimum, plus enough reserve to survive a stretch of poor sunlight. A practical target is 3-5 days of autonomy — battery capacity (in mAh) that could run the load alone for 3-5 days with zero solar input. For a node averaging 5mA, that's roughly 5mA × 24h × 4 days = 480mAh, so a single 18650 (2000-3500mAh typical) has generous margin; for higher-draw projects, scale accordingly.
Wiring and Protection Notes
- Always use a charge controller rated for your specific chemistry — a controller set up for Li-ion charge voltages will overcharge LiFePO4 cells, and vice versa
- Add a low-voltage disconnect (many charge controllers include one) so the battery isn't drained below its safe minimum, which shortens lithium battery life dramatically and can trip BMS protection permanently on some cheap boards
- Use panels with a built-in blocking diode, or add one, so the battery doesn't discharge backward through the panel at night
- Mount the panel where it won't be shaded even part of the day — partial shading on some panel types can drop output far more than the shaded area alone would suggest
Safety
Lithium battery chemistries (Li-ion and LiPo especially) can enter thermal runaway if punctured, overcharged, or charged at unsafe temperatures — always use a battery with an integrated protection circuit/BMS for unattended outdoor projects, and keep any bare lithium cells out of direct sun and sealed enclosures that could trap heat. Never charge lithium batteries below freezing. If a cell ever swells, discolors, or feels hot to the touch, remove it from service and dispose of it at a battery recycling point rather than in household trash — lithium batteries are a known fire risk in waste streams.
Getting solar right on a small project comes down to being honest about worst-case sun, not best-case, and matching the charge controller and battery chemistry to how the project will actually be deployed. Do that up front and a well-built solar sensor node can genuinely run for years without a single visit.
Related Guides
- Build a Portable LiFePO4 Power Station: BMS, Pure Sine Inverter, and Solar Charging
- Build a Meshtastic Off-Grid Mesh Messaging Node with ESP32 and LoRa
- Build a Dual-Axis Solar Tracker: ESP32, LDR Sensors, and Servo-Driven Panel Positioning
- How to Program Addressable LED Strips: WS2812B Patterns, Effects, and Power Design
- I2C vs SPI vs UART: How to Choose and Use Serial Communication Protocols
- How to Use Sensors with Arduino and ESP32: Temperature, Distance, Load, Current, and Hall Effect
- How to Control Motors with Arduino and ESP32: Stepper, DC, and Servo Drivers
- How to Hack Wi-Fi and Bluetooth with the Flipper Zero and Wi-Fi Marauder