https://github.com/yucandu/ClockV3

MCU

STM32L412K8T6

Display

ST7305 168×384 2.9" MiP LCD ("Memory LCD") @ 0.25hz

Sensors

AHT20 — Temperature & Humidity
BMP280 — Barometric Pressure
DS3231SN — Real-Time Clock
MAX17055 — Fuel Gauge

The AHT20, BMP280, and DS3231SN are powered directly from MCU GPIO pins to minimize standby power consumption.

Power System

30 mAh LiPo battery (Bluetooth earbud battery)
TP4054 charger configured for 50 mA charge current
DFM8001 energy harvesting module
Two 30 mm × 30 mm × 3 mm amorphous silicon solar panels
    Recycled from dollar-store garden lights

Runs at ~150uA avg, according to INA228 coulomb counter (used as poor man’s power profiler). Sitting upside down on a desk in regular indoor lighting at night, solar panels harvest ~200uA. Coded entirely for STM32CubeIDE.

  • yucanduOP
    link
    fedilink
    English
    arrow-up
    2
    ·
    5 days ago

    I either lost the schematic or never made one, but this one for the newer STM32U3 version is pretty much identical, just with an STM32U3 instead of the STM32L4:

    https://i.imgur.com/r15uMNC.png

    i think i actually omitted physical pullups on the switches. the max17055 is only so I can track exactly how low-power it is.

    this is the pin layout I used on the L4, mirrored, because I deadbugged it upside down:

    https://i.imgur.com/vEPDjOL.png

    I did it on perfboard and plotted the layout in photoshop, this is the closest to the end before it was all done:

    https://i.imgur.com/aDK4pHn.png

      • yucanduOP
        link
        fedilink
        English
        arrow-up
        2
        ·
        4 days ago

        oh that’s missing the DFM8001 solar harvesting module + solar panels that give it the indefinite indoors feature.

        • INeedMana@piefed.zip
          link
          fedilink
          English
          arrow-up
          1
          ·
          4 days ago

          Well, it’s a start at least. That DFM module was the selling point of the project for me. It’s neat to have something run on solar

          • yucanduOP
            link
            fedilink
            English
            arrow-up
            2
            ·
            3 days ago

            lol it’s pretty simple, you just follow the instructions in the dfm8001 datasheet - SCRIN + GND to your solar panel, BAT + GND to your battery. Tie all three VFC pins to the BUCK pin to configure for lipo. Tie both MPPT pins to GND for a shitty solar panel. Tie L_EN, H_EN (unless you wanna use it instead of the RT9080), PRIM_U, PRIMBAT, and DCSC to GND. Leave all other pins floating. I think it’s $6 on digikey.