YAT
開源 Open source · 無伺服器 Serverless · 香港優先 Hong Kong first 公開測試版 Public beta · v0.5

你的一天,靜靜顯示。 Your day, quietly displayed.

把一部約 US$99 的電子紙裝置,變成一塊安靜的資訊顯示屏 —— 天文台天氣和警告、巴士和港鐵到站、頭條新聞。中英對照,一眼看完,一枚電池用幾個星期。

A ~US$99 off-the-shelf e-ink device becomes a calm information display: Observatory weather and warnings, bus and MTR arrivals, headlines. Bilingual, glanceable, weeks on one battery.

裝置 Device
reTerminal E1002 或 E1001
晶片 Chip
ESP32-S3
面板 Panel
800 × 480 電子紙 · 六色或黑白 colour or mono
續航 Battery
數星期 weeks
伺服器 Servers
零 none
帳戶 Accounts
零 none
授權 Licence
引擎及韌體 GPL-3.0
老實講 In plain terms 這是公開測試版,今日就裝得到 —— reTerminal E1002 和 E1001 兩部裝置,都有人由開箱一路做到見到自己揀的畫面:燒錄、用手機設定 WiFi、在裝置自己開的設定頁揀版、按掣、用聲音轉版,全部走過一次。始終是測試版,介面和行為都還會調整。遇到問題,歡迎去 GitHub 開一個 issueThis is a public beta, installable today — one person has walked the whole path, box to your own chosen pages, on both the reTerminal E1002 and E1001: flashing, Wi-Fi from a phone, choosing pages on the device's own settings page, the button, and voice. It is still beta — behaviour and interface may still change. Hit a problem? Open a GitHub issue.
YAT 顯示現時天氣的畫面:大字「28°」、沙田、濕度 90%,底部標示資料來源為 data.weather.gov.hk。A YAT screen showing current weather — 28 degrees in Sha Tin, 90% humidity — sourced from data.weather.gov.hk.
hko-now — 現時天氣 · 由香港天文台開放數據直接繪製,800 × 480,六色電子紙。 Rendered by the engine itself, not a mockup.
01

這是什麼What it is

沒有伺服器No server, anywhere

一版就是一個 JSON 檔案 —— 我們叫它 pack。裝置經你的 WiFi 直接向公開 API 取數,再由韌體內的引擎繪製。沒有帳戶、沒有雲端、沒有訂閱、沒有遙測;這個專案除了靜態檔案之外,什麼都不託管。

A page is one declarative JSON file — a pack — executed by an engine inside the firmware. The device talks to public APIs directly. No account, no cloud, no telemetry.

為香港而設Hong Kong first

天文台的天氣和八號風球、環保署的空氣質素、KMB / 城巴 / 港鐵的到站時間、潮汐、匯率 —— 全部是本地真實的開放數據,繁體中文和英文一齊出。香港優先,但不止於香港。

Observatory weather and typhoon warnings, AQHI, KMB / Citybus / MTR arrivals, tides, FX — real local open data, in 繁體中文 and English. Hong Kong-first, not Hong Kong-only.

開放的Open

引擎、韌體、頁面規格和全部 pack 都以 GPL-3.0 開源。你可以自己寫一個 pack,也可以把 repo 交給 AI 助手,用一句話講出你想看什麼。

The engine, firmware, pack spec and every pack are GPL-3.0 open source. Write a pack yourself — or point a coding agent at the repo and describe the page you want.

02

運作方式How it works

裝置一日之內大部分時間都在深度睡眠。每次醒來,它只做四件事,然後再睡。

01 醒來Wake

計時器、按鍵或警告接管觸發。時鐘穿越深度睡眠繼續行走。

02 取數Fetch

直接以 HTTPS 向公開 API 取數,用內建 CA 驗證,不經任何中介。

03 繪製Render

引擎解析 pack、抽取數值、排版 widget,輸出 800 × 480 的畫面。

04 睡眠Sleep

數據無變就跳過刷新 —— 不浪費一次電子紙重繪,也不浪費電。

Wake on a timer, a button or a warning takeover → fetch over verified HTTPS → run the pack through the engine → skip the refresh entirely when the data hash is unchanged, then deep-sleep.

一個引擎,三個目標One engine, three targets

同一份 C++ 核心,編譯成裝置韌體、桌面預覽 CLI 和瀏覽器 WASM。三者渲染出來的像素完全一致 —— 你在電腦上看到的,就是螢幕上會出現的。

The same portable core builds for the device, a native CLI preview, and WebAssembly — verified pixel-identical, byte for byte.

用一句說話造一版Packs are written by agents

Pack 的規格寫得夠精確,本身就是給機器讀的。這個 repo 會自我導航:把任何編程助手指向 repo 根目錄,講出你想要的頁面就可以。

$ cd yat && claude
> "寫一版顯示西貢 69 號小巴到站時間的 pack"
03

你需要什麼What you need

一部裝置A device

SeeedStudio reTerminal E1002(六色電子紙)或 reTerminal E1001(黑白,刷新較快)都可以 —— 兩款都是 ESP32-S3,約 US$99,現成買得到,不用改裝,燒錄頁兩款都支援。

一條 USB-C 數據線A USB-C data cable

要真的有數據線芯那一種。只能充電的線,是最常見的安裝失敗原因。

2.4 GHz WiFi2.4 GHz WiFi

ESP32-S3 無法連接只有 5 GHz 的網絡。這是最常見的設定問題。

桌面版 Chrome 或 Edge —— 只限燒錄那一次Desktop Chrome or Edge — for the flash only

燒錄經 WebSerial 進行,一部裝置一生只做一次。之後揀版和改設定全部用手機,在裝置自己的設定頁做。Safari 和手機瀏覽器做不到燒錄這一步 —— 借一部電腦用一次就可以。

沒有帳戶要開。整個流程由頭到尾,都沒有任何東西需要註冊。No accounts are created at any point — there is nothing to sign up for.