ESP32 · JC4827W543 · v2.0.0

Your desk,
always in sync.

A portrait-mode smart clock for the JC4827W543 board. Large 92 px clock, live weather, and a 7-day forecast — no API key, no account, no phone portal. Configure everything right on the touchscreen. Flash from your browser.

⚠ Use Chrome or Edge for Web Serial support. ⚠ Requires HTTPS or localhost. Read tutorial ↓
⚡ Requires Chrome or Edge · Web Serial API
ESP32 DeskClock — Clock & Weather, 7-Day Forecast, and Settings screens
📺Display4.3″ 480×272 QSPI
🧠ChipESP32-S3
💾Flash4 MB · 8 MB PSRAM
🌡WeatherOpen-Meteo (free, no key)
SetupOn-device touchscreen
Features

Everything on one screen.

Three tabs, always one tap away. White background, smooth typography, designed to be readable across the room.

Giant Clock

Time at 92 px fills the top half of the screen — readable from across the room. Date, city name, and live weather stats below.

🌤

7-Day Forecast

Daily hi/lo and weather condition for the next week — powered by Open-Meteo. Free forever, no API key required.

⌨️

On-Device Settings

Enter WiFi credentials and city name directly on the touchscreen — no phone portal, no QR code, no companion app.

👆

Capacitive Touch

Full GT911 multi-touch support. Three-tab navigation and an on-screen keyboard with Norwegian characters (æ ø å).

🌍

Auto Timezone

UTC offset is derived from weather data automatically — just enter your city and the clock adjusts itself. No manual config.

Browser Install

Flash firmware directly from Chrome or Edge over USB — no Python, no PlatformIO, no drivers to install.

Before you start

What you need.

Make sure you have these before flashing.

📦
JC4827W543 board The ESP32-S3 board with 4.3″ 480×272 QSPI display and GT911 capacitive touch. Search for "JC4827W543" on AliExpress or Amazon.
🔌
USB-C cable (data capable) A charge-only cable won't work — you need one that carries data. The board connects as a USB CDC serial device.
Chrome or Edge browser The Web Serial API used for flashing is supported in Chrome 89+ and Edge 89+. Firefox and Safari are not supported.
No API key needed Weather data comes from Open-Meteo — completely free, no account, no rate limits for personal use.

Flash in 30 seconds.

Click Install, select the COM port for your board, and wait for the green checkmark. The device restarts automatically when done.

⚠ Use Chrome or Edge — Web Serial is required. ⚠ Page must be served over HTTPS.
⚡ Chrome or Edge required · No drivers needed · ~1 MB firmware
💾
firmware-merged.bin
v2.0.0 · ESP32-S3
Step-by-step guide

Full setup tutorial.

From unboxing to live clock — follow these steps in order.

1

Connect the board via USB

Plug your JC4827W543 into your PC with a data-capable USB-C cable. The board should power on — the display may show a boot logo or stay white. On first boot the firmware isn't installed yet, so it may show garbage or stay blank.

If your PC doesn't recognise the device, try a different USB cable. Charge-only cables have no data lines and won't work.

On Windows, open Device Manager and look for a USB Serial Device under "Ports (COM & LPT)". On macOS/Linux, check /dev/tty.*.

2

Click Install and select the port

Click the Install button above (or the one in the hero). Chrome will show a dialog listing available serial ports. Select the one that appeared when you plugged in the board.

If the board doesn't appear in the list, press and hold the BOOT button on the board while clicking Install to force it into download mode, then release BOOT once the dialog opens.

esp-web-tools will automatically erase the flash and write the firmware. This takes about 30 seconds. You'll see a progress indicator.

3

Board restarts — clock UI appears

After flashing completes the board resets automatically. The DeskClock firmware boots and shows the three-tab UI: Clock, Forecast, and Settings. Time and weather will show placeholder values until you configure WiFi.

No hotspot, no QR code, no phone required. Everything is configured directly on the touchscreen in the next step.

4

Open the Settings tab and fill in your details

Tap the ⚙ icon in the bottom-right corner of the screen. The Settings tab has three fields — tap each one and use the on-screen keyboard to type:

⚙ Settings
WiFi Network (SSID)
MyHomeNetwork
WiFi Password
••••••••••
City
Oslo
Connect & Save →

The city name is geocoded automatically — just type the city (e.g. Oslo, London, Tromsø). The keyboard includes Norwegian characters æ ø å. Timezone is set automatically from the weather data — no manual configuration needed.

5

Tap Connect & Save — done!

Tap the Connect & Save button. The board saves your settings to internal flash (NVS) and then:

① Connects to your home WiFi  ② Syncs time from NTP  ③ Geocodes your city  ④ Fetches weather & forecast  ⑤ Sets timezone automatically

Weather refreshes every 30 minutes. The clock syncs with NTP automatically — no battery for timekeeping needed. Settings survive power cycles.

To change WiFi or city later, just open the Settings tab again, update the fields, and tap Connect & Save again.

Device tools

Serial console and reset — requires the board to be plugged in via USB.

Waiting for port connection…
FAQ

Common questions.

The board doesn't appear in the serial port list.
Try a different USB cable — many cables are charge-only and have no data wires. If the board still doesn't appear, install the CP210x driver (Windows/macOS). Alternatively, hold the BOOT button on the board while plugging it in to force download mode.
The display stays white / shows garbage after flashing.
The default pin assignments in board_config.h may not match your board revision. The JC4827W543 has had minor hardware revisions. Check the silkscreen on your board and compare against the pin table in the GitHub repo. If the RGB data lines are swapped, the screen will show a solid colour or noise.
Weather shows "No weather data" after connecting.
Check that the city name was recognised — try a major nearby city if a small town doesn't work. Weather data comes from Open-Meteo via geocoding; no API key is needed. Weather refreshes every 30 minutes, so wait one cycle after first boot. Make sure WiFi is connected (the clock tab shows a city name when it is).
The time is wrong / offset by hours.
Timezone is derived automatically from the weather data for your city. If the time is off, it usually means the city geocoded to the wrong location — try a more specific city name or a major city in the same timezone. After changing the city in Settings and tapping Connect & Save, the timezone updates automatically on the next weather fetch.
How do I change the city or WiFi credentials later?
Open the Settings tab (⚙ bottom right), edit the fields, and tap Connect & Save again. No reflashing needed. Settings are saved to NVS flash and survive power cycles.
Can I compile the firmware myself?
Yes. Clone the repo and open the firmware/ folder in PlatformIO (VS Code extension or CLI). Run pio run to build. The post-build script automatically creates firmware-merged.bin and copies it to web-installer/. Upload that file to your server and update manifest.json to point to it.