▸ POWER CHAIN OVERVIEW
Panel 1 (10W, East) --[+]--> [Diode 1] --+
+--> Controller PV+
Panel 2 (20W, West) --[+]--> [Diode 2] --+
Panels (-) ------------------------------> Controller PV-
Battery (+) --> INA219 VIN+ ... INA219 VIN- --> Controller BAT+
Battery (-) --------------------------------------> Controller BAT-
Controller USB 5V OUT --> Pi Zero W power in (Load Mode 17 — Always On)
| PANEL | FACING | NOTE |
| 10W | East | catches morning tree gap |
| 20W | West | catches evening tree gap |
⚠ Each panel's (+) lead runs through its own 1N5822 Schottky blocking diode before joining the shared bus — prevents the sunlit panel from backfeeding the shaded one.
Negatives join directly, no diode needed.
| TERMINAL | CONNECTS TO | NOTE |
| PV+/PV- | Panel diode bus | solar input |
| BAT+ | INA219 VIN- | battery, via monitor |
| BAT- | Battery (-) | direct |
| USB OUT | Pi Zero W power in | regulated 5V/2A |
ℹ Battery Type set to SEL (Sealed/AGM). Load Mode set to 17 — Always On, so USB output survives a brownout without manual intervention.
LOAD terminals unused.
| TERMINAL | CONNECTS TO | NOTE |
| + | INA219 VIN+ | through power monitor |
| - | Controller BAT- | direct |
ℹ Sourced free via workplace UPS supply.
Replaced 18650 Li-ion cells — SLA tolerates MOUND's real-world partial-charge cycling far better.
| PIN | CONNECTS TO | NOTE |
| VCC | 3.3V — Pin 1 | power |
| GND | Ground — Pin 6 | |
| SDA | GPIO2 — Pin 3 | I2C data |
| SCL | GPIO3 — Pin 5 | I2C clock |
| VIN+ | Battery (+) | battery-side, in-line |
| VIN- | Controller BAT+ | battery-side, in-line |
⚠ Relocated from load-side (Pi 5V) to battery-side. Now reads true battery voltage and real charge (-) / discharge (+) current direction.
Library: adafruit-circuitpython-ina219
| PIN | CONNECTS TO | NOTE |
| VDD | 3.3V — Pin 1 | power |
| GND | Ground — Pin 6 | |
| SDA | GPIO2 — Pin 3 | I2C data |
| SCL | GPIO3 — Pin 5 | I2C clock |
| ADDR | Ground — Pin 6 | sets 0x48 |
ℹ 4-channel ADC. Analog sensors connect to A0–A3
Library: adafruit-circuitpython-ads1x15
| PIN | CONNECTS TO | NOTE |
| VCC | 3.3V — Pin 1 | power |
| GND | Ground — Pin 6 | |
| AOUT | ADS1115 — A0 | analog signal |
⚠ Disconnected wire reads as floating noise (large swings, sometimes negative) — not a real reading. Confirm connector is seated if values look erratic.
| PIN | CONNECTS TO | NOTE |
| VCC | 3.3V — Pin 1 | power |
| GND | Ground — Pin 6 | |
| SDA | GPIO2 — Pin 3 | I2C data |
| SCL | GPIO3 — Pin 5 | I2C clock |
ℹ Board replaced Aug 2026 after corrosion damage from earlier enclosure water intrusion killed the original unit.
Library: adafruit-circuitpython-bme280
| PIN | CONNECTS TO | NOTE |
| VIN | 3.3V — Pin 1 | power |
| GND | Ground — Pin 6 | |
| SDA | GPIO2 — Pin 3 | I2C data |
| SCL | GPIO3 — Pin 5 | I2C clock |
ℹ Wide dynamic range — full sun to near darkness
Reads: Lux (visible + infrared channels)
Library: adafruit-circuitpython-tsl2591
| PIN | CONNECTS TO | NOTE |
| VCC | 3.3V — Pin 1 | power (red wire) |
| GND | Ground — Pin 6 | black wire |
| DATA | GPIO4 — Pin 7 | yellow wire |
⚠ 4.7kΩ pull-up resistor between VCC and DATA required
Reads as a file: /sys/bus/w1/devices/
| PIN | CONNECTS TO | NOTE |
| VCC | 3.3V — Pin 1 | power |
| GND | Ground — Pin 6 | |
| AO | ADS1115 — A1 | rain intensity |
| DO | GPIO17 — Pin 11 | yes/no rain |
ℹ AO = analog rain intensity into ADS1115 A1
DO = digital trigger, adjust threshold via onboard pot
| INTERFACE | DETAIL | NOTE |
| CSI | Camera connector | blue side → USB ports |
| RIBBON | Pi Zero adapter | 15→22 pin adapter req'd |
ℹ 5MP OV5647 sensor · Noon keeper capture only
Command: rpicam-still -o ~/mound/photo.jpg