RFC: drivers: biometrics: Add driver subsystem, GT5x, and ZFM-X0 fingerprint sensor drivers#100139
Conversation
6b28f8c to
38b5ed6
Compare
Thanks for the feedback! I am happy to work with the Architecture WG on the API design. My todo list for now is:
I will push the Documentation and Maintainers update shortly. |
38b5ed6 to
6fa3aca
Compare
|
@heronet Thanks for your proposal! would you be available to present this work in the Architecture Working Group meeting in the near future? |
Sure. Please let me know what time/date slot fits this the best. Besides, is there a specific agenda I should prepare for? |
0a99aa4 to
1cca502
Compare
e1eabb2 to
98a5ee7
Compare
27e1446 to
05cb7c6
Compare
|
A twister test failed unrelated to my code. Can't seem to rerun the test |
05cb7c6 to
7ef6297
Compare
|
Minor improvements to the sample |
mbolivar
left a comment
There was a problem hiding this comment.
Nice work! Please add a rationale for your default values or mark them as required, then I'm happy to approve this PR.
| Default is 0xFFFFFFFF. Can be changed via system parameter commands. | ||
| password: | ||
| type: int | ||
| default: 0x00000000 | ||
| description: | | ||
| Sensor password for authentication. All sensors ship with default | ||
| password 0x00000000. Only change if you've modified the sensor's | ||
| password using the password change command. |
There was a problem hiding this comment.
Missing explanation for why the default is chosen; please fix this after reading https://docs.zephyrproject.org/latest/build/dts/bindings-upstream.html#rules-for-default-values
There was a problem hiding this comment.
Thanks for the review. I have updated the descriptions with better explanation. These values are factory programmed so I chose to keep them as defaults. But let me know if required is the better approach.
Adds device tree binding for Zhiantec ZFM-X0 fingerprint sensor and biometrics-emul Signed-off-by: Siratul Islam <[email protected]>
Add driver for ZFM-x0 series optical fingerprint sensors supporting ZFM-X0, R30x, JM-101, DY-50, FPM10A, and compatible modules. Features: - Multi-sample enrollment flow (2 samples) - 1:1 verification and 1:N identification matching - LED control - Configurable security level and timeout Signed-off-by: Siratul Islam <[email protected]>
Adds a sample application demonstrating the Biometrics subsystem with a fingerprint sensor. The sample demonstrates: - Getting sensor capabilities - Two-stage enrollment process - Verification (1:1 matching) - Identification (1:N matching) - Template management Signed-off-by: Siratul Islam <[email protected]>
Add emulated biometrics driver for testing shell commands and application logic. Implements full API: - Configurable attributes - Template storage with simulated enrollment workflow - Match operations with configurable success simulation - LED state tracking Signed-off-by: Siratul Islam <[email protected]>
Add shell interface for biometrics driver subsystem providing commands for: - info: display device capabilities - attr_get/attr_set: read/write device attributes - enroll: full enrollment flow and individual steps - template_list/delete/delete_all: template management - match: verify or identify operations - led: LED control Signed-off-by: Siratul Islam <[email protected]>
- Add test suite for biometrics API using emulated driver - Test enrollment flow: start, capture, finalize, abort - Test template operations: store, read, delete, list - Test matching: verify and identify modes - Test attribute get/set and error handling - Runs on native_sim and real hardware Signed-off-by: Siratul Islam <[email protected]>
Add device tree binding for ADH Technology GT5X series optical fingerprint sensors (GT-511C1R, GT-511C3, GT-521F32, GT-521F52). Signed-off-by: Siratul Islam <[email protected]>
Add driver for ADH Technology GT5X series optical fingerprint sensors. Supports GT-511C1R, GT-511C3, GT-521F32, and GT-521F52 variants. Features: - 3-stage enrollment with retry support - 1:1 verification and 1:N identification - LED control - Model-agnostic design via device tree configuration Signed-off-by: Siratul Islam <[email protected]>
Add maintainer entry for the new biometrics drivers subsystem, covering drivers, bindings, headers, samples, and tests Signed-off-by: Siratul Islam <[email protected]>
7ef6297 to
450b405
Compare
|
|
Nice work! |
Thanks @pdgendt for sticking to this PR and providing feedback from the beginning. |



This PR proposes a new
biometricsdriver subsystem to standardise interactions with biometric sensors (Fingerprint, Iris, Face, etc.).Currently, Zephyr lacks a dedicated API for these devices. Users are forced to use raw UART/I2C, which is not portable. This RFC introduces a generic API and a reference implementation.
This subsystem provides a unified API for:
On the naming of the (Biometrics) API:
(source: https://ieeexplore.ieee.org/document/10808205) (thanks to @rodrigopex)
More references: