你的一天,靜靜顯示。 Your day, quietly displayed.
把一部約 US$60 的電子紙裝置,變成一塊安靜的資訊顯示屏 —— 天文台天氣同警告、巴士同港鐵到站、頭條新聞。中英對照,一眼看完,一枚電池用幾個星期。
A ~US$60 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
- 晶片 Chip
- ESP32-S3
- 面板 Panel
- 800 × 480 六色電子紙
- 續航 Battery
- 數星期 weeks
- 伺服器 Servers
- 零 none
- 帳戶 Accounts
- 零 none
- 授權 Licence
- GPL-3.0
hko-now — 現時天氣 · 由香港天文台開放數據直接繪製,800 × 480,六色電子紙。
Rendered by the engine itself, not a mockup.
這是什麼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
GPL-3.0 授權,由引擎、韌體到頁面規格全部公開。你可以自己寫一個 pack,或者將整個 repo 交俾 AI 助手,用一句說話講出你想睇乜。
GPL-3.0-licensed, end to end. Write a pack yourself — or point a coding agent at the repo and describe the page you want.
運作方式How it works
裝置一日之內大部分時間都在深度睡眠。每次醒來,它只做四件事,然後再睡。
計時器、按鍵或警告接管觸發。時鐘穿越深度睡眠繼續行走。
直接以 HTTPS 向公開 API 取數,用內建 CA 驗證,不經任何中介。
引擎解析 pack、抽取數值、排版 widget,輸出 800 × 480 的畫面。
數據無變就跳過刷新 —— 不浪費一次電子紙重繪,也不浪費電。
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"
項目現況Where the project actually is
早期開發階段,一部裝置,實測數字照直講。Early development, one device, honest numbers.
YAT-xxxx → 彈出頁面揀網絡
Wi-Fi from a phone: hold the green button, scan the QR on the panel, join YAT-xxxx, pick your network in the page that pops up
可用 WORKING
http://yat-xxxx.local)—— 頁面庫直接喺入面揀、填設定、一撳裝落機,唔使插線
The device serves its own settings page at http://yat-xxxx.local — browse this site's pack library, fill the form, install, no cable
可用 WORKING
tools/preview 喺電腦渲染任何一版。
The flow is real and someone has walked all of it: flash, Wi-Fi from a phone, then choose pages on the settings page the device serves itself. What's missing is the first public release — today the Flash page needs a firmware image you built from the repo yourself; once a tag is cut it will fetch one. No hardware? Render any page on your computer with tools/preview.
你需要什麼What you need
一部裝置A device
SeeedStudio reTerminal E1002(六色電子紙)或 E1001(黑白,刷新較快)。約 US$60,現成買到,唔使改裝。
一條 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 進行,一部裝置一世人做一次。之後揀版同改設定全部用電話,喺裝置自己嘅設定頁度做。其他瀏覽器可以用 UF2 拖放方式安裝。
沒有帳戶要開。整個流程由頭到尾,都沒有任何嘢需要註冊。No accounts are created at any point — there is nothing to sign up for.