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 - Small Phillips screwdriver 19 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! 22 23 <details> 24 <summary>Don't have a QT Py ESP32-S3? Considering other boards?</summary> ··· 27 28 Things to consider when picking another device: 29 30 - - It'll need Wifi (obviously) 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 - 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 - 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 - You don't need a Qwiic connector, you can hardwire I2C lines if that's easier 35 - The esp32's program/sketch is quite large (~1MB for my esp32-s3), don't skimp on program space! 36 37 You'll need to change the `board` in `platformio.ini` to match whatever you go for. 38 ··· 154 - **Sync not working** 155 156 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? 157 158 ## Built on top of [The Every Day Calendar](https://yetch.studio/products/every-day-goal-calendar) 159
··· 18 - Small Phillips screwdriver 19 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, but I've not been able to get these working with the firmware just yet! 22 23 <details> 24 <summary>Don't have a QT Py ESP32-S3? Considering other boards?</summary> ··· 27 28 Things to consider when picking another device: 29 30 + - Naturally, it'll need WiFi 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 - 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 - 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 - You don't need a Qwiic connector, you can hardwire I2C lines if that's easier 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! 37 38 You'll need to change the `board` in `platformio.ini` to match whatever you go for. 39 ··· 155 - **Sync not working** 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. 166 167 ## Built on top of [The Every Day Calendar](https://yetch.studio/products/every-day-goal-calendar) 168
+1
firmware/esp32/GoalsGardenSync/web_server.cpp
··· 183 } 184 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("</form>"); 187 html += F("<script>"); 188 html += F("var f=document.getElementById('goal-form'),b=document.getElementById('save-btn');");
··· 183 } 184 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>"); 187 html += F("</form>"); 188 html += F("<script>"); 189 html += F("var f=document.getElementById('goal-form'),b=document.getElementById('save-btn');");