# mf4700-print-scan: reconstructing Canon MF4700 print and scan protocols

> mf4700-print-scan reconstructs printing and scanning for Canon MF4700-series devices in a macOS app. Its C encoder emits UFR II LT jobs based on differences observed in Canon driver output, while an MFNP client registers the Mac and retrieves scanned pages. A format reference records CPCA packets, job structure and print-data encoding.

- Type: Case study
- Targets: Protocol
- Category: Independent reconstruction cases
- Relationship: Independent reconstruction project
- Sources reviewed: 2026-11-07
- Added to the catalog: 2026-11-09
- Original resource: <https://github.com/pkhr/mf4700-print-scan>
- Primary source: <https://github.com/pkhr/mf4700-print-scan/blob/c3a08d75162c581ecb289f92cb0205f3d317ef70/FORMAT.md>
- Catalog page: <https://awesomerea.org/resources/mf4700-print-scan-case/>
- Record JSON: <https://awesomerea.org/resources/mf4700-print-scan-case/record.json>
- Chinese version: [简体中文](https://awesomerea.org/zh/resources/mf4700-print-scan-case/index.md)

## Requirements & limits

- **Prerequisites:** macOS 14 or later and a supported MF4700-series printer reachable over Wi-Fi or Ethernet; USB is unsupported.
- **Prerequisites:** Building requires Xcode command-line tools; the byte-comparison tests also require JBIG-KIT.
- **Testing evidence:** The documented development device is an MF4780w.
- **License:** GPL-2.0.

## Primary sources

1. <https://github.com/pkhr/mf4700-print-scan/blob/c3a08d75162c581ecb289f92cb0205f3d317ef70/FORMAT.md>
2. <https://github.com/pkhr/mf4700-print-scan/blob/c3a08d75162c581ecb289f92cb0205f3d317ef70/README.md>

## More in Protocols

- [Kenwood KNS: documenting ARCP-590G radio communication](https://awesomerea.org/resources/arcp-590g-kns-case/index.md) · Case study
- [truemove3-re: mapping a gaming mouse sensor's SPI interface](https://awesomerea.org/resources/truemove3-re-case/index.md) · Case study
- [Aqara G410: reconstructing doorbell cloud and P2P access](https://awesomerea.org/resources/aqara-g410-protocol-case/index.md) · Case study
- [crowdstrike-cloudproto: reconstructed Falcon Sensor cloud protocol](https://awesomerea.org/resources/crowdstrike-cloudproto-case/index.md) · Case study
- [BA-KEY Menu: reconstructing Basike keyboard HID control](https://awesomerea.org/resources/ba-key-menu-protocol-case/index.md) · Case study
- [KC Control: Keychron M6 profile switching over a recovered HID protocol](https://awesomerea.org/resources/kc-control-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.
