ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
Phone-first pixel bay for HKCEM IEEM Part 2 OSCE revision. You walk the room, pick up the kit, and perform the station. The gold-standard words live in JSON packs. The engine does not know the medicine.
Dev server listens on 0.0.0.0:8080. startup.sh starts the same command.
Game Boy Color layout. Phone first; desktop works with the keyboard.
Sound is off by default. Turn it on from the title screen or the START menu.檢視完整 README ↗Phone-first pixel bay for HKCEM IEEM Part 2 OSCE revision. You walk the room, pick up the kit, and perform the station. The gold-standard words live in JSON packs. The engine does not know the medicine.
npm install
npm run dev
Dev server listens on 0.0.0.0:8080. startup.sh starts the same command.
Game Boy Color layout. Phone first; desktop works with the keyboard.
| Button | Phone | Keyboard |
|---|---|---|
| Move | D-pad, or tap a tile to walk there | Arrows / WASD |
| A: talk, use, choose | A | Z / Enter / Space |
| B: back, close | B | X / Esc |
| START: bag, notes, hint, marks, sound, leave | START | M |
| SELECT: show NPC names | SELECT | Shift |
Sound is off by default. Turn it on from the title screen or the START menu.
The bay is drawn on a canvas at 16 px per tile and scaled up in whole steps. All art is original and drawn in code (src/game/pixel/art.ts). Hands-on procedures open in a battle-style frame.
Pack lines that start with You: or a cast name (Nurse Wong: …) show that speaker in the text box. Lines with no prefix are narration.
/world is the overworld. The title screen's PLAY · CMC goes there.
The map is content/world/world.json, a text grid with a legend (scripts/make-world.mjs generated it; edit either). Tall-grass letters pick the deck: a ATLS, c ACLS/PALS, o O&G, x mixed. Decks are content/cards/<deck>.json: creatures, and cards with four options, the right one's index, why, and a source. Options are shuffled every time a card is shown. Cards you got wrong come back more often.
To add a station to a gym, put its packId in that gym's packs in world.json.
A perform option opens a bench. Simple benches (lift, cover, …) grant the option's marks when the gesture is done. The IO bench (perform: "io", src/game/io/) scores itself: it never blocks a mistake, grants only the marks earned at the bench, and saves each mistake to the session. The debrief lists them under PROCEDURE NOTES.
Each run gets a seed, so the randomised case (which leg is out, soft-tissue depth, marrow on aspiration, calf swelling) stays the same across reloads. The anatomy card and the leg are original drawings: src/game/io/art.tsx.
Copy content/packs/gym-1 to content/packs/gym-2. Change packId, then fill marks, actions, goldPath, and sequenceRules. Reload /gym. No engine change unless a new non-clinical field is required.
Doing an action that maps to a mark grants that mark immediately, even if the order is "wrong". The toast shows the examiner line (first clause if it is long) and the mark id. The strip keeps every earned id. The same id never toasts twice. Traps give a flavour line and score nothing. The clock is flavour: 00:00 does not end the station. Leave, the door handover, or an action with endStation goes to the debrief.
goldPath is hint order only. START → HINT shows the hint string of the first gold-path action whose marks are not all earned. Nothing is painted on the map. When every gold-path mark is in, the hint is "Handover / leave when you are ready."
sequenceRules run on the debrief against the action log. Missing steps are missed marks, not sequence fails. A bad order is Pass or Caution. It never blocks the badge.
Trolley and shelf actions are kind: "kit". Confirm puts grantsItems into the inventory. An action or option with requiresItems stays grey until those items are in hand. A nurse line can grant the same items, so you are not stuck if you ask for the trolley instead of walking to it.
Replace or add pack JSON only. Do not rewrite the engine unless the schema needs a new non-clinical field.