1
0

Black flare lamp

This commit is contained in:
Aiden
2026-05-26 17:06:43 +10:00
parent 99946170cf
commit de992c6087
2 changed files with 205 additions and 0 deletions

View File

@@ -148,6 +148,7 @@ These JSON scenarios are set up for the current bench runner and default to `384
.\.venv\Scripts\python.exe scripts\serial_scenario.py scenarios\shutter-0093-gate-ffff.json --parity E --log captures\shutter-0093-gate-ffff.txt --result-json captures\shutter-0093-gate-ffff-result.json .\.venv\Scripts\python.exe scripts\serial_scenario.py scenarios\shutter-0093-gate-ffff.json --parity E --log captures\shutter-0093-gate-ffff.txt --result-json captures\shutter-0093-gate-ffff-result.json
.\.venv\Scripts\python.exe scripts\serial_scenario.py scenarios\shutter-0093-bit-isolation.json --parity E --log captures\shutter-0093-bit-isolation.txt --result-json captures\shutter-0093-bit-isolation-result.json .\.venv\Scripts\python.exe scripts\serial_scenario.py scenarios\shutter-0093-bit-isolation.json --parity E --log captures\shutter-0093-bit-isolation.txt --result-json captures\shutter-0093-bit-isolation-result.json
.\.venv\Scripts\python.exe scripts\serial_scenario.py scenarios\shutter-0093-blackflare-auto-candidates.json --parity E --log captures\shutter-0093-blackflare-auto-candidates.txt --result-json captures\shutter-0093-blackflare-auto-candidates-result.json .\.venv\Scripts\python.exe scripts\serial_scenario.py scenarios\shutter-0093-blackflare-auto-candidates.json --parity E --log captures\shutter-0093-blackflare-auto-candidates.txt --result-json captures\shutter-0093-blackflare-auto-candidates-result.json
.\.venv\Scripts\python.exe scripts\serial_scenario.py scenarios\shutter-0093-blackflare-slow-marked.json --parity E --log captures\shutter-0093-blackflare-slow-marked.txt --result-json captures\shutter-0093-blackflare-slow-marked-result.json
``` ```
Run order: Run order:
@@ -159,6 +160,7 @@ Run order:
5. `shutter-0093-gate-ffff.json`: broader gate test if the targeted high-bit run is uneventful. 5. `shutter-0093-gate-ffff.json`: broader gate test if the targeted high-bit run is uneventful.
6. `shutter-0093-bit-isolation.json`: isolates the `0x0093` bits after bench evidence showed this selector also controls white-balance and black/flare lamps. 6. `shutter-0093-bit-isolation.json`: isolates the `0x0093` bits after bench evidence showed this selector also controls white-balance and black/flare lamps.
7. `shutter-0093-blackflare-auto-candidates.json`: uses the known `0x9020` black/flare-manual context and adds each remaining bit to hunt for the `0xFFFF` black/flare-AUTO effect. 7. `shutter-0093-blackflare-auto-candidates.json`: uses the known `0x9020` black/flare-manual context and adds each remaining bit to hunt for the `0xFFFF` black/flare-AUTO effect.
8. `shutter-0093-blackflare-slow-marked.json`: repeats the hunt without clear/OK resets between candidates, so white-balance should flicker less and black/flare AUTO transitions can be matched to candidate holds.
## Bench Observations 2026-05-26 ## Bench Observations 2026-05-26
@@ -170,6 +172,7 @@ Observed visible effects from the first adjacent-selector run set:
| `shutter-0093-gate-8000` | `E000[0x0093]` read back as `0x8000` | white-balance PRESET lamp on, black/flare MANUAL lamp on | `0x0093.15` is a live panel-status/lamp bit, not just a shutter gate | | `shutter-0093-gate-8000` | `E000[0x0093]` read back as `0x8000` | white-balance PRESET lamp on, black/flare MANUAL lamp on | `0x0093.15` is a live panel-status/lamp bit, not just a shutter gate |
| `shutter-0093-gate-ffff` | `E000[0x0093]` read back as `0xFFFF` | white-balance PRESET lamp on, black/flare AUTO lamp on | another `0x0093` bit overrides/selects black/flare AUTO when all bits are set | | `shutter-0093-gate-ffff` | `E000[0x0093]` read back as `0xFFFF` | white-balance PRESET lamp on, black/flare AUTO lamp on | another `0x0093` bit overrides/selects black/flare AUTO when all bits are set |
| `shutter-0093-bit-isolation` | stepped through `0x1000`, `0x0020`, `0x1020`, `0x8000`, `0x8020`, `0x9000`, `0x9020` | white-balance lamps swapped between MANUAL and PRESET; black/flare stayed MANUAL | bit 15 remains the prime white-balance PRESET candidate; black/flare AUTO is likely outside bits 15/12/5 | | `shutter-0093-bit-isolation` | stepped through `0x1000`, `0x0020`, `0x1020`, `0x8000`, `0x8020`, `0x9000`, `0x9020` | white-balance lamps swapped between MANUAL and PRESET; black/flare stayed MANUAL | bit 15 remains the prime white-balance PRESET candidate; black/flare AUTO is likely outside bits 15/12/5 |
| `shutter-0093-blackflare-auto-candidates` | stepped through `0x9020`, `0xFFFF`, then `0x9020` plus each remaining bit | black/flare swapped AUTO/MANUAL more slowly than white-balance MANUAL/PRESET | the clear/OK reset before each candidate likely caused extra white-balance flicker; use the slow-marked follow-up to map black/flare transitions to exact bits |
| `shutter-008f-evs-clear-control` | `0x008F` writes acknowledged as `0x0800`, `0x0000`, `0x0800` | SHUTTER swapped between EVS and OFF while iris AUTO lamp stayed on | `0x008F` is a packed shutter/display status word; clearing it does not simply mean "blank" | | `shutter-008f-evs-clear-control` | `0x008F` writes acknowledged as `0x0800`, `0x0000`, `0x0800` | SHUTTER swapped between EVS and OFF while iris AUTO lamp stayed on | `0x008F` is a packed shutter/display status word; clearing it does not simply mean "blank" |
| `shutter-008f-evs-timeout-control` | only `0x008F=0x0800` was sent after OK seed | EVS/iris AUTO, then `CONNECT:NOT ACT` | later blanking is timeout cleanup, not selector-clear evidence | | `shutter-008f-evs-timeout-control` | only `0x008F=0x0800` was sent after OK seed | EVS/iris AUTO, then `CONNECT:NOT ACT` | later blanking is timeout cleanup, not selector-clear evidence |

View File

@@ -0,0 +1,202 @@
{
"name": "shutter-0093-blackflare-slow-marked",
"notes": [
"Slow marked follow-up for selector 0x0093 black/flare AUTO hunting.",
"Each candidate is preceded by known 0x9020 context, which previously kept black/flare MANUAL. This avoids the clear/OK reset flicker that made white-balance swap quickly.",
"Record whether black/flare changes during the candidate hold. White-balance should be steadier because all candidates keep the 0x9020 base bits."
],
"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": "known_manual_context_9020",
"frame": "00 01 13 90 20 F8",
"listen": 1.20
},
{
"action": "send",
"label": "known_auto_reference_ffff",
"frame": "00 01 13 FF FF 48",
"listen": 1.80
},
{
"action": "send",
"label": "known_manual_context_9020_before_bit14",
"frame": "00 01 13 90 20 F8",
"listen": 1.20
},
{
"action": "send",
"label": "candidate_bit14_d020",
"frame": "00 01 13 D0 20 B8",
"listen": 1.80
},
{
"action": "send",
"label": "known_manual_context_9020_before_bit13",
"frame": "00 01 13 90 20 F8",
"listen": 1.20
},
{
"action": "send",
"label": "candidate_bit13_b020",
"frame": "00 01 13 B0 20 D8",
"listen": 1.80
},
{
"action": "send",
"label": "known_manual_context_9020_before_bit11",
"frame": "00 01 13 90 20 F8",
"listen": 1.20
},
{
"action": "send",
"label": "candidate_bit11_9820",
"frame": "00 01 13 98 20 F0",
"listen": 1.80
},
{
"action": "send",
"label": "known_manual_context_9020_before_bit10",
"frame": "00 01 13 90 20 F8",
"listen": 1.20
},
{
"action": "send",
"label": "candidate_bit10_9420",
"frame": "00 01 13 94 20 FC",
"listen": 1.80
},
{
"action": "send",
"label": "known_manual_context_9020_before_bit9",
"frame": "00 01 13 90 20 F8",
"listen": 1.20
},
{
"action": "send",
"label": "candidate_bit9_9220",
"frame": "00 01 13 92 20 FA",
"listen": 1.80
},
{
"action": "send",
"label": "known_manual_context_9020_before_bit8",
"frame": "00 01 13 90 20 F8",
"listen": 1.20
},
{
"action": "send",
"label": "candidate_bit8_9120",
"frame": "00 01 13 91 20 F9",
"listen": 1.80
},
{
"action": "send",
"label": "known_manual_context_9020_before_bit7",
"frame": "00 01 13 90 20 F8",
"listen": 1.20
},
{
"action": "send",
"label": "candidate_bit7_90a0",
"frame": "00 01 13 90 A0 78",
"listen": 1.80
},
{
"action": "send",
"label": "known_manual_context_9020_before_bit6",
"frame": "00 01 13 90 20 F8",
"listen": 1.20
},
{
"action": "send",
"label": "candidate_bit6_9060",
"frame": "00 01 13 90 60 B8",
"listen": 1.80
},
{
"action": "send",
"label": "known_manual_context_9020_before_bit4",
"frame": "00 01 13 90 20 F8",
"listen": 1.20
},
{
"action": "send",
"label": "candidate_bit4_9030",
"frame": "00 01 13 90 30 E8",
"listen": 1.80
},
{
"action": "send",
"label": "known_manual_context_9020_before_bit3",
"frame": "00 01 13 90 20 F8",
"listen": 1.20
},
{
"action": "send",
"label": "candidate_bit3_9028",
"frame": "00 01 13 90 28 F0",
"listen": 1.80
},
{
"action": "send",
"label": "known_manual_context_9020_before_bit2",
"frame": "00 01 13 90 20 F8",
"listen": 1.20
},
{
"action": "send",
"label": "candidate_bit2_9024",
"frame": "00 01 13 90 24 FC",
"listen": 1.80
},
{
"action": "send",
"label": "known_manual_context_9020_before_bit1",
"frame": "00 01 13 90 20 F8",
"listen": 1.20
},
{
"action": "send",
"label": "candidate_bit1_9022",
"frame": "00 01 13 90 22 FA",
"listen": 1.80
},
{
"action": "send",
"label": "known_manual_context_9020_before_bit0",
"frame": "00 01 13 90 20 F8",
"listen": 1.20
},
{
"action": "send",
"label": "candidate_bit0_9021",
"frame": "00 01 13 90 21 F9",
"listen": 1.80
},
{
"action": "listen",
"seconds": 0.75
}
]
}