# ntrig-calib: reconstructing Surface Pro 3 digitizer calibration

> ntrig-calib reconstructs the Surface Pro 3 N-Trig digitizer's calibration exchange as a Linux Python script. The project describes Ghidra analysis of CalibG4.exe and NCPTransportInterface.dll, including NCP framing, START_CALIB and GET_STATUS commands and HID report transport. The author reports a working fix on one device while documenting uncertain response behavior and calibration longevity.

- Type: Case study
- Targets: Binary · Protocol
- Category: Independent reconstruction cases
- Relationship: Independent reconstruction project
- Sources reviewed: 2026-11-06
- Added to the catalog: 2026-11-08
- Original resource: <https://github.com/thiswillbeyourgithub/ntrig-calib>
- Primary source: <https://github.com/thiswillbeyourgithub/ntrig-calib/blob/03256e10abb8a9ac37849309361b03b6aa4fea19/README.md>
- Catalog page: <https://awesomerea.org/resources/ntrig-calib-surface-pro-3-case/>
- Record JSON: <https://awesomerea.org/resources/ntrig-calib-surface-pro-3-case/record.json>
- Chinese version: [简体中文](https://awesomerea.org/zh/resources/ntrig-calib-surface-pro-3-case/index.md)

## Requirements & limits

- **Prerequisites:** Surface Pro 3 with an N-Trig DuoSense digitizer running Linux.
- **Testing evidence:** The author reports success on one device; the NCP response path has not been checked across multiple devices or kernel versions.
- **Limits:** Calibration may drift again, and success conditions are not fully understood.
- **License:** AGPL-3.0 License.

## Primary sources

1. <https://github.com/thiswillbeyourgithub/ntrig-calib/blob/03256e10abb8a9ac37849309361b03b6aa4fea19/README.md>

## More in Protocols

- [even-utils: experimenting with Even Realities G1 dashboard messages](https://awesomerea.org/resources/even-utils-g1-case/index.md) · Case study
- [Opel Insignia A: investigating LIN control of the Climatronic panel](https://awesomerea.org/resources/opel-insignia-climatronic-lin-case/index.md) · Case study
- [Opel Insignia climatronic panel: reconstructing LIN control with STM32](https://awesomerea.org/resources/lin-bus-insignia-climatronic-panel-g431kb-case/index.md) · Case study
- [Peugeot 3008 II: investigating CAN control of the air-conditioning unit](https://awesomerea.org/resources/peugeot-3008-ii-air-conditioning-case/index.md) · Case study
- [BMW E92 CAN Live Data: decoding ECU telemetry](https://awesomerea.org/resources/e92-can-livedata-case/index.md) · Case study
- [Simplesoft RP5-TY-101: mapping Toyota CAN interface messages](https://awesomerea.org/resources/simplesoft-rp5-ty-101-can-case/index.md) · Case study

## About this entry

The description was reviewed against primary sources.
Original editorial content: MIT. Linked projects, papers and assets retain their own rights and licenses.
