I make a lot of experimental solar-powered things and one part about it that is hard is knowing if there will be enough sunlight to effectively power a device. There are tools and such for figuring out the amount of sun that might hit a particular spot, but in the wild there's a lot of other factors like trees and buildings and such that these tools can't accurately model.
The most reliable way I've found to determine the viability of a solar-powered setup is to over-provision or to just set up up and see how it goes. Both of these can be wasteful and expensive if things don't go your way.
The solution I've come up with is the Solar Surveyor. A small solar panel with an embedded computer that you can place anywhere you are considering gathering sunlight for a solar-powered project. The surveyor gathers sunlight and records data over an (ideally extended) period of time and produces a report to determine the feasibility of the site and help you correctly configure an efficient system for use on that site.
Ideally the surveyor is small and light so that it is easily deployed in a wide-range of areas. I'm thinking around 6x6" square and as thin as is practical. It will need some method of attachment, perhaps magnetic in addition to mechanical such as a hanging hook, mounting holes, etc.
The solar panel is of either crystalline or amorphous type (one of each would be useful, maybe double-sided?) rated for somewhere around 500mA and 5-12 VDC. These requirements are flexible but they should be consistent and sufficient to power the device.
The panel is connected to an MPPT charge controller which charges a lithium-ion battery and provides power to the computer and it's perephreals. The charge controller provides power in/out and state-of-charge information via i2c to the computer. Depending on the output this power supply may include a buck/boost converter). The computer is a common ESP32 development board with an SD card slot and realtime clock.
A handful of sensors round-out the hardware configuration and these include accurate temperature sensors arranged to capture front-side, back-side and ambient temperatures as well as humidity.
I'm not sure how much of a factor humidity is in solar power system efficiency but I seem to remember something about this and sensors are cheap.
An accelerometer might be a good idea as well to easily capture both the position of the panel as well as any shock or movement it's subjected to during the survey.
On the software side Micropython is installed on the ESP32 and a custom Python program monitors and records charge controller and sensor array data to the SD card. Optionally the ESP32 can be configured to connect to a nearby WiFi network to synchronize this data periodically when sufficient power is avaliable.
In addition to gathering raw data the software can begin producing a suitability report after the first 24 hours of deployment. The first report provides a simple Watt-hour budget that can be used to determine if the site can produce enough electricity in a day to power your project. If the surveyor is left for a week it will produce a more detailed report with daily and weekly averages, and if left deployed long enough the report will include seasonal impacts as well.
Beyond the basic power budget report, additional analysis is provided:
* The most suitable panel type for the site
* The temperature changes and physical shock a panel array will be subjected to
* The acceptable battery chemistries based on temperature and power input characteristics
* Realistic runtime measurements for a lightweight digital computing system
There's probably more that could be derived from the data but I don't want to overcomplicate things or put too much load on the device (deeper analysis could be done offline). The primary goal of the device is to make it easy to decide whether or not a site is suitable to provide solar power to a project and what amount of power production can be depended on. Exactly how this is communicated should be as simple as possible, and beyond the raw numbers I can think of a couple of fun ways to allow someone to plug-in various variables and configuration options for their project to get immediate feedback on the design.
Jason J. Gullickson, 2026