1
0

isolating lamp behaviour

This commit is contained in:
Aiden
2026-05-26 16:59:09 +10:00
parent 11b6a2dc3b
commit fec48518c1
8 changed files with 657 additions and 21 deletions

View File

@@ -0,0 +1,48 @@
{
"name": "shutter-008f-evs-clear-control",
"notes": [
"Recover to CONNECT OK, force the likely EVS display via selector 0x008F, then clear selector 0x008F.",
"CONNECT NOT ACT globally clears the panel, so this scenario uses short observation windows to avoid mistaking timeout cleanup for selector clearing.",
"Record the panel within about one second of each write: EVS set, clear, and EVS set again."
],
"steps": [
{
"action": "power_cycle",
"off_seconds": 1.5
},
{
"action": "wait_ready",
"heartbeats": 2,
"timeout": 10.0,
"require": true
},
{
"action": "drain",
"seconds": 0.25
},
{
"action": "send",
"label": "selector_zero_connect_ok_seed",
"frame": "00 00 00 80 00 DA",
"listen": 0.25
},
{
"action": "send",
"label": "e000_008f_likely_evs",
"frame": "00 01 0F 08 00 5C",
"listen": 0.85
},
{
"action": "send",
"label": "e000_008f_clear",
"frame": "00 01 0F 00 00 54",
"listen": 0.85
},
{
"action": "send",
"label": "e000_008f_likely_evs_again",
"frame": "00 01 0F 08 00 5C",
"listen": 0.85
}
]
}

View File

@@ -0,0 +1,36 @@
{
"name": "shutter-008f-evs-timeout-control",
"notes": [
"Recover to CONNECT OK, force likely EVS via selector 0x008F, then deliberately do not clear it.",
"This is the negative control for the adjacent-selector methodology: if the panel later blanks or falls to CONNECT NOT ACT, that is timeout cleanup, not proof that 0x008F clear worked.",
"Record the time from EVS visibility to blank/CONNECT NOT ACT."
],
"steps": [
{
"action": "power_cycle",
"off_seconds": 1.5
},
{
"action": "wait_ready",
"heartbeats": 2,
"timeout": 10.0,
"require": true
},
{
"action": "drain",
"seconds": 0.25
},
{
"action": "send",
"label": "selector_zero_connect_ok_seed",
"frame": "00 00 00 80 00 DA",
"listen": 0.25
},
{
"action": "send",
"label": "e000_008f_likely_evs",
"frame": "00 01 0F 08 00 5C",
"listen": 4.0
}
]
}

View File

@@ -0,0 +1,236 @@
{
"name": "shutter-0093-bit-isolation",
"notes": [
"Recover to CONNECT OK, then isolate likely selector 0x0093 lamp/display bits with a clear and OK seed before each candidate.",
"Record white-balance PRESET, black/flare MANUAL, black/flare AUTO, shutter display, iris AUTO, and LCD state during each candidate window.",
"This follows the 0x0093=0x8000 and 0x0093=0xFFFF bench observations that affected lamps beyond the shutter cluster."
],
"steps": [
{
"action": "power_cycle",
"off_seconds": 1.5
},
{
"action": "wait_ready",
"heartbeats": 2,
"timeout": 10.0,
"require": true
},
{
"action": "drain",
"seconds": 0.25
},
{
"action": "send",
"label": "selector_zero_connect_ok_seed",
"frame": "00 00 00 80 00 DA",
"listen": 0.25
},
{
"action": "repeat",
"count": 1,
"steps": [
{
"action": "send",
"label": "e000_0093_clear_before_bit12",
"frame": "00 01 13 00 00 48",
"listen": 0.20
},
{
"action": "send",
"label": "selector_zero_ok_before_bit12",
"frame": "00 00 00 80 00 DA",
"listen": 0.10
},
{
"action": "send",
"label": "e000_0093_bit12_rom_gate",
"frame": "00 01 13 10 00 58",
"listen": 0.85
},
{
"action": "table_sweep",
"selectors": [
"0x093"
],
"gap": 0.20,
"ack_on": {
"enabled": false
}
},
{
"action": "send",
"label": "e000_0093_clear_before_bit5",
"frame": "00 01 13 00 00 48",
"listen": 0.20
},
{
"action": "send",
"label": "selector_zero_ok_before_bit5",
"frame": "00 00 00 80 00 DA",
"listen": 0.10
},
{
"action": "send",
"label": "e000_0093_bit5_rom_gate",
"frame": "00 01 13 00 20 68",
"listen": 0.85
},
{
"action": "table_sweep",
"selectors": [
"0x093"
],
"gap": 0.20,
"ack_on": {
"enabled": false
}
},
{
"action": "send",
"label": "e000_0093_clear_before_bits12_5",
"frame": "00 01 13 00 00 48",
"listen": 0.20
},
{
"action": "send",
"label": "selector_zero_ok_before_bits12_5",
"frame": "00 00 00 80 00 DA",
"listen": 0.10
},
{
"action": "send",
"label": "e000_0093_bits12_5",
"frame": "00 01 13 10 20 78",
"listen": 0.85
},
{
"action": "table_sweep",
"selectors": [
"0x093"
],
"gap": 0.20,
"ack_on": {
"enabled": false
}
},
{
"action": "send",
"label": "e000_0093_clear_before_bit15",
"frame": "00 01 13 00 00 48",
"listen": 0.20
},
{
"action": "send",
"label": "selector_zero_ok_before_bit15",
"frame": "00 00 00 80 00 DA",
"listen": 0.10
},
{
"action": "send",
"label": "e000_0093_bit15_seen_wb_preset_blackflare_manual",
"frame": "00 01 13 80 00 C8",
"listen": 0.85
},
{
"action": "table_sweep",
"selectors": [
"0x093"
],
"gap": 0.20,
"ack_on": {
"enabled": false
}
},
{
"action": "send",
"label": "e000_0093_clear_before_bits15_5",
"frame": "00 01 13 00 00 48",
"listen": 0.20
},
{
"action": "send",
"label": "selector_zero_ok_before_bits15_5",
"frame": "00 00 00 80 00 DA",
"listen": 0.10
},
{
"action": "send",
"label": "e000_0093_bits15_5",
"frame": "00 01 13 80 20 E8",
"listen": 0.85
},
{
"action": "table_sweep",
"selectors": [
"0x093"
],
"gap": 0.20,
"ack_on": {
"enabled": false
}
},
{
"action": "send",
"label": "e000_0093_clear_before_bits15_12",
"frame": "00 01 13 00 00 48",
"listen": 0.20
},
{
"action": "send",
"label": "selector_zero_ok_before_bits15_12",
"frame": "00 00 00 80 00 DA",
"listen": 0.10
},
{
"action": "send",
"label": "e000_0093_bits15_12",
"frame": "00 01 13 90 00 D8",
"listen": 0.85
},
{
"action": "table_sweep",
"selectors": [
"0x093"
],
"gap": 0.20,
"ack_on": {
"enabled": false
}
},
{
"action": "send",
"label": "e000_0093_clear_before_bits15_12_5",
"frame": "00 01 13 00 00 48",
"listen": 0.20
},
{
"action": "send",
"label": "selector_zero_ok_before_bits15_12_5",
"frame": "00 00 00 80 00 DA",
"listen": 0.10
},
{
"action": "send",
"label": "e000_0093_bits15_12_5",
"frame": "00 01 13 90 20 F8",
"listen": 0.85
},
{
"action": "table_sweep",
"selectors": [
"0x093"
],
"gap": 0.20,
"ack_on": {
"enabled": false
}
}
]
},
{
"action": "listen",
"seconds": 0.75
}
]
}

View File

@@ -0,0 +1,87 @@
{
"name": "shutter-0093-gate-8000",
"notes": [
"Recover to CONNECT OK, read the shutter cluster, set primary selector 0x0093 to 0x8000, then read the cluster again.",
"ROM trace shows E000[0x0093] gates adjacent shutter/clear-scan value lanes, but the exact bit meaning is not bench-confirmed.",
"CONNECT NOT ACT can clear the panel, so a fresh selector-zero OK seed is sent immediately before the 0x0093 write.",
"Record visual changes during the short post-write window, then use the second sweep for table evidence."
],
"steps": [
{
"action": "power_cycle",
"off_seconds": 1.5
},
{
"action": "wait_ready",
"heartbeats": 2,
"timeout": 10.0,
"require": true
},
{
"action": "drain",
"seconds": 0.25
},
{
"action": "send",
"label": "selector_zero_connect_ok_seed",
"frame": "00 00 00 80 00 DA",
"listen": 0.25
},
{
"action": "table_sweep",
"selectors": [
"0x08F",
"0x093",
"0x0A3",
"0x0A4",
"0x0A5",
"0x0D8",
"0x080",
"0x0D9",
"0x0A6",
"0x0DA",
"0x081"
],
"gap": 0.10,
"ack_on": {
"enabled": false
}
},
{
"action": "send",
"label": "selector_zero_connect_ok_seed_before_gate",
"frame": "00 00 00 80 00 DA",
"listen": 0.15
},
{
"action": "send",
"label": "e000_0093_gate_high_bit",
"frame": "00 01 13 80 00 C8",
"listen": 0.85
},
{
"action": "table_sweep",
"selectors": [
"0x08F",
"0x093",
"0x0A3",
"0x0A4",
"0x0A5",
"0x0D8",
"0x080",
"0x0D9",
"0x0A6",
"0x0DA",
"0x081"
],
"gap": 0.12,
"ack_on": {
"enabled": false
}
},
{
"action": "listen",
"seconds": 0.75
}
]
}

View File

@@ -0,0 +1,87 @@
{
"name": "shutter-0093-gate-ffff",
"notes": [
"Recover to CONNECT OK, read the shutter cluster, set primary selector 0x0093 to 0xFFFF, then read the cluster again.",
"This enables both ROM-observed gate bits 12 and 5, plus unknown bits, so run after shutter-0093-gate-8000.",
"CONNECT NOT ACT can clear the panel, so a fresh selector-zero OK seed is sent immediately before the 0x0093 write.",
"Record visual changes during the short post-write window, then use the second sweep for table evidence."
],
"steps": [
{
"action": "power_cycle",
"off_seconds": 1.5
},
{
"action": "wait_ready",
"heartbeats": 2,
"timeout": 10.0,
"require": true
},
{
"action": "drain",
"seconds": 0.25
},
{
"action": "send",
"label": "selector_zero_connect_ok_seed",
"frame": "00 00 00 80 00 DA",
"listen": 0.25
},
{
"action": "table_sweep",
"selectors": [
"0x08F",
"0x093",
"0x0A3",
"0x0A4",
"0x0A5",
"0x0D8",
"0x080",
"0x0D9",
"0x0A6",
"0x0DA",
"0x081"
],
"gap": 0.10,
"ack_on": {
"enabled": false
}
},
{
"action": "send",
"label": "selector_zero_connect_ok_seed_before_gate",
"frame": "00 00 00 80 00 DA",
"listen": 0.15
},
{
"action": "send",
"label": "e000_0093_all_bits",
"frame": "00 01 13 FF FF 48",
"listen": 0.85
},
{
"action": "table_sweep",
"selectors": [
"0x08F",
"0x093",
"0x0A3",
"0x0A4",
"0x0A5",
"0x0D8",
"0x080",
"0x0D9",
"0x0A6",
"0x0DA",
"0x081"
],
"gap": 0.12,
"ack_on": {
"enabled": false
}
},
{
"action": "listen",
"seconds": 0.75
}
]
}

View File

@@ -0,0 +1,55 @@
{
"name": "shutter-adjacent-readback",
"notes": [
"Recover to CONNECT OK, then read the currently known shutter/clear-scan selector cluster.",
"This is read-only after the selector-zero CONNECT seed and should be the first adjacent-selector bench run.",
"CONNECT NOT ACT can clear the panel during/after the sweep, so treat visual state at the end as timeout-contaminated.",
"Use this primarily for table readback rows and non-heartbeat frames, not for proving display clearing."
],
"steps": [
{
"action": "power_cycle",
"off_seconds": 1.5
},
{
"action": "wait_ready",
"heartbeats": 2,
"timeout": 10.0,
"require": true
},
{
"action": "drain",
"seconds": 0.25
},
{
"action": "send",
"label": "selector_zero_connect_ok_seed",
"frame": "00 00 00 80 00 DA",
"listen": 0.25
},
{
"action": "table_sweep",
"selectors": [
"0x08F",
"0x093",
"0x0A3",
"0x0A4",
"0x0A5",
"0x0D8",
"0x080",
"0x0D9",
"0x0A6",
"0x0DA",
"0x081"
],
"gap": 0.12,
"ack_on": {
"enabled": false
}
},
{
"action": "listen",
"seconds": 0.75
}
]
}