I live in an apartment complex in The Netherlands and my balcony is facing west. This means it only receives direct sunlight from 16:00 onward during spring and summer. Most of the time, the panels only get indirect sunlight and therefore generate just a tiny fraction of their rated performance. The key issue is not solar, but the west-facing balcony (it should ideally be facing south).
original solar panel
It’s fair to say that my experiment isn’t rational because of the sub-optimal solar conditions. Yet, I’m unreasonably obsessed by solar power and I wanted to make it work, even if it didn’t make sense from an economic or environmental perspective2.
When I wrote my blog about my solar-powered setup, I was already on my second iteration: I started out with just a 60 Watt panel and a cheap $20 solar controller3. That didn’t even come close to being sufficient, so I upgraded the solar controller and bought a second panel rated for 150 Watt, which is pictured above. With the 60 Watt and 150 Watt panels in parallel, it was still not enough to keep the batteries charged in the fall and winter, due to the west-facing balcony.
A Raspberry Pi 4B+ consumes around ~3.5 Watt of power continuously. Although that sounds like a very light load, if you run it for 24 hours, it’s equivalent to using 84 Watts continuously for one hour. That’s like running two 40 Watt fans for one hour, it’s not insignificant and it doesn’t even account for battery charging losses.
So 210 Watt of solar (receiving mostly indirect sunlight) still could not power my Raspberry Pi through the winter under my circumstances. Yet, in the summer, I had plenty of power available and had no problems charging my iPad and other devices.
As my solar setup could not keep the batteries charged from October onward, I decided to do something radical. I bought a 370 Watt4 solar panel (1690 x 1029 mm) and build a frame made of aluminium tubing5. Solar panels have become so cheap that the aluminium frame is more expensive than the panel.
Even this 370 Watt panel was not enough during the gloomy, cloudy winter days. So I bought a second panel and build a second tube frame. Only with a 740 Watt rated solar panel setup was I able to power my Raspberry Pi through the winter6.
I didn’t create this over-powered setup just to power the Raspberry Pi during the winter. I knew that solar performed much better during spring and summer and I wanted to capture as much of that energy as possible. The real goal was to go beyond powering the Pi and power my computer desk, which includes an Intel Mac Mini, two 1440p 27″ displays and some other components (using around 100 Watt on average)7.
I would not be able to power my desk 24/7 but I would be happy if I can work on solar power for a few hours every other day during spring and summer. I also wanted to light my house in the evening using this setup.
The original solar setup was enough to power the Raspberry Pi and charge an iPad in the spring/summer. The solar charge controller could not handle the increased solar capacity and needed replacement. So I decided to build a new setup inspired by Will Prowse solar demo setups, which is pictured below:
the latest iteration of my solar setup
First a brief disclaimer: I’m a hobbyist, not an expert (if you didn’t notice already). I have no background in electrical systems. I’ve tried to make my setup safe, but I may have done things that are not recommended.
My setup is a 12-volt system9. The drawback of a 12-volt system is the relatively large currents required to charge the battery and power the inverter. This requires thicker, more expensive cabling to prevent energy losses in the cabling8.
Most components are self-explanatory, except for the shunt. This device precisely measures battery voltage and how much current is going in and out of the battery. The solar charge controller and the shunt are linked together in a bluetooth network, so the solar controller uses the precise voltage and current information from the shunt to regulate the battery charging process.
The solar controller, inverter and shunt have VE.direct interfaces (Victron-specific) which I use to collect data. I’m using a Python VE.direct module to gather this data, which just works without any issues. My Python script dumps the data into InfluxDB and I use Grafana for graphs (see below). The script also updates the ‘solar status’ bar to the right (or bottom for mobile users).
this image is updated periodically
The LCD display is just for fun, and mostly to keep an eye on the battery charge state.
the 20×4 LCD screen
The LCD screen is managed by the same python script that dumps the VE.direct data into Grafana. I focus on two metrics in particular. First of all the daily solar yield as a percentage: 100% means the load has been compensated by solar and anything higher means an energy ‘profit’. In the bottom right we see the charger status (Bulk): if it’s on ‘Float’ the battery is full. I tend to wait for the battery to recharge to a ‘float’ status before I use the inverter again.
A 12 Volt 230 Ah lead-acid battery10
I bought the battery11 second-hand for €100 so that’s not a significant investment for a battery. Although it’s a bit worn-down and the capacity is reduced, it is still good enough for me to run my computer setup for 10 hours after a full charge12. In practice, I won’t use the battery for more than four to five hours at a time because recharging can take multiple days and lead-acid batteries should ideally be fully recharged within 24 hours or their aging is accelerated.
The lead-acid battery also serves another purpose: is a relatively cheap option for me to validate my setup. If it works as intended, I might opt to upgrade to lithium (LiFePO4) at some point.
Until recently, switching between the grid and solar for my computer setup was quite cumbersome. I had to power down all equipment, connect to the inverter and power everything up again. That got old very quickly. Fortunately, I stumbled on an advertisement for a Victron Filax 2 and it turns out that it does exactly what I need.
The Filax 2 switches between two 230 Volt input sources without any interruption, like a UPS (Uninterruptible power supply). Now that I’ve installed this device, I can switch between solar and grid power without any interruption. Brand new, The Filax 2 costs €350 which was beyond what I wanted to spend, but the second-hand price was acceptable.
My solar setup is not something that I can just turn on and forget about. I have to keep an eye on the battery, especially because lead-acid should ideally be recharged within 24 hours.
Happy case: the battery is full and my computer desk is 100% solar-powered
It’s now April 2023 and my setup seems promising. Peak output of the two 370 Watt solar panels facing west was 230 Watts. Only for a very short period, but it makes me confident for spring and summer. I could automate enabling and disabling the inverter, with a relay and some logic in Python, but for now I’m good with manually operating the inverter.
You may have noticed that I’ve used a lot of Victron equipment. Mostly because it seems high-quality and the data interfaces are documented and easy-to-use. The inverter was also chosen because of the low parasitic load (self-consumption) of around 6 watt. Victron equipment is not cheap. Buying Victron gear second-hand can save a lot of money.
Speaking of cost, if I include all the cost I made, including previous solar projects and mistakes, I think I spend around €2000.
That’s all I have to say about my hobby solar project for now.
Link to Hacker News thread about this article.