Upgraded firmware for Simone Giertz's Every Day Calendar that links an ATProto-powered ESP32, for sync with goals.garden 🌱

Readme & styling improvements

+12 -2
+11 -2
README.md
··· 18 18 - Small Phillips screwdriver 19 19 20 20 > [!IMPORTANT] Good WiFi needed 21 - > These tiny devices have tiny WiFi antennas. You'll need good signal wherever you hang your calendar. There are [variants with antennas](https://www.adafruit.com/product/5348) you may want to try! 21 + > These tiny devices have tiny WiFi antennas. You'll need good signal wherever you hang your calendar. There are [variants with antennas](https://www.adafruit.com/product/5348) you may want to try, but I've not been able to get these working with the firmware just yet! 22 22 23 23 <details> 24 24 <summary>Don't have a QT Py ESP32-S3? Considering other boards?</summary> ··· 27 27 28 28 Things to consider when picking another device: 29 29 30 - - It'll need Wifi (obviously) 30 + - Naturally, it'll need WiFi 31 31 - This code has been built for ESP32 hardware, you'll likely need to make significant changes if you want to use a different platform 32 32 - Watch for space: the height between the rear & front boards of the calendar isn't much, and the width between the foam padding and the wooden edge of the calendar is small too 33 33 - my QT Py gives off a fair amount of heat (it holds a constant WiFi connection), don't use a board that can't cope with that 34 34 - You don't need a Qwiic connector, you can hardwire I2C lines if that's easier 35 35 - The esp32's program/sketch is quite large (~1MB for my esp32-s3), don't skimp on program space! 36 + - I've struggled to get the QT Py ESP32-S2 working — but I'm working on it, as teh u.FL antenna for WiFi is very handy! 36 37 37 38 You'll need to change the `board` in `platformio.ini` to match whatever you go for. 38 39 ··· 154 155 - **Sync not working** 155 156 156 157 Check the serial monitor (`pio device monitor -e esp32sync`) for error messages. If it works at your desk, but not on your wall, your WiFi may also not be strong enough for this little device at that location. There are QT Py ESP32 devices with [external antennas](https://www.adafruit.com/product/5348) that may help here? 158 + 159 + - **Four corners flashing** 160 + 161 + If the four corner days (Jan & Dec 1st & 31st) are flashing alternately once per second, then the ESP32 hasn't been able to connect to the internet. 162 + 163 + As soon as the connection is established, you'll see a 'raindrop' pattern ripple across the LEDs. (This happens on boot, and after being disconnected from the internet for over 1 minute). 164 + 165 + If you don't see a raindrop animation after boot _and_ the corners aren't flashing, then calendar can't find the ESP32 to communicate with. Try reflashing the ESP32, and checking the connections are sturdy & not connected to more than one pad. 157 166 158 167 ## Built on top of [The Every Day Calendar](https://yetch.studio/products/every-day-goal-calendar) 159 168
+1
firmware/esp32/GoalsGardenSync/web_server.cpp
··· 183 183 } 184 184 185 185 html += F("<button type=\"submit\" id=\"save-btn\" disabled><span class=\"btn-text\">Save Selection</span><span class=\"spinner\"></span></button>"); 186 + html += F("<p style=\"color:#888;font-size:0.85em;text-align:center;text-wrap:balance;margin-top:16px\">If your goal is missing, make sure you've migrated your account on <a href=\"https://goals.garden\" target=\"_blank\" style=\"color:inherit\">goals.garden</a>.</p>"); 186 187 html += F("</form>"); 187 188 html += F("<script>"); 188 189 html += F("var f=document.getElementById('goal-form'),b=document.getElementById('save-btn');");