OpenCode
09372cb77f
docs: cold-start verified - minimal claim sufficient after full power cycle
...
Full system power-cycle test 2026-09-11: announce144 + self-constructed claim
(zero opaque blocks) -> AERE PASS on cold Butler, DMX gradient on fixtures.
No prelude needed (no 45s broadcast/bind/ident/EUCE/1947 token).
Protocol reverse engineering complete.
2026-09-11 16:25:21 +08:00
OpenCode
50b04eb0d8
merge: integrate morning session history (scripts/tools/docs) with current fully-decoded codebase
...
Conflict resolution: keep current (afternoon) versions for code/README/samples
- they contain the fully-cracked protocol + pure self-constructed show mode;
morning session's analysis scripts (scripts/session/*), DLL tools (tools/*)
and protocol docs (docs/enet_protocol.md) are merged in intact.
2026-09-11 15:31:10 +08:00
OpenCode
c555a2252f
feat: show mode claim frame now fully self-constructed (zero opaque blocks)
...
build_claim_frame(): 552B AECH claim from scratch - envelope + host IP/MAC +
AECH + zeroed opaque regions + nonce@0x88 + B12@0x8C. Verified on real Butler:
AERE PASS, 3 fixtures online. Show mode no longer needs claim_h112 template.
2026-09-11 15:03:09 +08:00
OpenCode
44ff080ae6
feat: decode remaining frame fields (claim/AERE/announce/discovery-resp/EUCE/events)
...
- claim 552B: full layout; 240B opaque blocks proven UNCHECKED by Butler
(CLAIM_ZERO=1 ablation: zeroed blocks -> AERE still PASS) -> claim can be
built from scratch with zeros
- AERE 552B: Butler IP/MAC/netmask, fixture UID@0x33, slow counter@0xB1/0xB5,
resp@0xC0; only resp+counter vary across captures
- announce 644B: session GUID, UTF-16BE show-file path, full timestamp
@0x239 (y/mo/d/h/mi/s/ms; live sample decodes to 22:52:50.992 matching SL
session), ephemeral port@0x25C, enable flags
- discovery-resp 217B: device name, serial blob, network block, config block
- EUCE 540B: 'EUCE' magic, version 5, username+computername+GUID, host MAC
- event_b: type=4 1084B RDM-uplink frame identified (RDM response @0x3C)
- analyze: new 'xor' subcommand with periodicity analysis
2026-09-11 14:49:39 +08:00
OpenCode
f6b1f104ef
docs: decode heartbeat/discovery-req fields; expand unresolved-items list
2026-09-11 14:07:29 +08:00
OpenCode
8938b15691
fix: dual-port DMX output in show mode; AERE claim verification; SHOW_DIAG mode
...
- Root cause of 'steady white': fixture on Butler port2, our data only went to port1
(port data regions are independent: port1 @0x3C, port2 @0x23C)
- show mode now mirrors pattern to both ports; SHOW_DIAG=1 gives 3s off/on blink test
- Claim now verifies AERE response and warns on failure
- Docs updated with port layout note; README updated
2026-09-11 13:53:21 +08:00
OpenCode
9be449fda8
feat: crack all DMX/RDM frame fields; show mode now fully self-constructed
...
- analyze subcommand: offline replay/template field variance, diff, counter analysis
- DMX header fully decoded: port mask @0x20, port lens u16LE=512 @0x34/0x36, counter +1/frame
- RDM request frame fully decoded: counter=0, 0x20=02, 0x2A=0xCC, msgLen=24+PDL,
checksum=0xCC+sum(0x3C..0x53+PDL) @0x53+PDL, pair copy rules
- Fix historical misreadings: RDM always starts @0x3C (not variable); no session-level
frame check exists - earlier failures were wrong template + checksum off-by-one
- show mode: build_dmx_frame/build_rdm_frame2/rdm_pair_copy, zero template dependency
- Decode 47B register response and 42B event frames; doc enet_protocol_current.md rewritten
2026-09-11 12:53:36 +08:00
OpenCode
9995335d74
feat: show mode for standalone 1-32 rainbow DMX + RDM status polling
...
- Merge show/hybrid paths: use dmx_a template for DMX payload and replay-extracted SL frame skeleton for RDM.
- HOSTDEMO_MODE=show runs indefinitely when secs=0; wave period slowed for smoother breathing.
- Update README with show mode usage.
2026-09-11 12:03:43 +08:00
tonycao
9580613ab2
fix: variable-offset theory falsified (fixed layout @0x3C/0x34/0x30 confirmed); single-frame verbatim rejected outside stream context 鈥?gating is stream-level
2026-09-11 10:08:03 +08:00
tonycao
b644bdae79
fix: variable-offset theory falsified (fixed layout @0x3C/0x34/0x30 confirmed); single-frame verbatim rejected outside stream context 鈥?gating is stream-level
2026-09-11 08:47:42 +08:00
tonycao
a4a3ed916f
docs: key inventory (3.7), session recap (hostdemo_recap), 11.7 key-sources table
2026-09-11 08:20:53 +08:00
tonycao
3056a6974c
docs: 11.7 final working recipe + session-level findings
2026-09-11 08:12:07 +08:00
tonycao
fcb20a7fa3
hostdemo: RDM discovery + DMX control on real Butler .1 — FULL WORKING (slfull recipe)
2026-09-11 08:12:06 +08:00
tonycao
a98930aa71
docs+scripts: enet_protocol.md, verification plan, PS verify suite, session analysis scripts, DLL tools, README
2026-09-11 01:08:47 +08:00
tonycao
e248a979e8
enet-validator: e:net protocol reverse + host-side emulation (AECH claim / encrypted DMX / RDM discovery, hostdemo)
2026-09-11 01:02:39 +08:00