Action 6 video, aperture and exposure
Physical Mimo survey on 2026-09-21, camera UI firmware V01.02.0521, Mimo 2.12.0. This follows the startup findings and qualifies a subset of the official capability reference. No OpenPocketCine device replay or production implementation is claimed.
Evidence scope
Section titled “Evidence scope”The evidence consists of six closed network takes and the corresponding private event log/screenshots. Frame numbers restart in each take; references below use these aliases. Times are UTC on 2026-09-21.
| Alias | Closed capture filename | SHA-256 |
|---|---|---|
| T02 | 01-survey_00002_20260921105340.pcapng |
f7a9898865a8c23f3bff4c610a345f160b8bdd6d56d089c1c65f5a9dd7b46462 |
| T03 | 01-survey_00003_20260921105840.pcapng |
94388db2afaedcf4977c15f57eab869b92d14d2d891e33c2fb0d84c004bd486d |
| T04 | 01-survey_00004_20260921110341.pcapng |
bf635a170426387c5321d1ca7e51c27f591ed5a1097fc68c2a5278c58a98398d |
| T05 | 01-survey_00005_20260921110841.pcapng |
c691dd864168b0d3a3fc2726a6047430e74611776fa7cd12bb5e09f4d635bb03 |
| T06 | 01-survey_00006_20260921111341.pcapng |
cd3189b967fc5ab46f4c16af1961092dce9946dbad297e153c00f440c913956b |
| T07 | 01-survey_00007_20260921111841.pcapng |
fd6a35dde75ac3e7fb3115ec0b0ae47dd275db90cb02f0bb70624815691909fb |
Copied traces, 127,432 CRC-valid DUML frames in T02–T04 and 125,784 in
T05–T07, exact request/reply bodies,
subscription changes, media, and reproduction scripts are retained in
captures/action6-20260921/analysis/settings-survey/, outside Git. The local
analyzer supports a separate output directory and excludes ICMP quotations.
Request/reply matching includes transport endpoints, DUML sequence, command,
reversed sender/receiver, and forward time. Retries remain one logical change.
The RVI capture batches packets. Sub-millisecond differences within a batch
are not actual control latency. Each successful setting below has a status
00 reply and matching camera state, unless a limitation is explicitly stated.
Screenshot labels are identifiers in the private event log, not additional
independent executions.
T05–T07 analysis is isolated in the private controls-05-07/ subdirectory,
including its own event-log snapshot, decoded frames, screenshot OCR,
exposure correlations, and trace hashes. The supplement below covers those
takes; earlier sections retain their original T02–T04 scope. No active trace
was analyzed. Raw screenshots and media remain private.
Format command and frame-orientation policy
Section titled “Format command and frame-orientation policy”Format SET is 02/18, sender 0x02, receiver 0x01, flags 0x40.
Its observed five-byte body is:
resolutionID, frameRateID, 00, 00, 00cam_video_param_v2 readback begins with the same resolution and fps bytes.
Other readback bytes are not copied into the five-byte SET. The frame-rate
IDs match existing
VideoFrameRate values:
| UI fps | 24 | 25 | 30 | 48 | 50 | 60 | 100 | 120 | 200 | 240 |
|---|---|---|---|---|---|---|---|---|---|---|
| ID, hex | 01 | 02 | 03 | 04 | 05 | 06 | 0A | 07 | 13 | 08 |
The separate Frame policy uses 02/8E, parameter 0x0046, one-byte
value. This changes available formats and can reset the current format:
| UI action | Value | Request / reply | State evidence |
|---|---|---|---|
| Lock to landscape | 02 |
T02 9941 / 10021, 08:54:21.346777 | cam_capture_aspect_type becomes 2 at 10050; format becomes 1080p/30 at 10107. |
| Auto orientation | 01 |
T02 53480 / 53554, 08:57:31.228356 | Aspect policy becomes 1 at 53564; format resets from 4K/24 to 1080p/30 at 53558. |
The observed parameter SET envelope is
01, 01, parameterID_LE16, valueLength, valueBytes.
The initial Custom policy is state ID 4 in the startup take, but selecting
Custom or Portrait is not exercised here. Policy is distinct from the
resolution’s encoded aspect ratio.
At T02 9949, the landscape capability table contains 26 format pairs: 1080p at all ten listed rates, and 2.7K/4K at 24 through 120fps excluding 200/240. At 53483, Auto orientation expands the table to 45 pairs: those 26, plus 8K at 24/25/30 and 2.7K 4:3/4K 4:3 at 24/25/30/48/50/60/100/120. The 2.7K 4:3 resolution ID is 0x5F in that capability table; it is not successfully selected in these takes.
The UI agrees: screenshot 019 shows the three landscape resolutions; 026 shows six choices under Auto orientation. Do not gate 8K or 4:3 using only the camera model while ignoring Frame policy.
Successful format selections
Section titled “Successful format selections”There are 30 distinct resolution/fps pairs with captured SET, successful reply, and corresponding readback. All frames in this table belong to T02. The resolution/fps column contains hex IDs, not dimensions.
| Resolution | UI fps | Resolution/fps IDs | SET frame | Reply frame | Readback frame | SET UTC |
|---|---|---|---|---|---|---|
| 1080p | 60 | 0A/06 |
14732 | 14815 | 14859 | 08:54:43.555701 |
| 1080p | 200 | 0A/13 |
21401 | 21473 | 21536 | 08:55:12.835548 |
| 1080p | 240 | 0A/08 |
21477 | 21575 | 21633 | 08:55:12.837634 |
| 1080p | 120 | 0A/07 |
27968 | 28053 | 28072 | 08:55:39.118400 |
| 1080p | 100 | 0A/0A |
28477 | 28743/28760 | 28812 | 08:55:41.140729 |
| 1080p | 50 | 0A/05 |
29566 | 29868/29873 | 29967 | 08:55:46.181107 |
| 1080p | 48 | 0A/04 |
30064 | 30141 | 30154 | 08:55:48.198434 |
| 1080p | 30 | 0A/03 |
30505 | 30617 | 30694 | 08:55:50.222656 |
| 1080p | 25 | 0A/02 |
31053 | 31128 | 31173 | 08:55:52.247460 |
| 1080p | 24 | 0A/01 |
31530 | 31604 | 31632 | 08:55:54.268975 |
| 2.7K | 24 | 2D/01 |
37106 | 37182 | 37217 | 08:56:20.528093 |
| 2.7K | 25 | 2D/02 |
39581 | 39669 | 39737 | 08:56:31.634325 |
| 2.7K | 30 | 2D/03 |
40079 | 40159 | 40202 | 08:56:33.651319 |
| 2.7K | 48 | 2D/04 |
40574 | 40647 | 40666 | 08:56:35.668322 |
| 2.7K | 50 | 2D/05 |
41057 | 41135 | 41218 | 08:56:37.685473 |
| 2.7K | 60 | 2D/06 |
41541 | 41618 | 41659 | 08:56:39.709197 |
| 2.7K | 100 | 2D/0A |
42009 | 42091 | 42117 | 08:56:41.728863 |
| 2.7K | 120 | 2D/07 |
42514 | 42603 | 42689 | 08:56:44.753412 |
| 4K | 120 | 10/07 |
45191 | 45263 | 45347 | 08:56:54.858601 |
| 4K | 100 | 10/0A |
50083 | 50167 | 50259 | 08:57:16.084383 |
| 4K | 60 | 10/06 |
50576 | 50663 | 50719 | 08:57:18.106311 |
| 4K | 50 | 10/05 |
51077 | 51159 | 51205 | 08:57:20.130173 |
| 4K | 48 | 10/04 |
51554 | 51644 | 51665 | 08:57:22.151383 |
| 4K | 30 | 10/03 |
52049 | 52119 | 52193 | 08:57:25.168912 |
| 4K | 25 | 10/02 |
52535 | 52608 | 52645 | 08:57:27.186225 |
| 4K | 24 | 10/01 |
53022 | 53093 | 53111 | 08:57:29.211834 |
| 8K | 30 | 37/03 |
56342 | 56419 | 56470 | 08:57:44.360274 |
| 8K | 25 | 37/02 |
60198 | 60285 | 60380 | 08:57:57.486216 |
| 8K | 24 | 37/01 |
60731 | 60815 | 60882 | 08:57:59.510003 |
| 4K 4:3 | 24 | 67/01 |
61202 | 61278 | 61359 | 08:58:01.526628 |
The 1080p/100 request repeats at 28613 and the 1080p/50 request at 29691. Each pair has two status-zero replies and one resulting state; reply-to-individual-attempt attribution is ambiguous. They are successful logical changes, not four independent tests. The complete set contains 34 format writes, including these retries and repeated settings.
The screenshot 030 step 01, 08:58:23, visually highlights 4K 4:3/25.
However, no corresponding 02/18 write or 25fps camera readback appears.
Screenshot 030 step 02 displays Device Disconnected. Consequently,
the entire attempted 4:3 rate sweep is not qualified, including that first
visually selected 25fps item. The later recovered state and the original
recording remain 4K 4:3/24. A displayed pending selection is not an accepted
camera change. Screenshot 031 likewise does not qualify 2.7K 4:3.
Capability changes during the sweep
Section titled “Capability changes during the sweep”The camera refreshes related tables when formats change. Examples establish that these lists must be consumed dynamically:
- At T02 21411, entering 1080p/200 reduces stabilization candidate IDs
from
0,1,3,4,2to0,1,3and changes the zoom table. At 28959, returning to 1080p/60 restores the broader candidates and zoom table. - At 42015, 2.7K/100 narrows field-of-view candidates from
2,1,0,5to2,1,5, and narrows stabilization/zoom as above. At 50579, 4K/60 restores those broader tables. - At 56347/56350, 8K/30 advertises the narrower field-of-view and stabilization lists. These takes do not assign UI labels to every ID.
- Shutter capabilities change with fps. Do not reuse the starting 25fps shutter list for 100/120/200/240fps.
Aperture control and mechanical readback
Section titled “Aperture control and mechanical readback”Aperture strategy is 02/8E parameter 0x0044, with a one-byte value,
using the same sender/receiver and SET envelope as Frame policy. Screenshots
040–045 identify three choices in Auto exposure; all three have successful
commands and readback:
| UI strategy | Value | SET / reply | UTC | Strategy and range readback |
|---|---|---|---|---|
| Fixed f/2.8 | 02 |
T03 63705 / 63712 | 09:03:15.361450 | T03 63754: strategy 2, range 280–280. |
| Starburst f/4.0 | 03 |
T03 66763 / 66767 | 09:03:26.474935 | T03 66774: strategy 3, range 400–400. |
| Auto | 04 |
T04 181 / 187 | 09:03:41.630316 | T04 223: strategy 4, range 200–400. |
Strategy state is cam_aperture_ctrl_strategy: its observed four-byte value
begins with version 1 and has the strategy at offset 3. Range state is
cam_auto_aperture_range: version 1 followed by two reserved bytes, then
little-endian 16-bit minimum and maximum in hundredths of an f-number.
Automatic range SET is 02/8E parameter 0x004D, a four-byte value:
minimum_LE16, maximum_LE16, in the same hundredths units. Screenshot
050 exposes all five choices; 052 records each selection. All replies
below are status zero, and all state pairs match the requested pair.
| UI range | Integer pair | SET / reply, T04 | Readback, T04 | UTC |
|---|---|---|---|---|
| f/2.2–f/4 | 220, 400 | 9066 / 9069 | 9099 | 09:04:21.976517 |
| f/2.4–f/4 | 240, 400 | 9945 / 9948 | 9995 | 09:04:27.010543 |
| f/2.6–f/4 | 260, 400 | 10859 / 10861 | 10874 | 09:04:31.040927 |
| f/2.8–f/4 | 280, 400 | 12630 / 12636 | 12670 | 09:04:35.081334 |
| f/2–f/4, restored | 200, 400 | 13539 / 13542 | 13566 | 09:04:39.114828 |
The current mechanical aperture is supported by cam_expo_param offset 13,
u16 little-endian, divided by 100. Fixed f/2.8 settles at value 280 in
T03 63989. After selecting Starburst, values progress through intermediate
positions and reach 400 at 67560, 09:03:30.512968. Screenshot 035
shows F2.9 while a nearby push at 49730, 09:02:22.834183, contains 290.
Screenshot 063 shows F4.0 during the later 400-valued state.
Distinguish requested strategy/range from physical aperture telemetry: mechanical values transition after a strategy change. The startup’s nine scalar capability candidates do not enumerate all observed intermediate positions, and do not prove nine manually selectable controls.
Manual exposure, ISO Auto, and limits
Section titled “Manual exposure, ISO Auto, and limits”Manual exposure selection uses 02/1E body 04 00, T03 46864 at
09:02:10.719980, reply 46874 status zero. Camera state reports exposure
mode 4 and ISO index 3 (ISO 100), with remembered shutter 1/100. Entering M
also changes aperture strategy to 1 at 46906 and aperture range to
260–260 at 46904. Its capability table changes to a single 260–260
range at 46867. Strategy 1 is therefore a real contextual state. The
operator’s later screenshot 127 reports a Fixed F2.6 manual-aperture
choice, consistent with this state. Its explicit SET is qualified in the
T07 supplement below.
The next interaction, screenshot 035, sends 02/2A body 00 to
select ISO Auto, at T03 49538, 09:02:21.827927; reply 49542 is zero.
At 49612, cam_expo_param retains exposure mode 4, changes ISO index
to 0, and retains shutter 1/100. The metered ISO then varies. The UI
simultaneously shows M, ISO Auto, and ISO MAX 25600. The event’s
descriptive name mentions shutter, but this interaction sends an ISO command;
it does not provide a captured shutter SET.
Auto exposure restore uses 02/1E body 01 00, T03 53398 at
09:02:36.985387, reply 53410 zero. At 53482, aperture strategy returns
to 4 and its range to 200–400. These automatic changes mean exposure
mode, iris policy, ISO mode, and current metering need separate state fields.
Two version-1 capability structures have a logical count shorter than the allocated trailing bytes in restricted modes:
| Context | camcap_iso logical entries |
camcap_iso_auto_max logical entries |
Evidence |
|---|---|---|---|
| Normal colour, ordinary video | Auto, 100…25600 | 800,1600,3200,6400,12800,25600 | T02 9945; later UI screenshot 035. |
| 8K | Auto, 100…12800 | 800,1600,3200,6400,12800 | T02 56357; counts decrease without shortening the allocated bodies. |
| Return to 4K 4:3 | Auto, 100…25600 | 800,1600,3200,6400,12800,25600 | T02 61205. |
| D-Log M | Auto, 100…12800 | 800,1600,3200,6400,12800 | T04 22205 / 22209. |
For the ISO table, use its field-specific count at value offset 4. For the
Auto ISO ceiling table, count is at offset 3. Ignore bytes beyond the logical
list even when they resemble valid enum values. The D-Log M limit is also
confirmed by 02/8E parameter 0x000F GET readback: 09 before the
change (T03 43958, 09:02:01) becomes 08 at T04 22297,
09:05:20.370728. Those mean ceilings 25600 and 12800, respectively; they are
not the ordinary ISO-index enum.
The existing version-1 no-Auto shortcut in
CamCapIsoAutoMax cannot be
applied to Action 6. Manual exposure is also not a reason to suppress Auto ISO.
Colour selection and recording
Section titled “Colour selection and recording”Screenshot 058 shows Normal 10bit selected and DLog-M 10bit as the
other menu choice. Normal state’s colour ID is 0x3F at offset 2 of
cam_image_effect. Selecting D-Log M sends 02/42 body 3D, T04
22202 at 09:05:19.366641, with successful reply 22289. Readback
changes that field to 0x3D at 22317, and screenshot 059 confirms
the label. A reverse Normal SET is not exercised in these takes.
Recording uses 02/02 with one-byte body 01 for start and 00 for
stop:
| Action | SET / reply, T04 | UTC | State evidence |
|---|---|---|---|
| Start | 24781 / 24857 | 09:05:31.472065 | cam_status enters changing recording states at 24874/24925; cam_record_time increments. |
| Stop | 27504 / 27509 | 09:05:44.585200 | Stop/finalization states continue before idle at 28035; time resets at 28028. |
The stop acknowledgement precedes completed finalization. Do not equate its arrival with an immediately stable idle state or finished media file. The saved file’s duration is determined from the file, not subtraction of batched request timestamps.
Media retained and verified
Section titled “Media retained and verified”At T04 33915, 09:06:14.536455, playback requests the new MP4 through the
camera’s HTTP /v2 endpoint with storage=1 and a DCIM/... path.
Byte-range responses at 33920, 33932, and 34285 provide the start and intact
tail/container metadata of a 55,300,120-byte original. Playback also
downloads the corresponding 6,895,915-byte .lrf proxy through ranges.
The final proxy responses at 39557/40740 complete all byte positions.
All overlapping captured ranges agree.
The full original download begins at T04 60773, 09:07:55.280308. Its
response at 60775 declares HTTP 200 and the same 55,300,120-byte length.
However, the captured TCP sequence coverage has 21 internal holes and a
missing tail. Combining that transfer with the earlier intact metadata ranges
recovers 36,115,749 original bytes, leaving 19,184,371 unknown bytes.
The private INCOMPLETE-original-sparse.mp4 is explicitly marked incomplete;
zero-filled gaps are not received camera data. Its SHA identifies that local
analysis artifact, not the camera original.
The complete proxy is retained as complete-proxy.lrf and decodes through
FFmpeg without errors. Its SHA-256 is:
c640dc9a18246bb8065707038c93433f5b58c1a29998b9ecb08901878d54b5c4The complete original was subsequently retrieved over read-only USB media
AFC from the iPhone’s exported media. Mimo’s corresponding cache directory
was empty. Only the file matching the exact expected size and captured prefix
was copied; its source path and metadata remain in the private provenance
record. The retained file is USB-original-DLogM-4K43-24.mp4.
All 36,115,749 original bytes recovered from passive HTTP match the USB copy at their exact offsets. A full FFmpeg decode of its primary video and audio completes with 275 video frames, no dropped/duplicated frames, and no reported decode errors. SHA-256 of the complete original:
ca0a9f3cafb3e4e7c662aa1f21c5733690e0e0b4aeec00a52328669cb192b991The complete original and complete proxy establish:
| Property | Complete original MP4 | Complete playback proxy |
|---|---|---|
| Video | HEVC Main 10, hvc1, 10-bit 4:2:0 |
AVC High, avc1, 8-bit 4:2:0 |
| Dimensions | 3840 × 2880, 4:3 | 960 × 720, 4:3 |
| Actual recorded frame rate | 24000/1001, approximately 23.976fps | Same |
| UI frame-rate label | 24 | Same recording |
| Frames / video duration | 275 / 11.469792 seconds | Same |
| Audio | AAC LC, 48kHz stereo, approximately 317kb/s | Same metadata |
| Video average bitrate | Approximately 36.22Mb/s | Approximately 4.376Mb/s |
| Colour metadata | Limited range; BT.709 primaries, transfer, matrix | Same |
| Additional tracks | djmd, dbgi, timecode, attached JPEG |
djmd, timecode, attached JPEG |
The UI and command prove D-Log M selection, while generic container tags say BT.709. Those tags alone cannot select a display transform or disprove log encoding. A 10-bit original also does not imply a 10-bit live feed or proxy. Only this particular original is qualified; the other 29 selected format pairs were not individually recorded for file inspection in these takes.
Supplement: camera controls in T05–T07
Section titled “Supplement: camera controls in T05–T07”The recovered camera remains Video, Auto frame policy, 4K 4:3/24,
D-Log M 10bit through this supplement. T05 32 reports format bytes
67 01 and colour 3D; no format or colour SET occurs in T05–T07. Exposure
changes from Auto to Manual later in T07. Restrictions below apply to that
context, not every Action 6 mode.
All successful SETs in this supplement are sender 0x02 → receiver 0x01,
flags 0x40. Their camera replies reverse those endpoints and use flags
0xC0, with status 00. Acknowledgements are correlated by command,
sequence, endpoint, and time. Subscription state arrives separately through
00/99; the following state tables cite its decoded named values. Offsets
are zero-based. Confidence is high where UI, SET, reply, and readback agree;
exceptions are explicit.
Field of view and stabilization
Section titled “Field of view and stabilization”Field of view uses 02/8E, parameter 0x0009, one-byte value.
Stabilization uses parameter 0x0008 with the same envelope:
01 01 parameterID_LE16 01 value.
| Control / UI label | Value, hex | SET / successful reply | Matching GET reply | SET UTC | Screenshot |
|---|---|---|---|---|---|
| FOV: Natural Wide | 05 |
T05 62459 / 62475 | T05 62613 | 09:13:08.364898 | 088 |
| FOV: Ultra Wide | 00 |
T06 1153 / 1163 | T06 1308 | 09:13:46.735788 | 090 |
| FOV: Standard | 02 |
T06 1969 / 1979 | T06 2153 | 09:13:50.771546 | 092 |
| FOV: Wide | 01 |
T06 5957 / 5965 | T06 5982 | 09:14:08.950966 | 094 |
| Stabilization: RockSteady+ | 03 |
T06 11580 / 11587 | T06 11751 | 09:14:35.213301 | 096 |
| Stabilization: Off | 00 |
T06 12389 / 12393 | T06 12624 | 09:14:39.245043 | 098 |
| Stabilization: RockSteady | 01 |
T06 17889 / 17895 | T06 17979 | 09:15:04.485426 | 100 |
The parameter GET body is 00 01 parameterID_LE16; the matching response
for these fields is 00 00 01 parameterID_LE16 01 value. For example,
Natural Wide’s response is 00 00 01 09 00 01 05.
The initial FOV capability list is 2,1,0,5. Selecting RockSteady+ changes it to 2,1,5, removing Ultra Wide at T06 11583. Selecting Off restores the four choices at 12390. Stabilization capabilities at T05 13488 list 0,1,3, agreeing with the three choices in screenshots 095, 097, 099. These menus do not establish the absence of horizon modes elsewhere.
After RockSteady+ and Off, Mimo separately sends 02/B8 body
0A 4E 7E 00, at T06 11590 / 11594 and 12401 / 12406, respectively.
Each reply is zero. The encoded lens position is 126, with UI zoom
remaining 1.0×. This is an observed coordinated reset, not proof that every
stabilization change requires a zoom command. Action 6’s cam_fov value
remains unchanged across the FOV selections and does not echo these enum
IDs. Pocket’s hybrid-zoom conversion and 1× lens value 217 are not qualified
for this body.
Daily and Sport policy
Section titled “Daily and Sport policy”02/8E, parameter 0x0030 selects Daily = 00, Sport = 01.
The UI describes Sport as suitable for physical activities and removal of
motion blur. This policy is separate from the stabilization enum.
| Selection | SET / successful reply, T06 | State frame, T06 | SET UTC | Screenshot |
|---|---|---|---|---|
Sport, 01 |
22882 / 22888 | 22908 | 09:15:27.701873 | 102 |
Daily, 00 |
23701 / 23796 | 23763 | 09:15:30.735868 | 104 |
cam_steady_preferred_status is four bytes: version 1, two reserved bytes,
then the selected value at offset 3. Initially its capability list is
0,1 at T05 13489. Entering Manual exposure later changes the list
to only 1 at T07 22724, and changes current state to 1 at 22775,
without a separate Sport SET. Consume this conditional state change; do not
retain a stale Daily selection after switching exposure modes. An asynchronous
state push can precede the matched command reply in the captured batch.
White balance and readback differences
Section titled “White balance and readback differences”White balance uses 02/2C, with the observed five-byte body
mode, kelvin/100_LE16, 00, 00. Custom mode is 06; Auto is 00 with
zero Kelvin bytes. The tested interface has no tint control. The final two
SET bytes are zero in every observed WB write; their use for Action tint is
not qualified.
| UI selection | SET body, hex | SET / successful reply, T06 | Settled state, T06 | SET UTC | Screenshot |
|---|---|---|---|---|---|
| Custom 3400K | 06 22 00 00 00 |
34667 / 34677 | 34832 | 09:16:23.239108 | 109 |
| Minimum 2000K | 06 14 00 00 00 |
35193 / 35513, retry caveat below | 35398 | 09:16:25.264378 | 110 |
| One step to 2100K | 06 15 00 00 00 |
39601 / 39606 | 39753 | 09:16:45.467089 | 111 |
| Maximum 10000K | 06 64 00 00 00 |
40144 / 40159 | 40343 | 09:16:48.489530 | 112 |
| Restore Auto | 00 00 00 00 00 |
45892 / 45895 | 45963, metering 46094 | 09:17:12.728919 | 113 |
The minimum/maximum and one 100K step are visually and electrically qualified. A swipe toward minimum also requests 2700K and 2300K. Several requests are retried with the same sequence; intermediate replies include E1 at T06 35530/35531/35566/35567, alongside zero replies. Their meaning and individual attempt attribution are unresolved. The 2000K logical change has successful replies, matching state, and UI confirmation; do not count each retry as another accepted test. The upward swipe also accepts 3800K, 5800K, 7700K, and 9600K before reaching 10000K; the full continuous ladder was not individually selected.
The observed 16-byte cam_image_effect needs Action-aware decoding:
| Offset | Observed meaning / limitation |
|---|---|
| 2 | Colour ID; remains 3D here. |
| 4 | Auto/custom mode, 0 or 6. |
| 5–6 | Live/current temperature representation. Custom settles to requested K/100 in little-endian form, but transitions can retain the preceding measurement. Auto encoding is not fully resolved. |
| 7–8 | Constant 7F 00 across these changes; not a qualified +127 tint value. |
| 9 | Echoes selected Auto/custom mode, 0 or 6. |
| 10–11 | Echoes selected custom K/100; retains the previous custom value when Auto is restored. |
| 14 | Signed denoise value. |
| 15 | Signed Texture value. |
For 3400K, T06 34731 already has mode 6 and selected value 34 at
offset 10, while bytes 5–6 are still 22 07; 34832 settles to 22 00.
For 2100K, 39658 echoes selected 21 while the current value remains 20;
39753 settles to 21. On returning Auto, 45963 retains selected
custom value 100, while 46094 has current bytes 23 04 and UI 3500K.
Do not show a transient huge Kelvin value by treating every current pair as
a settled custom value, or expose a fabricated tint by applying
WhiteBalance.parseImageEffect unchanged: it interprets 7F 00 as 127
and clamps that to +100. The repeated selected-value fields support pending
versus settled state, but more WB contexts should qualify a general parser.
Texture and noise reduction
Section titled “Texture and noise reduction”The UI’s Texture uses 02/38; Noise Reduction uses 02/44.
Both bodies are one signed byte: FE = −2, FF = −1, 00 = 0, 01 = +1,
02 = +2. All selected labels in screenshot batch 117 were checked
against the visible UI, not inferred from the batch description.
| Control | Value | SET / successful reply | cam_image_effect readback |
SET UTC |
|---|---|---|---|---|
| Texture | −2 | T06 63800 / 63803 | T06 63868, offset 15 FE |
09:18:36.558690 |
| Texture | −1 | T06 64170 / 64172 | T06 64207, offset 15 FF |
09:18:38.571721 |
| Texture | +1 | T06 64551 / 64554 | T06 64624, offset 15 01 |
09:18:40.591955 |
| Texture | +2 | T06 64945 / 64947 | T06 64950, offset 15 02 |
09:18:41.609377 |
| Texture | 0 | T07 393 / 397 | T07 401, offset 15 00 |
09:18:43.631939 |
| Noise Reduction | −2 | T07 780 / 787 | T07 819, offset 14 FE |
09:18:45.650241 |
| Noise Reduction | −1 | T07 1168 / 1170 | T07 1237, offset 14 FF |
09:18:47.669910 |
| Noise Reduction | +1 | T07 1570 / 1575 | T07 1576, offset 14 01 |
09:18:49.686035 |
| Noise Reduction | 0 | T07 1966 / 1968 | T07 1993, offset 14 00 |
09:18:51.703903 |
The capability tables at T05 13488 match: camcap_sharpness has five
entries −2,−1,0,+1,+2; camcap_denoise has four −2,−1,0,+1. Their
version-1 logical counts are at offset 3, with values starting at offset 4.
Do not invent a +2 Noise Reduction choice from Texture’s range. These tests
qualify controls/readback, not the optical or recorded-image quality of each
setting.
Manual aperture and physical settling
Section titled “Manual aperture and physical settling”Entering Manual again sends 02/1E, 04 00, T07 22720 / 22734 at
09:20:28.620645. ISO remains Auto and shutter remains 1/100. The aperture
strategy becomes 1, its range becomes 260–260, and the current iris settles
to 260 at 23593, 09:20:32.660007. Screenshot 124 shows M, ISO
Auto, ceiling 12800, and an intermediate physical aperture F3.7.
This is another direct demonstration that an accepted strategy and its
current mechanical aperture can temporarily differ.
Screenshot 127 shows Fixed F2.6, Fixed (f/2.8), and Starburst (f/4.0). In Manual, logical strategy candidates are 1,2,3, rather than Auto exposure’s 4,2,3. The capability body at T07 22724 still has two trailing bytes after its three logical choices; do not treat those as additional selectable strategies.
| UI selection | Parameter 0x0044 value | SET / successful reply, T07 | Strategy / range state | Mechanical iris | SET UTC |
|---|---|---|---|---|---|
| Fixed f/2.8 | 02 |
34643 / 34649 | 34651 strategy 2; 34789 range 280–280 | 34879, 280 | 09:21:25.178293 |
| Fixed F2.6 | 01 |
35513 / 35518 | 35545, strategy 1 and range 260–260 | 35675, 260 | 09:21:28.213339 |
The corresponding range capability becomes a single 280–280 entry at 34647, then 260–260 at 35519. Screenshots 128/130 confirm the selected choices, and 132 confirms F2.6, 1/100, ISO Auto together. The UI’s descriptions state a 40cm minimum focusing distance for Fixed F2.6 and 35cm for Fixed f/2.8. These are firmware UI claims, not measured focus distances or evidence of a focus motor. Manual Starburst is displayed but not selected in T07; its strategy 3 SET is qualified in Auto exposure earlier in T03.
Manual ISO ladder
Section titled “Manual ISO ladder”02/2A accepts the existing one-byte ISO index. All eight visible manual
choices are selected in screenshots 133–134, while retaining Manual
exposure and 1/100 shutter. These transactions all belong to T07.
cam_expo_param offset 5 echoes the index; offset 16, u16 LE is the
actual ISO number, which can settle after the index changes. The settled ISO
column cites a state where both match.
| ISO | SET byte | SET / successful reply | Index readback | Settled ISO readback | SET UTC |
|---|---|---|---|---|---|
| 100 | 03 |
40389 / 40393 | 40471 | 40471 | 09:21:51.433413 |
| 200 | 04 |
45058 / 45065 | 45142 | 45227 | 09:22:13.656890 |
| 400 | 05 |
45463 / 45469 | 45472 | 45582 | 09:22:15.672865 |
| 800 | 06 |
45872 / 45878 | 45900 | 46014 | 09:22:17.692419 |
| 1600 | 07 |
46278 / 46287 | 46333 | 46447 | 09:22:19.709700 |
| 3200 | 08 |
46687 / 46693 | 46779 | 46779 | 09:22:21.724912 |
| 6400 | 09 |
47123 / 47129 | 47215 | 47215 | 09:22:23.742438 |
| 12800 | 0A |
47543 / 47546 | 47565 | 47654 | 09:22:25.760147 |
Screenshots 123/124 independently confirm the 12800 Auto ISO ceiling in D-Log M, in both Auto and Manual exposure. They support the earlier capability-count finding; the Normal-colour ceiling of 25600 must not leak into this context. Selecting each Auto ISO ceiling is not exercised here.
Manual shutter ladder
Section titled “Manual shutter ladder”02/28 uses the existing seven-byte payload:
01, (denominator | 0x8000)_LE16, 00, 00, 00, 40Example: 1/200 sends 01 C8 80 00 00 00 40. In cam_expo_param,
the current denominator is u16 LE at offsets 2–3, masked with 0x7FFF.
All selections below have matching UI labels, status-zero replies, and
readback. All frames belong to T07.
| Shutter | SET / successful reply | Readback | SET UTC | Screenshot |
|---|---|---|---|---|
| 1/200 | 48058 / 48064 | 48086 | 09:22:27.782149 | 135/136 |
| 1/240 | 52941 / 52945 | 52951 | 09:22:47.993194 | 137 step 01 |
| 1/320 | 53396 / 53401 | 53425 | 09:22:50.006900 | 137 step 02 |
| 1/400 | 53857 / 53860 | 53901 | 09:22:52.025087 | 137 step 03 |
| 1/500 | 54371 / 54375 | 54440 | 09:22:54.049234 | 137 step 04 |
| 1/640 | 54894 / 54896 | 54993 | 09:22:56.070615 | 137 step 05 |
| 1/800 | 55366 / 55371 | 55385 | 09:22:57.087100 | 137 step 06 |
| 1/1000 | 55821 / 55826 | 55861 | 09:22:59.109718 | 137 step 07 |
| 1/1250 | 56335 / 56338 | 56343 | 09:23:02.135049 | 137 step 08 |
| 1/1600 | 56818 / 56824 | 56919 | 09:23:03.156339 | 137 step 09 |
| 1/2000 | 57278 / 57284 | 57312 | 09:23:05.175776 | 137 step 10 |
| 1/2500 | 58077 / 58086 | 58144 | 09:23:07.193725 | 137 step 11 |
| 1/3200 | 58843 / 58850 | 58893 | 09:23:09.216931 | 137 step 12 |
| 1/4000 | 59270 / 59280 | 59375 | 09:23:11.236561 | 137 step 13 |
| 1/5000 | 59954 / 59958 | 59976 | 09:23:13.254250 | 137 step 14 |
| 1/6400 | 60422 / 60426 | 60462 | 09:23:15.271398 | 137 step 15 |
| 1/8000 | 60878 / 60883 | 60938 | 09:23:17.290458 | 137 step 16 |
The earlier swipe labelled as seeking the fast end only reaches 1/200; the final step is the qualified 1/8000 selection. The complete shutter capability table at T05 13488 has 26 denominators: 25,30,40,50,60,80,100,120,160,200,240,320,400,500,640,800,1000,1250, 1600,2000,2500,3200,4000,5000,6400,8000. The nine values below 200 are capability evidence in these takes; 1/100 also appears as an existing current state. They are not nine additional captured SET tests. The slowest manual capability is 1/25 in this UI-24fps context; do not conflate it with a separately displayed Auto Shutter limit policy.
Mimo display aids and evidence limits
Section titled “Mimo display aids and evidence limits”| Aid | Visually confirmed actions | Network evidence / confidence |
|---|---|---|
| Color Recovery | 106, 09:16:00 on; 107, 09:16:02 off. Preview contrast/colour changes while D-Log M remains selected. | No corresponding camera SET. Local preview processing is an inference. |
| Focus Peaking | 119, 09:19:12 on with red edge highlights; 120, 09:19:32 off with highlights removed. | UI effect confirmed with the base lens. No focus-mode or focus-distance command observed. |
| Histogram | 120, 09:19:33 on with graph visible; 09:19:35 off with graph removed. | UI effect confirmed; no corresponding camera SET. |
| Timecode Display | 120, 09:19:37 off; 09:19:39 on. Later 124/132 show the timecode HUD. | Display toggle confirmed; camera timecode subscriptions continue. No timecode sync, reset, or configuration SET qualified. |
| Overexposure Alert | 120, 09:19:41 off; 09:19:43 on. | Switch states confirmed; no threshold selection or quantitative clipping test. No corresponding camera SET. |
The intervals 09:15:59–09:16:05 and 09:19:10–09:19:46 contain
periodic 02/8E GETs, subscription traffic, logging, and heartbeats, but
no associated camera-setting write in the decoded network trace. This
supports treating these as Mimo display preferences; it does not prove the
absence of an uncaptured transport or supply a new device opcode. Peaking
does not establish autofocus support. Screenshot 121, despite its
audio-scroll event name, still shows the image/display-aid panel and supplies
no qualified audio-setting selection.
Implementation handoff and remaining gaps
Section titled “Implementation handoff and remaining gaps”- Add qualified Action 6 frame-policy, aperture strategy, and automatic-range parameters. Decode mechanical iris separately from requested strategy. Preserve contextual strategy 1, now qualified as the Manual Fixed F2.6 selection, and the distinction between requested and settled aperture.
- Refresh capabilities after policy, format, colour, exposure, and aperture changes. Honor logical counts rather than reading every remaining byte.
- Add the captured 8K resolution ID 0x37 and portrait 4K ID 0x6D to resolution labels and aspect mappings. The latter is distinct from Pocket’s portrait 3K ID 0x6C; see the portrait sweep.
- Preserve the distinction between successful replies, resulting state, pending UI selection, and completed recording finalization.
- Implement qualified FOV/stabilization and Daily/Sport mappings while honoring their changing capability lists. Do not reuse Pocket’s lens conversion for Action zoom or expose invalid Ultra Wide with RockSteady+.
- Reuse qualified shutter/ISO command encodings; adapt WB and selected-value decoding for Action before exposing tint or transient temperature values. Keep display preferences separate from qualified camera controls.
- The orientation and format reference completes the 4:3, portrait and square sweeps. Advanced controls qualifies horizon modes, Normal colour restoration, Auto ISO ceilings and shutter limits. Original media verifies representative recorded files. Audio controls and Video’s unselected slower shutter entries remain unqualified; the Photo shutter sweep documents its separate long-exposure options.
Source integration points are
CameraControl,
CamCap, and
CameraStatus. Live-path
changes still require the established
connection-reliability contract and physical
qualification; this evidence document does not authorize new periodic live
enables or format pokes.