Skip to content

v0.2.0 - WiFi captive portal, no more compile-time credentials

Choose a tag to compare

@github-actions github-actions released this 13 Jul 19:31
· 11 commits to main since this release

No more compile-time WiFi credentials, and this is the first release with prebuilt,
flashable binaries attached - build it yourself with PlatformIO, or just flash the
.bin from this release.

WiFi setup is now a captive portal. include/secrets.h is gone entirely. On first
boot (or whenever the saved network is unreachable for 30s), the CYD opens its own
PineCYD-Setup WiFi network with a config portal (http://192.168.4.1) to enter your
network; if that isn't configured either within 2 minutes, it gives up for now and
retries automatically every 2 minutes. Hold the BOOT button (GPIO0) through power-on to
force a fresh portal any time. Runs fully non-blocking so it can never stall BLE
scanning or the display.

Fixed a real bug found via live testing: the config portal's access point couldn't
be joined at all from either iOS or macOS, even though the firmware's own log showed it
starting normally. Root cause: this project's continuous BLE scan was starving the
softAP of the airtime it needs to complete a client association - the same WiFi/BT
radio-coexistence contention already documented elsewhere in this project, just running
in the opposite direction. Fixed by pausing the scan for as long as the portal is open.

Also fixed a poll-cycle "jerkiness" reported while actually using the dashboard:
replaced a fast tip-temp-only poll running alongside a periodic 6-read "full cycle" with
a single round-robin cycle (tip temp every cycle, plus one of the other five
characteristics in rotation) - every cycle now costs about the same instead of
alternating between small and large bursts.

Release binaries (see the top-level README's "Flashing a release" section):

  • pinecyd-firmware-factory.bin - merged image (bootloader + partitions + app) for a
    blank/new board. Flash at offset 0x0.
  • pinecyd-firmware.bin - app only, for updating a board already running PineCYD. Flash
    at offset 0x10000.

Built and published automatically by .github/workflows/release.yml on this tag - pinned
to the exact ESP32 platform/core version (pioarduino/platform-espressif32 @ 55.03.39)
this project has actually been verified against on real hardware.

Known caveats:

  • Two things needing physical verification still pending: WiFi correctly resuming when a
    Pinecil disconnects, and the BOOT-button-forced portal reset.
  • No OTA/self-update yet - still a compile-and-flash (or flash-the-release-binary)
    workflow.
  • No touchscreen input - the dashboard is read-only; setpoint is controlled on the iron
    itself.