Skip to content

Commit 860d8fb

Browse files
authored
Publish OLED protection research evidence (#118)
* Publish readable OLED research evidence and simulator * Avoid backlinks to the unpublished article
1 parent 7b9092f commit 860d8fb

100 files changed

Lines changed: 13425 additions & 0 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎README.md‎

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,18 @@ Every release is tested on as many different displays, connections and Macs as w
102102
- [Tested hardware](docs/HARDWARE.md): the monitors, connections and Macs Candela has been used on, one row per report.
103103
- [Contributing](CONTRIBUTING.md): building from source, running the suites, and what a change is expected to state about its own verification.
104104

105+
## OLED protection research
106+
107+
I reverse-engineered my MSI MAG 341CQP to understand which protection jobs its firmware already handles and what desktop software can add. The [research appendix](docs/evidence/oled-protection/README.md) presents the evidence as five reports:
108+
109+
- [MSI firmware boundary](docs/evidence/oled-protection/firmware-boundary.md): recovered panel-care controls and the limits of the public update.
110+
- [Samsung source provenance](docs/evidence/oled-protection/samsung-source.md): the three official releases, source excerpts and verification hashes.
111+
- [Simulator comparison](docs/evidence/oled-protection/simulator-comparison.md): how two generations respond differently to the same controlled input.
112+
- [Camera measurement](docs/evidence/oled-protection/camera-measurement.md): the setup, calibration, uncertainty and 43 decoded positions.
113+
- [Orbit comparison](docs/evidence/oled-protection/orbit-comparison.md): why the measured route rejects exact execution of the published table, despite local matches.
114+
115+
The reports distinguish physical observations, source analysis and model predictions. They explain complementary roles for desktop software and the monitor; they do not establish a measured improvement in panel life. The [simulator and tests](tools/pontusm-sim/README.md) and documented data supplements are available for checking the results.
116+
105117
## Credits
106118

107119
- [MonitorControl](https://github.com/MonitorControl/MonitorControl): parts of the display-control engine, adapted under the MIT license. Details in [THIRD-PARTY-LICENSES.md](THIRD-PARTY-LICENSES.md).
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# What an OLED monitor does to protect itself
2+
3+
**Research evidence · MSI MAG 341CQP · September 2026**
4+
5+
This appendix supports *I built an OLED protection app, then reverse-engineered my monitor*. It presents the firmware findings, source comparison and physical measurements separately so that each claim can be checked against the evidence that supports it.
6+
7+
The investigation found a boundary between the MSI scaler and the Samsung panel controller, reconstructed published protection logic from three Samsung releases, and measured 43 successive image positions on the real monitor. The measured route does not execute the published Samsung normal orbit, although parts of the paths coincide.
8+
9+
## Read the evidence
10+
11+
| Report | Question answered | Evidence and result |
12+
| --- | --- | --- |
13+
| [MSI firmware boundary](firmware-boundary.md) | What does the monitor's update reveal? | Firmware 041 exposes fixed panel-care commands and scheduling. The panel executable and compensation calculations remain unavailable. |
14+
| [Samsung source provenance](samsung-source.md) | Which code was examined? | Official 2022, 2023 and 2024 archives, identified by release records, member paths and hashes. They are related production code, not the MSI panel executable. |
15+
| [Simulator comparison](simulator-comparison.md) | Do adjacent releases behave differently under the same inputs? | A controlled scenario reaches local strength 512 in v20 and 1,020 in v22. This is a model result, not a luminance measurement. |
16+
| [Camera measurement](camera-measurement.md) | How was physical pixel movement measured? | Same-recording calibration and a stationary reference yield 43 positions and 42 relocations, with an apparent interval of about 60.134 seconds. |
17+
| [Orbit comparison](orbit-comparison.md) | Does the measured path follow Samsung's table? | Every cyclic starting index is rejected by the third position under the calibrated axes. Later local matches do not establish full-route identity. |
18+
19+
## What the findings support
20+
21+
Desktop software and the monitor have complementary capabilities. The operating system can use lock, idle and window context to avoid showing unnecessary content. The display can move the final image and access physical panel state. These findings clarify the role of each layer; they do not measure Candela's effect on burn-in or panel life.
22+
23+
## Reproduce or inspect
24+
25+
The [simulator](../../../tools/pontusm-sim/README.md) runs locally with Python 3.11 or newer. Synthetic scenarios do not require vendor archives. Official-table comparisons require independently obtained Samsung archives matching the [source report](samsung-source.md).
26+
27+
The reports link to small data supplements with column definitions and reproduction instructions. Original measurement records are retained without changing their values. The [provenance manifest](data/provenance.json) identifies the source recording and records the publication's file hashes and formatting changes.
28+
29+
The original 4.59 GB recording is not distributed. The camera report explains which results can be checked from the published data and which require original footage or a new acquisition. No vendor firmware binaries, complete Samsung source files or full vendor orbit tables are included.
30+
31+
[Back to Candela](../../../README.md)
529 KB
Loading
Lines changed: 48 additions & 0 deletions
Loading
Lines changed: 58 additions & 0 deletions
Loading

0 commit comments

Comments
 (0)