Add support for Validity sensor 138a:0092 (HP EliteBook x360 1030 G2)#259
Open
milad-o wants to merge 3 commits into
Open
Add support for Validity sensor 138a:0092 (HP EliteBook x360 1030 G2)#259milad-o wants to merge 3 commits into
milad-o wants to merge 3 commits into
Conversation
Add DEV_92 (0x138a, 0x0092) to SupportedDevices in usb.py. Map device 0x0092 to use blobs_9d in blobs.py. Add proper firmware partition table entries for DEV_92 in firmware_tables.py. This sensor is found in HP EliteBook x360 1030 G2 and similar HP laptops. It uses sensor type 0x1825 with ROM product=0x30 major=0x6 minor=0x7.
The 0x1825 sensor firmware does not understand chunk type 0x4e used by newer sensors for finger detection during IDENTIFY mode. Instead, it requires chunk 0x26 with adjusted threshold parameters for both IDENTIFY and ENROLL. Key changes: - IDENTIFY mode: Use chunk 0x26 (not 0x4e) with threshold bytes 0x5400/0x3400 - ENROLL mode: Use chunk 0x26 with same adjusted threshold parameters - Set calibration_iterations=2 for 0x1825 (differs from 0x199 which uses 3) Without this fix, the sensor captures immediately without waiting for a finger to be placed, resulting in empty/invalid fingerprint data. Tested on HP EliteBook x360 1030 G2 with successful enrollment and identification of multiple fingers.
The 0092 sensor requires a USB device reset before establishing TLS communication, otherwise the first USB bulk transfer times out. This adds a reset + 1 second delay in init.open() when the device is detected. This workaround is necessary on Linux where the sensor may be in a stale state from a previous session or from being previously claimed by another driver.
This was referenced May 27, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR adds support for the Validity VFS7552 fingerprint sensor with USB ID
138a:0092, found in HP EliteBook x360 1030 G2 and similar HP laptops. The sensor uses the 0x1825 firmware type.Changes
1. Device registration (
usb.py,blobs.py,firmware_tables.py)DEV_92 = (0x138a, 0x0092)toSupportedDevicesblobs_9d(same blob set as similar sensors)2. Finger detection fix (
sensor.py)0x4e(used by newer sensors like 0x199). When sent 0x4e, it captures immediately without waiting for a finger, producing invalid data.0x26with adjusted threshold parameters (0x5400/0x3400instead of0x8700/0x6700) for both IDENTIFY and ENROLL modes.calibration_iterations = 2for 0x1825 (the 0x199 uses 3).3. USB initialization (
init.py)Testing
Tested on HP EliteBook x360 1030 G2 (Fedora 44, kernel 7.0.10):
Relationship to
device/0092branchThis PR is a cleaned-up minimal subset of the existing
device/0092branch. The branch contains additional calibration improvements (scale_mul/scale_div, numpy float32 logic) that are not strictly necessary for basic functionality and can be added as a follow-up.Hardware Info