Device status
| Device | β |
|---|---|
| Browser clients | β |
PING
Send a c2k OP_PING REQ to the Dongle and show the
RESP round-trip. Latency includes
PC β Cloudflare edge β field Dongle β back.
Dongle Wi-Fi status
Dongleμ΄ 5μ΄λ§λ€ pushνλ μν β μ΄λ μ°κ²°λΌμλμ§ μ격μμ νμΈ. WSS DOWN μ΄λ©΄ stale λ‘ νμ.
| Device ID | β |
| MAC | β |
| STA | β |
| Slot | β |
| SSID | β |
| RSSI | β |
| Channel | β |
| IP | β |
| Last update | β |
WSS throughput: β
Fleet (Dongle peer registry)
Dongle-local OP_LIST_PEERS; ESP-NOW ν΅μ
μμ΄λ λ±λ‘λ peer νμ. Watch/Scope/Flash νμ΄μ§μμ μ ν κ°λ₯.
| PID (hex) | Label | Alive |
|---|---|---|
| β | ||
Help / Quick Reference
μ 체 νλ¦
- Settings νμμ Relay URL + Device ID μ€μ ν Connect.
- Connect λλ©΄ Fleet Refresh λ‘ ESP-NOW peer λͺ©λ‘ κ°μ Έμ€κΈ°.
- Watch / Scope / Flash νμμ Fleet λͺ¨λ μ΅λ 5 κ° μ νν΄μ λ³λ ¬ μ¬μ©.
- Disconnect μ ν΄λ νμ΄μ§ μ΄λ μμ λ‘κ² κ°λ₯. WSS μ°κ²°μ λ겨λ μλ μ¬μ°κ²° (exponential backoff).
Watch νμ΄μ§ β λ³μ syntax
ν λͺ¨λ μΉ΄λμ textareaμ ν μ€ = ν λ³μ:
V_iout = 0x0000C000 # default u32 V_temp : i16 = 0x0000C100 V_vbus : f32 = 0x0000C200 # λΌμΈ μ£Όμ: # λλ //
μ§μ νμ
: u32 u16 i32 i16 f32. λ³μ list λ μλμΌλ‘ localStorage μ μ μ₯λ¨ (λΈλΌμ°μ μλ‘κ³ μΉ¨ ν 볡μ).
κ° ν: Label / Addr / Value / Trend (SVG sparkline) / Last poll. κ°μ type μ λ§κ² hex+decimal / signed / float μΌλ‘ νμ. μμ: fresh / stale / error.
Scope νμ΄μ§ β 4 μ±λ + Trigger
- μ±λ ν κΈ (CH1-CH4) : νμ/μ¨κΉ. Auto-scale Y λ 보μ΄λ μ±λλ§μΌλ‘ κ³μ°.
- samp/window : νμ μλμ° ν¬κΈ° (128 ~ 4096).
- Pause / Resume / Clear : per-module λλ μ 체 (νμ΄μ§ μλ¨ λ²νΌ).
- CSV λ²νΌ : νμ¬ window μ 4 μ±λ sample dump + ν΅κ³ ν€λ λ€μ΄λ‘λ.
- Trigger : μ±λ / edge (rising/falling/both) / level μ§μ . λ°μ μ νλ©΄ μ€μμ dashed line, level μμΉ horizontal line.
- Stats ν : CH1 min=... max=... pp=... mean=... rms=... (μ μ±λ).
Flash νμ΄μ§ β λ³λ ¬ mass-flash
- μ
λ‘λ:
.hex(Intel HEX) λλ.out(ELF β v0.8 λΆν° λΈλΌμ°μ λ΄λΆμμ SCI boot table λ‘ μ§μ λ³ν). COFF νμ.outλ§ μ¬μ hex2000.exeλ³ν νμ. - Fleet λͺ¨λ μ΅λ 5 κ° μ ν.
- Start parallel flash ν΄λ¦ -> κ° λͺ¨λ λ³λ ¬ μ§ν:
FLASH_BEGIN -> NΓFLASH_CHUNK -> FLASH_END(λ§μ§λ§μ ~30 s λΈλ‘νΉ, Module μΈ‘ SCI ROM bootloader μ€ν). - λͺ¨λλ³ μ§νλ₯ + μν (idle / active / done / error).
νμ¬ W6-a "raw blob" κ²½λ‘λ§ -- FlashLoader μ€ν ν erase/program (W6-b FlashLoader protocol via SCI_XFER) μ νμ task.
Dongle USB CDC diag λͺ λ Ή
νμ₯ λ°°ν¬ μ ν λ² USB μΌμ΄λΈ μ°κ²°ν΄μ μ€μ :
setssid <SSID> # legacy slot 0 setpw <PW> # legacy slot 0 addwifi <SSID> <PW> # multi-slot μΆκ° (μ§/νμ¬/μΉ΄ν...) delwifi <SSID> # μ¬λ‘― λΉμ listwifi # λͺ¨λ μ¬λ‘― + active νμ setrelay <wss://...> # relay base URL (id λ μλ append) setid <ID> # device_id λͺ μ (λΉ μΈμ -> MAC-derived λ‘ reset) settoken <TOKEN> # device μΈμ¦ ν ν° wifi # νμ¬ μν wificonnect # μλ STA μ¬μ°κ²° whoami # MAC + device_id + relay URL + Web UI μλ΄
λλ PC μͺ½ ν¬νΌ: python scripts/dev/dongle_provision.py -- PC μ νμ¬ Wi-Fi μλ κ°μ§ + addwifi μλ μ‘μ .
μλ €μ§ μ ν / νμ
- Cloudflare Access OAuth κ²μ΄νΈ (M4) λ―Έμ μ© -- URL μλ©΄ λꡬλ μ κ·Ό.
- Watch ν΄λ§: Dongle REQ slot single-flight λΌ 5 λͺ¨λ Γ 30 λ³μ = ~1-2 s/cycle μ λ νκ³.
- Scope: FFT / X-Y / Cursor / Reset Zoom 미ꡬν.
- Flash:
.outμ§μ μ§μ μ λ¨ (out_to_boot.py TS ν¬ν νμ). W6-b FlashLoader νμ protocol λ―Έμ§μ. - λͺ¨λ°μΌ λ°μν λ―Έν‘ -- λ°μ€ν¬ν κΆμ₯.
Log
Watch β multi-module variable polling
Fleet μμ λͺ¨λ μ΅λ 5κ°κΉμ§ μ νν΄μ λ³λ ¬ ν΄λ§. κ° λͺ¨λλ§λ€ λ³μ list λ°λ‘ μ μ. OP_READ_U32 / OP_READ_U16 μ¬μ©.
Fleet λͺ¨λ μ ν (μ΅λ 5)
SPI Scope β multi-module
Fleet μμ λͺ¨λ μ΅λ 5κ° μ ν. κ° λͺ¨λλ§λ€ 4μ±λ μ€μκ° νν, μ±λ ν κΈ / Pause / Clear / CSV export.
Fleet λͺ¨λ μ ν (μ΅λ 5)
Parallel Flash
Fleet μμ λͺ¨λ μ΅λ 5κ° μ ν ν κ°μ .out μ΄λ―Έμ§λ₯Ό λμμ flash. κ° λͺ¨λμ μ체 ESP-NOW chunk stream + SCI ROM bootloader sequence λ‘ μ§ν.