# libfprint-microarray: reconstructing the MAFP fingerprint reader USB protocol

> libfprint-microarray reconstructs the USB control workflow of the MicroarrayTechnology MAFP fingerprint reader as a Linux libfprint driver. Analysis of MicroarrayFingerprintDevice.dll and USB captures informs its handshake, image polling, fingerprint enrollment and verification commands. The author reports successful enrollment and verification on a physical 3274:8012 device.

- 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/jdillon/libfprint-microarray>
- Primary source: <https://github.com/jdillon/libfprint-microarray/blob/82cd97eef8cddc551c067557f6e4b3af6426b9ba/README.md>
- Catalog page: <https://awesomerea.org/resources/libfprint-microarray-mafp-case/>
- Record JSON: <https://awesomerea.org/resources/libfprint-microarray-mafp-case/record.json>
- Chinese version: [简体中文](https://awesomerea.org/zh/resources/libfprint-microarray-mafp-case/index.md)

## Requirements & limits

- **Prerequisites:** MicroarrayTechnology MAFP fingerprint reader with USB ID 3274:8012 and a libfprint source tree.
- **Testing evidence:** The author reports enrollment and verification on real hardware.
- **Limits:** Enrollment skips clearing stored templates when free FID slots are available; identify search is not implemented.
- **License:** MIT License.

## Primary sources

1. <https://github.com/jdillon/libfprint-microarray/blob/82cd97eef8cddc551c067557f6e4b3af6426b9ba/README.md>
2. <https://github.com/jdillon/libfprint-microarray/blob/82cd97eef8cddc551c067557f6e4b3af6426b9ba/docs/reverse-engineering.md>

## More in Protocols

- [ntrig-calib: reconstructing Surface Pro 3 digitizer calibration](https://awesomerea.org/resources/ntrig-calib-surface-pro-3-case/index.md) · Case study
- [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

## 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.
