···1818- Small Phillips screwdriver
19192020> [!IMPORTANT] Good WiFi needed
2121-> 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!
2121+> 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!
22222323<details>
2424<summary>Don't have a QT Py ESP32-S3? Considering other boards?</summary>
···27272828Things to consider when picking another device:
29293030-- It'll need Wifi (obviously)
3030+- Naturally, it'll need WiFi
3131- This code has been built for ESP32 hardware, you'll likely need to make significant changes if you want to use a different platform
3232- 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
3333- 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
3434- You don't need a Qwiic connector, you can hardwire I2C lines if that's easier
3535- The esp32's program/sketch is quite large (~1MB for my esp32-s3), don't skimp on program space!
3636+- 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!
36373738You'll need to change the `board` in `platformio.ini` to match whatever you go for.
3839···154155- **Sync not working**
155156156157 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?
158158+159159+- **Four corners flashing**
160160+161161+ 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.
162162+163163+ 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).
164164+165165+ 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.
157166158167## Built on top of [The Every Day Calendar](https://yetch.studio/products/every-day-goal-calendar)
159168
+1
firmware/esp32/GoalsGardenSync/web_server.cpp
···183183 }
184184185185 html += F("<button type=\"submit\" id=\"save-btn\" disabled><span class=\"btn-text\">Save Selection</span><span class=\"spinner\"></span></button>");
186186+ 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>");
186187 html += F("</form>");
187188 html += F("<script>");
188189 html += F("var f=document.getElementById('goal-form'),b=document.getElementById('save-btn');");