And so, I thought it would be interesting challenge to try and use an 8-bit system to help calculate that.
A couple across-country flights later, I think I have a functional start at it.
I admit it's a little difficult to use, but it self-starts using a few valid configurations. The Volt/Amp of each panel is currently hard-coded as a bunch of DATA statements at the end of the program. So it's an easy to adjust table - later version will be able to adjust all these and SAVE/LOAD custom settings to a file.
Currently using 64x25 screen mode. We could go to 80x60 and support even more panels - the code is setup to easily adjust for that, but for now 16 is enough (and you can split the panels into groups, where each GROUP is intended to have its own charge controller)
For now, you can press F1 to process the groups and calculate the resulting total volt, amp, watts of each group.
It was a bit tricky coming up with a way to "detect" parallel vs series configurations (at least to do under BASIC). As a consequence there are a few little constraints on how you specify the connections. When pressing F1, it will automatically seek out the (negative) charge controller connection for each group as the starting point. It then assumes that for parallel connections, the "next panel" refers back to the prior panel. In hindisght, it may have been better to flank the panels with a set of "connection points" (which would then make it easier to calculate how many 2-to-1, 3-to-1, 4-to-1, etc. connectors you need for the setup).
I thought about using cute sprites, but just stuck with PETSCII for now (and one custom font for the "cc", embedded in the program itself). But I think it was a little interesting in how the panels are drawn (directing straight to VRAM to speed things up and technically the panels are resizable, but not exercising that yet).
It seems to work for the sample configurations included - I'll experiment more with actual 6 and 8 panel configurations to see if properly scales up.
KEYS:
LEFT/RIGHT arrow to move the cursor between panels, and while on a panel this move between the negative/positive terminal and also the "group" selector.
When on the group selector, up/down arrow changes the group assigned to the current panel. Each group is expected to have at exactly 2 "cc" (charge controller) connections (one negative and one positive).
When on a terminal (positive or negative), up/down arrow changes what end that terminal is connected to (positive vs negative, and changing the color accordingly).
Also when on a terminal (positive or negative), you press A-Z (or however many panels there are) to assign what panel that terminal is connected to.
SPACEBAR to toggle disabling a panel.
F1 to calculate the report. For now this is one time only, still testing the criteria and accounting. This runs a process that examines the panels within each group, and tries to determine the total voltage and amps associated with that group.
Each set of parallels within a group are assumed to then be connected in series.
While there is no SAVE/LOAD yet, you can define new groups (or modify the default ones) and then F1 to calculate out if it's a valid setup. I suppose besides solar panels, this might also multi-battery or raw circuit layouts - but I happened to be setting up a group of panels and trying to decide how to run the cables. Knowing the AMPS helps decide what size cables you need (and how fast you can charge stuff).
Also, after all this time it occurred to me how we can have BULK (multi-line) COMMENTS in BASLOAD: Just plain-text whatever comments you want, then wrap a big GOTO around it

.