ClawdMiner:一塊被 Gemini 放棄的礦機板,我把它變成 Claude 用量儀表板+會自己玩的 RPG
目錄
ClawdMiner:一塊被 Gemini 放棄的礦機板,我把它變成 Claude 用量儀表板+會自己玩的 RPG
事情是從一塊很便宜的黃色板子開始的。
一片 ESP32-S3,配一顆 1.9 吋的 ST7789 小螢幕,出廠時被當成「比特幣樂透礦機」的新奇小玩具在賣。我手上這塊,螢幕是全黑的,怎麼樣都不亮。就一片死掉的塑膠跟金屬,躺在桌上。
我不想丟。我想讓它做點事。於是這篇文章,講的是一場除錯的偵探故事,一次多代理生成的韌體重寫,還有一個我必須誠實面對的事實:這台東西挖的是真的比特幣,但它永遠不會替我賺一毛錢。而這,恰恰就是它的意義。

第一晚:Gemini 弄了一整夜,卡在「背光亮了,螢幕全黑」
我先找的其實不是 Claude,是 Google 的 Gemini(Antigravity 那個 agent)。
它很努力,我得承認。一整晚,燒掉我一大截 Gemini 額度,寫了大概 50 支測試腳本,把 SPI 腳位排列組合幾乎試了一輪。結果呢?永遠停在同一句話:「backlight on, screen black」。背光是亮的,代表板子有電、程式有跑,但螢幕上一個像素都畫不出來。
一整晚,50 支腳本,零進展。隔天早上我把這攤爛帳丟給 Claude Code。
破案:不是猜腳位,是去讀 Gemini 自己的紀錄
Claude 做的第一件事,不是繼續猜腳位。
它去讀了 Gemini 留下的那 50 支腳本,還有 Gemini 自己那晚的對話 log。然後翻出了整晚真正的劇情:
Gemini 其實成功過一次。它曾經真的把「PPCVOTE」這幾個字畫上了螢幕。
但它把這次成功,歸功給了錯的 SPI 腳位。接著它就抱著那組錯的腳位,一遍又一遍忠實地重現「錯誤」,把自己那次唯一正確的結果,親手覆蓋掉了。整晚剩下的時間,它都在往離答案越來越遠的方向努力。
這是一個教科書等級的失敗模式:一個 agent 認定了錯的假設,然後不斷迭代,越迭代離真相越遠。它不是不夠努力,是太努力地朝錯的方向努力。
一張背面照片,勝過一整晚的暴力嘗試
真正破案的,是一張照片。
我拍了板子背面的照片,上面有排針的絲印標籤(silkscreen),標出了哪幾支 GPIO 被拉到使用者可以接線的排針上。Claude 的推理很乾脆:任何被拉到使用者排針上的 GPIO,就不可能同時被內部接去驅動螢幕。用刪去法,螢幕一定是用那 10 支「沒被拉出來」的 GPIO。
接著它拿這組候選去對照一款 T-Display-S3 clone 的公開腳位圖,答案就浮出來了:
- 驅動 IC:ST7789
- SCLK = 12,MOSI = 13
- CS = 10,DC = 11,RST = 1
- 背光 = 14
照這組腳位燒進去,第一次嘗試,螢幕就亮了。
我拿它建了什麼
螢幕活過來之後,我才真正開工。
v1 是一個 MicroPython 儀表板。 板子自己算不出我的 Claude Code 用量,所以我在 PC 端寫了一支很小的服務,用開源工具 ccusage 讀取本機的 Claude Code 使用資料,每 15 秒左右把一包 JSON 透過 WiFi POST 給板子。板子只負責畫。
v2 我整個砍掉重寫成 C++ 雙核心韌體。 PlatformIO + Arduino framework,螢幕用 Arduino_GFX,我還手刻了一個放在 PSRAM 的 framebuffer,像素等級忠實移植自 MicroPython 那版。分工是這樣:
- Core 1:真的在挖比特幣(stratum-v1 client + double-SHA256 硬碾 nonce,實測約 20 KH/s,礦核參考自開源的 NerdMiner_v2)。
- Core 0:WiFi、PC 推送的接收端、螢幕、還有那個 RPG。
韌體有很大一部分是用多代理的 Claude Code workflow 生出來的:平行設計,架構定案,模組生成,再來一輪對抗式互相審查,最後我手動整合、上真硬體測。
兩個畫面,短按按鈕切換
畫面一:Claude 用量儀表板。
走 Claude 品牌配色(Anthropic 那種珊瑚偏陶土的暖橘、暖色深底、奶油色數字)。主角是一隻珊瑚色的 Clawd 螃蟹,正在吃錢:你每小時燒得越兇,牠嘴巴咬得越快,飛進嘴裡的鈔票也越密。畫面上有 this-5h-window(這 5 小時窗)、this-week(本週)、Fable-5 的 token 計數、當前窗口花費,還有即時的 CPU / GPU / RAM / VRAM 條。
畫面二:CLAWD: CRYPTO DUNGEON,一款復古掛機自動戰鬥 RPG。
Clawd 是一隻會進化的螃蟹/龍蝦英雄,在一座加密地城裡刷怪。重點是:每一個數字都是真的。

- 累積 token 數 = 角色等級 + 6 個進化階(Egg 一路到 Cyber Ascendant)
- Claude 每小時燒的錢 = 攻擊力
- 即時挖礦 hashrate = 魔力(MANA)
- 挖到一個真的 share = 暴擊 + 掉寶
- 清掉一隻怪 = 往下一層(深度越走越深,怪也會換)
- 真的挖到一個比特幣區塊 = 傳說級全螢幕 boss 擊殺演出
- 長按那顆唯一的按鈕 = 放大絕

它不是在跑模擬。它是把我真實的工作痕跡跟這台板子真實的運算,變成一隻在桌上自己冒險的寵物。
實際跑起來大概長這樣:
誠實的轉折:對,它挖真的比特幣;不對,它永遠不會賺錢
這段我要講得很清楚,不能含糊。
這塊 ESP32 目前實測約 20 KH/s(軟體 SHA256);之後改用硬體 SHA 有機會拉到 56 到 78 KH/s,這我也照實說。而整個比特幣網路的算力,大約是 700 EH/s。
這中間差了好幾個數量級,我想你心裡也有數。它「挖到」一個區塊的機率,小到基本上就是「好幾輩子都不會發生」。
所以請不要,任何時候都不要,以為這台東西會賺錢。它不會。我也從沒這樣宣稱過。
那為什麼還要挖?因為那張「樂透彩券」幾乎是免費的。整台大概 0.5W,一顆小夜燈的等級。它不是一門生意,它是一張近乎零成本的彩券,是一個讓閒置算力長出一張臉的方式,是一隻桌寵。它的價值在儀表板跟那隻寵物,不在利潤。
(順帶一提,我也認真想過改用 PC 上那張 RTX 3060 Ti 來挖,然後否決了。算完電費是淨賠的。這裡提一句,只因為它剛好也誠實。)
還有一件事我必須講在前面:儀表板上那些美金數字,是「API 等價」的價值,也就是同樣的用量如果走按次計費的 API 價格會是多少。我用的是月費訂閱制,實際上根本沒有付出那些金額。我把這句話寫進畫面裡,就是不想讓任何人誤會我一天在燒好幾百美金。
想自己做一台?
整包程式碼開源在 github.com/ppcvote/ClawdMiner(MIT)。firmware(韌體)、host(PC 推送器)、接線圖、燒錄步驟都在裡面。
先講一個誠實前提: 這種便宜黃板是雜牌,同一個型號、不同批貨,腳位很可能不一樣(這正是整篇破案故事的由來)。所以「照著做」的意思,是照著我的方法去找出「你那塊」的腳位,而不是照抄我的數字。萬一你的螢幕也黑屏,repo 裡有找腳位的方法可以照做。
要買板: 搜「ESP32-S3 NerdMiner」「ESP32-S3 1.9 樂透礦機 黃色」或「T-Display-S3 clone」,蝦皮、淘寶、AliExpress 都找得到,通常幾百塊台幣。認明特徵:黃色 PCB、ESP32-S3-WROOM-1、1.9 吋彩色螢幕、單 Type-C、兩顆按鈕。
要動手: git clone 整包 → 照 README 用 esptool 清掉原廠韌體、pio run -t upload 燒錄 → 填好 secrets.h(WiFi + 你自己的比特幣主網地址)→ PC 端裝 ccusage、跑推送器。全程都在 README 裡。
如果你看到這裡覺得「有點麻煩、我不太會」——沒關係,我可以代勞。 進板、燒好、幫你把 WiFi 跟你的錢包地址都設定妥當再寄給你,或你有想客製的地方都可以談。直接透過 ultralab.tw 跟我下單或諮詢就好。
它現在是什麼
它現在是一隻活在我桌上的東西。
一半是 Claude Code 的即時用量儀表板,一半是一款會自己玩、而且每個數字都來自真實世界的復古 RPG,底下還默默買著一張永遠不會中、但幾乎不花錢的比特幣彩券。
技術規格給想動手的人:ESP32-S3-WROOM-1(16MB flash、8MB PSRAM)、ST7789 1.9 吋 170x320 橫向、PlatformIO + Arduino framework、Arduino_GFX、FreeRTOS 雙核心、用量資料靠 ccusage、礦核參考並致敬 NerdMiner_v2。整包 MIT 授權。
整件事教會我的,其實不是腳位。是那句:一張實體證據的照片,可以打敗一整晚的暴力猜測;而一個 AI 若把自己的成功歸錯了因,它會非常努力地,把自己帶離真相。
我不是那個等答案被公布的人。我是那個可以自己去把答案挖出來的人。這塊被放棄的板子,現在天天在我桌上提醒我這件事。