123 Main Street, New York, NY 10001

Face Access Controller: Depth/IR, Liveness & Secure Storage

← Back to: Security & Surveillance

A Face Access Controller is an on-edge security endpoint: it turns depth/IR sensing into a door decision through a trusted pipeline (liveness → match → policy → relay), while keeping templates and keys non-exportable. When failures happen (sunlight FRR spikes, reboots, OSDP drops, template loss), the fastest fix comes from an evidence chain—scores/histograms + waveforms/log fields—so symptoms map to measurable causes rather than guesswork.

H2-1. What a Face Access Controller Is (and is NOT)

On-device face decision Depth/IR + liveness lighting Secure element + encrypted templates Door I/O (OSDP/Wiegand/Relay) PoE PD + evidence logs

A Face Access Controller is an edge device that performs Depth/IR capture → liveness decision → face inference/match → access actuation, while protecting identity assets (templates/keys) using a hardware-backed trust anchor and producing auditable field evidence (power, security state, I/O events).

This page is hardware- and evidence-driven: every diagnosis must map to at least one of these: (1) power/timing proof, (2) AI pipeline proof, (3) security-state proof.

Coverage boundaries (hard scope lock)

In scope (this page) Depth/IR front-end integration (ToF/stereo/structured light), NIR illumination & drivers, ISP/preproc/NPU pipeline, thresholding & policy, template/key protection, OSDP/Wiegand/relay I/O, tamper inputs, PoE PD power tree, offline behavior evidence.
Out of scope (handled by sibling pages) Intercom/door-station audio or SIP/VoIP behavior, door-lock motor/solenoid mechanics, multi-door panel topology, NVR/VMS ingest/storage platforms, PoE switch/PSE internals, cloud orchestration/app tutorials.

Field triage: “belongs to this page” vs “belongs to a sibling page” (5 rules)

Use the rules below to prevent scope creep during field debug. Each rule is designed to be mechanically checkable with a minimal evidence set (two data points).

Field symptom First 2 evidence points (minimum) If evidence matches → this page If evidence matches → sibling page
Recognition/liveness accuracy shifts, device stays stable 1) liveness/match score distribution
2) model + calibration + threshold version
YES → AI pipeline drift / calibration overwrite / liveness lighting timing (H2-2+ later chapters) NO → If root cause is platform policy or cloud identity service behavior, move to platform page (out of scope)
Random reboot / freezes / sudden FPS drop 1) reset_reason + brownout counter
2) rail droop capture or PoE power-limit event
YES → PoE PD / rails / thermal throttling / hold-up (this page) NO → If upstream switch power allocation (PSE) is the root, move to PoE switch page
OSDP/Wiegand/relay intermittent, especially on lock actuation 1) RS-485 waveform/CRC error count
2) relay kickback / ground bounce evidence
YES → I/O protection, grounding, cabling bias/termination, kickback (this page) NO → If multi-door panel wiring topology is the issue, move to Access Control Panel page
Problem described mainly as intercom call quality / echo / talkback 1) symptom references SIP/VoIP / echo path
2) audio-specific logs dominate
NO → Not this page YES → Video intercom door station / master station pages (out of scope here)
Problem described mainly as door lock mechanics (stuck, torque, jam) 1) mechanical load/actuator symptoms
2) motor/solenoid driver focus
NO → Not this page YES → Smart door lock controller / actuator page (out of scope here)

Evidence-first minimum telemetry (recommended)

  • Security state: secure_boot_enabled, firmware_hash, anti_rollback_counter, debug_port_state, SE_presence.
  • AI state: model_version, calibration_version, threshold_profile_id, liveness_score_stats (min/median/p95), match_score_stats.
  • Power/thermal: reset_reason, brownout_count, rail_uvlo_events, PoE_power_limit_events, thermal_throttle_events.
  • I/O: OSDP_crc_error_count, OSDP_bus_voltage, relay_actuation_count, tamper_event_count + last_timestamp.
Figure F1 — Scope Boundary (Face Access Controller) In scope (this page) Face Access Controller (Depth/IR + NPU + Policy) Secure Element / Key Vault Depth / IR Module ToF • Stereo • SL NIR Liveness Lighting Driver + Sync Access I/O OSDP / Wiegand Relay / Door / Tamper Ethernet / PoE PD + Power Tree Rails • Hold-up • Logs Out of scope (handled elsewhere) Intercom/SIP • Door lock motor mechanics • Multi-door panel topology • NVR/VMS ingest/storage • PoE switch/PSE internals • Cloud platform tutorials
F1 locks scope: the page covers the controller, sensor + illumination, secure element, access I/O, and PoE PD power evidence—while excluding intercom, lock mechanics, NVR/VMS platforms, panel topology, and PoE PSE design.
Cite this figure #fig-f1 ICNavigator — “Face Access Controller”, Figure F1 (Scope Boundary)

H2-2. Reference Architecture: Data Paths + Trust Boundaries

A reliable face access controller is best understood as four flows sharing a single trust root: (1) capture flow, (2) inference/match flow, (3) actuation flow, and (4) management/update flow. The purpose of this chapter is to make the system auditable: every security claim must map to a verifiable boundary and a measurable artifact.

Four data flows (each must have measurable evidence)

1) Capture flow Depth/IR sensor → ISP / preproc → frame buffers. Evidence: FPS stability, exposure/gain curve, depth confidence stats, MIPI/CSI error counters.
2) Inference & match flow Preproc → NPU → embedding → match/threshold → decision. Evidence: latency budget per stage, NPU load, score distribution drift, threshold profile ID.
3) Actuation flow Decision → OSDP/Wiegand → relay/door I/O. Evidence: RS-485 waveform integrity, CRC/error counts, kickback/ground-bounce correlation, tamper events.
4) Management & update flow Network provisioning → TLS sessions → signed update → verified boot. Evidence: signature verification logs, anti-rollback counter, device identity & certificate chain.

Three non-negotiable trust invariants (must never break)

These invariants are written as system constraints plus a proof method. The proof items should be logged or otherwise observable without requiring vendor-only lab tools.

  • Invariant #1 — Templates/identity assets never exist in plaintext outside the trusted boundary.
    Proof: encrypted template DB flag + key handle usage (SE/TEE), no plaintext export paths, TLS enforced for any identity transport.
  • Invariant #2 — Only signed firmware can boot; updates are signed; rollback is blocked.
    Proof: secure-boot state + verified hash, signature chain record, monotonic counter (SE/OTP/RPMB) increments on accepted updates.
  • Invariant #3 — Debug/physical attack surfaces are controlled and tamper is observable.
    Proof: debug port locked state, tamper events written to audit log with timestamp, optional key invalidation policy indicator.

Minimum “read-in-30-seconds” telemetry (recommended fields)

These fields are the practical bridge between architecture and field ops. If they cannot be read reliably, the device becomes non-auditable.

  • Boot & integrity: secure_boot_enabled, firmware_version, firmware_hash, anti_rollback_counter.
  • Identity & crypto: device_identity_id, SE_status, key_slots_ok, tls_enabled, cert_chain_fingerprint.
  • AI & calibration: model_version, calibration_version, threshold_profile_id, liveness_score_stats, match_score_stats.
  • Power & thermal: reset_reason, brownout_count, PoE_power_class, power_limit_events, thermal_throttle_events.
  • I/O & tamper: OSDP_crc_error_count, bus_voltage_stats, relay_actuation_count, tamper_event_count + last_event_timestamp.
Architectural rule: if a symptom cannot be mapped to one of the four flows and proven by at least one telemetry or waveform artifact, the diagnosis is not complete.
Figure F2 — Data Paths + Trust Boundaries Trusted device boundary (on-device) Depth/IR Capture ISP / Preproc NPU / CPU Match / Policy Access I/O OSDP / Wiegand Secure Element PoE PD Rails + Logs NIR Lighting Driver + Sync key handle Management / Update flow (must be signed + verified) Network TLS Session Signed Update Verified Boot 1 No plaintext templates 2 Signed boot + anti-rollback 3 Debug locked + tamper logged
F2 makes the system auditable: four flows (capture, inference/match, actuation, update) are mapped to a trusted boundary, with a secure element providing key handles (not plaintext keys), and three invariants that must never break.
Cite this figure #fig-f2 ICNavigator — “Face Access Controller”, Figure F2 (Data Paths & Trust Boundaries)

H2-3. Depth/IR Front-End Choices (ToF vs Stereo vs Structured Light)

In access control, depth/IR is not a “nice-to-have camera upgrade”—it is a spoof-resistance input. The front-end choice must survive outdoor sunlight, keep false reject rate (FRR) stable across faces/angles, and stay inside power/compute budgets while remaining field-debuggable.

Why depth matters in the door context (threat-model driven)

  • 2D spoof (photo/screen): defeated by depth consistency + liveness lighting correlation.
  • 3D spoof (mask/print): requires depth + additional cues (reflectance behavior, micro-geometry limits, temporal stability) at the controller level.
  • Outdoor deployment: sunlight/IR flood can wash out signals; each depth method has a distinct failure signature that must be observable.

Selection matrix (3×6): method vs engineering evidence

Each cell lists dominant failure mode and a minimum evidence pair (one measurable metric + one log/counter). This turns “trade-offs” into a field-checkable selection.

Method Outdoor sunlight FRR trend Depth noise / holes BOM / power Calibration sensitivity Debug difficulty
ToF
modulated active depth
Failure: demod SNR collapse → invalid depth “holes”.
Evidence: invalid_depth_ratio + ambient_IR_level counter.
Failure: liveness/score drift when confidence drops.
Evidence: liveness_score_stats + depth_confidence_histogram.
Failure: multipath on glossy surfaces; edges shimmer.
Evidence: phase_jitter_metric + depth_temporal_std.
Failure: emitter peak current & heat budgets dominate.
Evidence: LED/VCSEL_peak_current_log + derating_events.
Failure: temperature drift alters depth scale/offset.
Evidence: temp_vs_depth_offset trend + recalibration_needed flag.
Failure: timing chain errors look like “random AI failures”.
Evidence: mod_sync_lock status + frame_time_jitter.
Structured Light
pattern projection
Failure: pattern contrast washout under sun/glare.
Evidence: pattern_contrast_metric + exposure_saturation_count.
Failure: FRR spikes at dusk/dawn due to AE mismatch.
Evidence: AE_curve_id + FRR_time_of_day trend.
Failure: stripe decode fails → sparse/patchy disparity.
Evidence: stripe_quality_score + disparity_invalid_ratio.
Failure: projector driver + optics add BOM and power bursts.
Evidence: projector_duty_log + supply_peak_current.
Failure: mechanical alignment & window thickness shift decode.
Evidence: pattern_alignment_error + calibration_version change.
Failure: sync issues appear as “depth noisy” not “pattern lost”.
Evidence: pattern_sync_ok + decode_fail_counter.
Stereo
passive/IR-assisted
Failure: glare + low texture reduces match inliers.
Evidence: inliers_ratio + texture_score / contrast metric.
Failure: FRR rises in low light unless IR assist is stable.
Evidence: SNR_metric + match_score_stats drift.
Failure: disparity holes in low texture / motion blur.
Evidence: disparity_invalid_ratio + exposure_time / blur metric.
Failure: no projector; power often lower but compute higher.
Evidence: NPU/CPU_util + average_power_estimate.
Failure: baseline & rectification sensitive to assembly drift.
Evidence: rectification_error + temperature/impact events.
Failure: problems hide inside “matching quality”.
Evidence: match_fail_counter + disparity_confidence_hist.

Decision path (pick based on constraints, then validate with evidence)

  • Hard outdoor sunlight + reflective entry (glass/metal): favor ToF or structured light, but require confidence/contrast telemetry; validate with invalid-depth/stripe-quality under max lux.
  • Low-power and simpler optics priority: stereo can win if texture is acceptable or IR-assist is stable; validate with inliers ratio and disparity invalid ratio.
  • Long range + consistent depth needed: ToF tends to be predictable if timing & thermal derating are controlled; validate with phase jitter and derating events.
  • Factory/field service constraints: choose the method whose “dominant failure mode” is easiest to observe with logs + one scope capture in your deployment.
Practical rule: if the chosen depth method cannot expose a stable quality/confidence metric and a sync/health flag, field debugging will degrade into “AI seems random”—avoid that architecture.
Figure F3 — Depth Options (ToF vs Structured Light vs Stereo) ToF Structured Light Stereo Emitter (VCSEL/LED) Optics + Window ToF Sensor / ROIC Timing (Mod/Demod) Preproc (Depth+Conf) NPU Input (Fusion) Projector (Pattern) Optics + Window IR Sensor Timing (Pattern Sync) Preproc (Decode Depth) NPU Input (Fusion) Dual Sensors Optics Alignment Frame Sync Preproc (Rectify/Match) Depth Quality Metrics NPU Input (Fusion) dominant: sunlight SNR / multipath dominant: pattern washout / mis-sync dominant: low texture / alignment drift
F3 compares depth methods using the same module vocabulary (emitter/projector, optics, sensor, timing, preprocessing, NPU input) to keep selection evidence-driven and field-debuggable.
Cite this figure #fig-f3 ICNavigator — “Face Access Controller”, Figure F3 (Depth Options Comparison)

H2-4. NIR Illumination & Liveness Lighting Drivers

Liveness lighting is a synchronized signal generator, not just “more IR brightness”. The driver must deliver repeatable optical power while keeping timing alignment, thermal limits, and auditability intact. If any one of these breaks, FRR and spoof resistance degrade in a way that can look like random AI behavior.

What the lighting subsystem must guarantee (engineering, not marketing)

  • Repeatable optical energy: peak current and pulse width must be achieved (no hidden current clipping).
  • Deterministic alignment: exposure window must overlap the valid light pulse (or modulation/pattern timing).
  • Thermal safety: junction temperature must remain bounded via NTC feedback and duty derating.
  • Auditable operation: peak/duty/derating events must be logged to correlate with score drift.

The 4 quantities that must be synchronized (minimum evidence chain)

These four must be observable as either waveforms or counters. Treat this as a non-negotiable debug checklist whenever “night works, day fails” or “scores drift after update” appears.

Quantity Where to measure What “correct” looks like If misaligned → typical symptom
① Light pulse
LED/VCSEL EN
Driver strobe pin / enable GPIO; timestamp marker in logs. Stable phase relationship to frame trigger; no jitter bursts during busy periods. Frame-to-frame brightness instability; liveness score variance spikes.
② Current waveform
I(t)
Shunt/CSA output or driver sense; record peak/width in telemetry. Peak reaches target; rise time not stretched; no flat-top clipping from supply limits. “Looks lit” but effective energy is low → FRR rises at night; spoof resistance weakens.
③ Camera exposure
frame sync
Sensor frame trigger/exposure pin; exposure/gain logs. Exposure window overlaps valid pulse; AE does not chase the strobe (no oscillation). Banding / flicker artifacts; match scores drift with ambient changes.
④ Depth timing
ToF phase / SL pattern
ToF mod/demod lock flag; pattern sync OK; timing generator status. Lock stays asserted; phase/pattern markers align with illumination timing. Depth confidence collapses; invalid depth holes increase under sunlight.

Thermal + eye-safety enforcement (keep it practical)

  • NTC feedback loop: NTC near emitter/board hotspot feeds driver derating; log derating_events with timestamps.
  • Duty/peak constraints: treat peak current, pulse width, repetition rate as a signed configuration—changes must be auditable.
  • Power interaction: pulsed emitters cause rail dips; correlate current waveform with reset/brownout counters during actuation.
Debug shortcut: if liveness or match quality changes with ambient/time-of-day, capture a single trace that includes ① strobe, ② current sense, and ③ frame sync. If those three do not maintain stable alignment, fix sync/power/derating first.
Figure F4 — NIR Lighting Driver: Sync + Thermal Feedback LED/VCSEL Driver Pulse + Current Sense LED / VCSEL Emitter Optics Lens / Window Sensor Exposure / Frame Sync NPU / Policy Engine Liveness + Match Inputs Timing Generator Frame / ToF / Pattern Sync timestamp markers NTC Thermal Sense Event Log peak • duty • derate • sync flags 1 light pulse 2 current waveform 3 camera exposure 4 depth timing
F4 shows the lighting subsystem as a synchronized signal chain: pulse and current must align with camera exposure and ToF/pattern timing, while NTC feedback enforces safe derating and logs events for audit and debug correlation.
Cite this figure #fig-f4 ICNavigator — “Face Access Controller”, Figure F4 (Lighting Driver Sync & Feedback)

H2-5. Sensor & Optics Integration: IR-cut, Lens, Stray Light, Outdoor Issues

Outdoor access control failures are rarely “AI problems” first. They usually start as optical energy arriving at the sensor through unintended paths—direct glare, window reflections, dust scatter, fog halos, or IR leakage around an IR-cut mechanism. This chapter turns those risks into testable constraints and a path-based debug method.

Design constraints that must be validated (not assumed)

  • Window + bezel must block off-axis glare: baffles/light-traps should prevent shallow-angle sunlight from hitting sensor-facing surfaces.
  • Reflection return paths must be controlled: internal double-reflection from the window must not re-enter the lens as a “fake scene.”
  • IR-cut state must be deterministic: day/night transitions must not cause unpredictable IR leakage or focus/MTF shifts.
  • Contamination must be survivable: fingerprints/dust should not push black level and flare beyond what the pipeline can tolerate.
  • Fog/rain must be observable: scattering-driven SNR loss should be detectable via metrics, not discovered as rising FRR in the field.
  • Temperature drift must be bounded: lens focus shift and window stress effects must not collapse ROI contrast or depth confidence.

Six mandatory scenarios (each maps to measurable observables)

Each scenario below includes a minimum evidence set. The goal is to detect the optical failure mode before it becomes a security or user-experience failure.

Mandatory scenario What to measure (minimum) Typical failure signature First suspects (path-based)
1) Sun into window
direct glare
Histogram saturation ratio; black-level drift;
depth confidence / invalid depth ratio.
Washed ROI; depth holes; frame-to-frame score variance spikes. Window internal reflections; lens barrel reflections; missing baffle / light-trap.
2) Backlit face
strong side + back
ROI SNR; exposure/gain log trend;
embedding score stability over time.
Same user produces drifting match scores; FRR increases around sunrise/sunset. Stray light entering at angle; AE/AGC oscillation induced by flare.
3) Specular return
glass/metal nearby
Depth confidence map; multipath/scatter indicator;
face-edge depth temporal std.
“Phantom near surface”; edge shimmer; depth instability near boundaries. Return path from window → lens → sensor; reflective bezel; uncontrolled IR illumination geometry.
4) Fog / dew
scattering medium
Scatter metric (halo/low-frequency flare); ROI SNR;
ToF/pattern quality indicator.
Contrast collapses; depth confidence drops; false rejects increase after weather changes. Window coating/material; enclosure sealing; lack of heater/vent; optical surface wetting.
5) Dust / fingerprints
contamination
Black-level offset drift; flare/veiling glare index;
depth invalid ratio trend.
“Gray haze” appearance; liveness cues weaken; stable failures after cleaning events. External window surface; internal dust deposition; poor gasket design creating dust path.
6) Day↔Night transition
IR-cut state
IR channel leakage indicator; black-level / color shift;
focus/MTF proxy (edge sharpness metric).
Works at night but fails in day (or inverse); unpredictable score shift after state change. IR-cut filter mechanics/spec; window spectral behavior; misalignment causing IR leak path.
Fast rule: if FRR or depth confidence changes with time-of-day or weather, treat the root cause as an optical path problem until the six scenarios above are proven stable by metrics. A “path diagram + metric evidence” closes the loop faster than subjective visual judgement.
Figure F5 — Optics / Stray-Light Paths (Outdoor Validation) Enclosure (front window + internal light control) Glass Window outer / inner Baffle light trap Lens Barrel lens group IR-cut state Image/Depth Sensor Pixel Array unwanted reflection return IR leak / state mismatch scatter (fog/dust) 1 window 2 baffle 3 barrel 4 IR-cut 5 sensor 6 scatter Legend valid rays reflection return IR leak path
F5 visualizes how outdoor failures map to specific optical paths: direct glare, reflection return, IR leakage, and scattering. Use this together with the six mandatory scenarios table to close the “symptom → evidence → path → fix” loop.
Cite this figure #fig-f5 ICNavigator — “Face Access Controller”, Figure F5 (Optics / Stray-Light Paths)

H2-6. AI SoC / NPU Pipeline (Preprocess → Embedding → Match → Policy)

The on-device recognition stack should be treated as a real-time pipeline. Reliability depends on latency determinism, thermal stability, and memory bandwidth control, plus auditable outputs (policy decisions and logs). This chapter describes the pipeline as an engineering system: measurable stages, bounded resources, and observable failure signatures.

Pipeline stages (engineering view)

  • Ingress: capture / decode / timestamp the frame; establish ROI and privacy constraints early.
  • Preprocess: resize, normalize, rectify, mask regions; keep memory copies minimal.
  • Detect + Align: find face ROI; align to canonical pose; reject low-quality frames by metrics.
  • Embedding: run feature extraction on NPU; output a vector with confidence metadata.
  • Match: compare against encrypted template store outputs; apply thresholds and anti-replay logic.
  • Policy: decide allow/deny/step-up; apply privacy masking and event logging rules.
  • Output: drive relay / OSDP / Wiegand / secure channel; record audit trail.

Latency budget table (targets + over-budget symptoms)

Targets below are design goals for interactive door access. Values should be tuned by product constraints, but the structure is stable: each stage needs its own timer and its own symptom mapping.

Stage Target (ms) Over-budget symptom First evidence to check First fix direction
Capture / Ingress 8–12 Inconsistent response; occasional “stalls” when multiple faces appear. dropped_frame_count + ingress_queue_depth Reduce copies; cap input FPS; enforce ROI early.
Preprocess 6–10 Latency drift after updates; CPU load spikes; frame jitter increases. preproc_ms + DDR_bw_est Fuse ops; use zero-copy buffers; minimize format conversions.
Detect + Align 10–18 Queue grows in busy periods; recognition becomes “late” but still correct. det_align_ms + roi_area_ratio ROI gating; limit max faces; early reject low-quality frames.
Embedding (NPU) 18–35 Heat-triggered slowdowns; FRR rises under thermal throttle due to timing/AE coupling. embed_ms + thermal_throttle_event Thermal headroom; lower duty; model quantization; schedule load.
Match 3–8 Occasional incorrect reject under load; audit logs show retries/timeouts. match_ms + template_read_retries Cache hot templates; optimize secure storage access; batch comparisons.
Policy + Decision 2–6 Allow/deny inconsistencies across identical inputs due to missing quality gates. policy_path_id + quality_gate_flags Make gates explicit; separate “quality fail” from “identity fail”.
I/O Output 5–12 Decision is fast but unlock is late; relay/OSDP timing variance. io_ms + bus_retry_count Prioritize I/O task; debounce; verify supply margin for relay.

Resource constraints to enforce (what keeps the pipeline deterministic)

  • Thermal: throttle events must be logged and correlated with stage timers; otherwise FRR drift is misdiagnosed.
  • DDR / bandwidth: avoid extra frame copies; control intermediate tensor sizes; keep ROI tight and stable.
  • ROI + “sub-stream” concept: crop/scale policies must be explicit so busy scenes do not explode compute cost.
  • Privacy masking: apply masking before recording or exporting frames; log policy decisions without leaking raw content.
Debug shortcut: when users report “sometimes slow” or “fails when crowded”, check the three coupled signals first: stage timers, thermal throttle, and queue depth. If those are stable, investigate optics/illumination quality gates next.
Figure F6 — Edge Pipeline (Preproc → Embedding → Match → Policy) Real-time pipeline (stage timers + quality gates) Input Frame + TS Preprocess Resize/Norm Detect Face ROI Align Canonical Embedding NPU Tensor Match Threshold Policy + Audit (deterministic decisions + traceable logs) Policy Engine Allow / Deny / Step-up Audit Log stage_ms • gates • reason Secure Store Templates + Keys Access Output Relay / OSDP Privacy Mask pre-log ROI Gate cap faces DDR / BW avoid copies Thermal throttle events
F6 makes the edge AI stack auditable: stage timers define deterministic latency, ROI and privacy gates control cost and exposure, and policy output is tied to secure templates and an audit log for traceable decisions.
Cite this figure #fig-f6 ICNavigator — “Face Access Controller”, Figure F6 (Edge NPU Pipeline & Policy)

H2-7. Template & Identity Storage: Secure Element, Crypto, Anti-Rollback

A face access controller is only as trustworthy as its identity store. The design goal is simple: templates, private keys, and anti-rollback state must never exist as plaintext at rest, and cloning or rollback must produce detectable, auditable signals. This chapter defines a storage tier strategy for Secure Element (SE/TPM), TEE, and encrypted storage (eMMC RPMB / encrypted partitions).

Objects that must never land in plaintext

  • Face template / embedding vectors: store only encrypted blobs; any decode must be bound to device trust state.
  • Template KEK / key-wrapping keys: non-exportable; generated and used inside SE/TPM only.
  • Device identity private keys (TLS / signing): non-exportable; SE performs sign/handshake without key release.
  • Anti-rollback state (monotonic counter, sealed version): must be write-protected against rollback (SE counter or RPMB authenticated writes).
  • Attestation / audit signing keys: non-exportable; used only to sign measured boot + policy state for non-repudiation.
Practical rule: if any of the above can be recovered by reading a file system image, the system is clonable by design. Encryption without device binding does not prevent template transplant.

Storage tiers and what each one is allowed to do

Tier Best used for Must NOT be used for Key property
Secure Element / TPM Non-exportable keys; device identity; template KEK; monotonic counter; signing measured state. Bulk template storage; high-rate logs; anything requiring frequent large writes. Keys never leave; hardware-backed counter / sealing.
TEE (Trusted OS) Confidential processing; unwrap DEKs; secure match policy; isolate biometric operations from rich OS. Assuming persistence without secure storage; keeping long-term keys outside SE. Isolated execution; depends on secure boot chain.
eMMC RPMB Authenticated, replay-protected small data: sealed version, counters, critical config, audit anchors. Large template sets or high-frequency telemetry. Authenticated writes; anti-replay by design.
Encrypted FS / partition Encrypted template blobs; certificates (public); audit logs (with signatures); policy cache. Storing secrets without binding (e.g., raw DEK in file); relying on encryption without RoT. Confidentiality only unless bound to device keys.

Anti-rollback / anti-clone: three detection signals (with evidence hooks)

  • Monotonic counter: a strictly increasing boot/version counter stored in SE or RPMB. Evidence: boot_version_counter, fw_rollback_detected.
  • Device binding: template blobs are encrypted with a DEK that is wrapped to a device-unique KEK in SE/TPM (or sealed to measured boot state). Evidence: template_unwrap_fail, device_bind_id.
  • Attestation: measured boot hash + policy version signed by a non-exportable key to prove runtime state. Evidence: measured_boot_hash, attest_quote_id.
Recommended audit minimum: for every allow/deny decision, log (policy_version, quality_gate_flags, template_version, stage timers, device_bind_id) and anchor the record with a signature or hash chain so that offline operation remains accountable.
Figure F7 — Template / Key Storage Layers (SE / TEE / RPMB / Encrypted FS) App / Policy Layer Policy Version + Decision Log TEE (Confidential Processing) Unwrap DEK Secure Match Encrypted FS / Partition Template Blob encrypted only Certs (Public) chain / pinning Audit Log signed / chained eMMC RPMB (Authenticated) Sealed Version State Secure Element / TPM (Keys never leave) Template KEK TLS / Sign Key Monotonic Ctr wrap / seal sign / attest Key idea: template blobs may live in encrypted storage, but the unwrap key (KEK) and counters must be non-exportable and rollback-resistant.
F7 shows a practical layering strategy: large objects (templates, logs) live in encrypted storage, while non-exportable keys and monotonic counters live in SE/TPM (and/or RPMB-backed sealed state). The system must produce explicit rollback/clone evidence hooks.
Cite this figure #fig-f7 ICNavigator — “Face Access Controller”, Figure F7 (Template & Identity Storage Layers)

H2-8. Interfaces & Door I/O: Wiegand/OSDP, Relays, Tamper, Offline Modes

Door access hardware fails most often at the edges: wiring, surges, ground reference, and inductive loads. This chapter focuses on OSDP (RS-485), Wiegand, relay/lock outputs, and door-contact / REX / tamper inputs, with a repeatable troubleshooting method: symptom → first measurement point → confirm → first fix.

OSDP vs Wiegand: the practical boundary

  • OSDP (RS-485): differential bus, long distance, secure channel optional, but sensitive to termination, common-mode noise, and topology.
  • Wiegand: simple pulse lines (D0/D1), easier wiring but more exposed to EMI, ground shifts, and edge distortion.
  • Engineering rule: if the environment is noisy/outdoor and security matters, OSDP with proper protection is usually the stable path.

Eight common field symptoms → first measurement point

Symptom Likely domain First measurement point What confirms it First fix
Controller resets when relay pulls in Power/ground, relay coil Main rail at MCU/PMIC + relay coil node (scope both) Rail droop / ground bounce synchronized to pull-in edge Separate return path; add hold-up; slow edge/limit current
Unlock causes random freezes Lock back-EMF / backfeed Lock terminals vs controller ground; rail reverse current indicator Large negative/positive spikes coincide with lock release Flyback/TVS near connector; isolate driver; improve return
OSDP drops more on long cable RS-485 reflections A/B differential waveform at controller end Ringing/overshoot; eye closure; CRC retries rise Correct termination + bias; enforce daisy-chain topology
OSDP dies after ESD/EFT event Surge protection / transceiver A/B surge clamp behavior; transceiver fault flags Clamp too slow/far; transceiver enters latch-up or fault state TVS placement; add CMC; consider isolation transceiver
Wiegand reads miss bits / double reads Edge integrity / EMI D0/D1 pulse edges + ground reference at receiver Edge distortion; threshold chatter; ground shift Schmitt input; RC filter; cable shielding; solid ground
Door contact false triggers (rain/noise) DI noise / line supervision Input node before debounce + supervision resistor sense Noise crosses threshold; open/short signature unstable Line supervision; stronger filtering; improve reference/ESD
Tamper alarms without enclosure opening Tamper DI + coupling Tamper input waveform + chassis/earth coupling check Narrow spikes/EMI bursts trigger state changes Hardware debounce; RC + Schmitt; shield/route away from relay
Offline mode logs missing / time skew RTC/event buffering RTC holdover + event queue depth + write-fail counters Queue overflow or atomic-write failures during power loss Bounded queue; atomic commit; signed/chained logs for later sync

Offline modes (device-side only)

  • Policy cache: store policy_version + expiry; deny risky operations when cache is stale.
  • Identity cache: store encrypted template blobs with device binding; refuse unlock when binding check fails.
  • Event buffering: bounded queue with atomic commit and power-loss resilience; avoid “half written” records.
  • Audit continuity: sign or hash-chain events so offline decisions remain verifiable after reconnection.
Field priority: if a door system misbehaves, confirm power integrity + surge return paths before tuning protocol retries. Wiring faults and inductive load spikes are the top source of “random” issues.
Figure F8 — Door I/O + Protection (OSDP / Relay / Tamper / Inputs) OSDP (RS-485) TVS CMC Bias + Term Controller MCU/SoC I/O Exp Edge Protection & Grounds return paths matter Relay / Lock Relay Drv Fly Lock Load Inputs Door Contact REX Button Tamper SW DI Filter / Debounce A/B Ground / surge return path
F8 connects wiring to failure modes: RS-485 protection and termination for OSDP, relay flyback for lock loads, and filtered/monitored digital inputs (door contact, REX, tamper). Robust ground and surge return paths prevent “random” field issues.
Cite this figure #fig-f8 ICNavigator — “Face Access Controller”, Figure F8 (Door I/O & Protection)

H2-9. Power Tree & PoE PD: Cold-Start, Brownout, Hold-up, Thermal

Intermittent face recognition failures and random resets are often power problems in disguise. This chapter turns “fails sometimes” into a measurable power evidence chain across PoE negotiation, cold-start inrush, rail sequencing, load transients, hold-up, and thermal throttling.

Power evidence chain (what to confirm first)

  • PoE budget: confirm class/type and the effective power limit under real cable + switch conditions.
  • Cold-start: inrush or UVLO loops present as repeated boot attempts or partial initialization.
  • Rail health: PGOOD drops, sequencing violations, or brownout interrupts correlate with “sudden reject” events.
  • Load transients: NPU bursts + liveness LED pulses + relay switching create fast dips and ground bounce.
  • Thermal: throttle changes latency; missed deadlines can look like “model accuracy issues.”
Field priority: if failures correlate with LED pulses, unlock events, or peak CPU/NPU usage, verify SoC/NPU rail at the load and PD output rail before changing AI thresholds.

Four must-log power event fields (minimum)

Field Definition & trigger How to interpret in the field
brownout_count Increment on PMIC/MCU brownout interrupt or PGOOD drop; include timestamp. Rising count without obvious mains loss indicates transients, current limit, or poor return path.
last_reset_reason POR / WDT / UVLO / thermal / software; store the last cause across boots. WDT dominates: check latency budget + thermal throttle; UVLO dominates: check inrush/PoE limit/transients.
poe_class_power_limit Record PoE class/type and effective system power limit after negotiation. Low limit on certain ports/cables commonly causes “LED on → reject or reboot.”
thermal_throttle_state 0/1/2 or target frequency; derive from NTCs, SoC sensors, and PD thermal events. Summer/outdoor failures often map to throttle → inference latency over budget → higher reject rate.
Recommended add-ons (optional): pgood_drop_count, npu_peak_current_est, led_pulse_peak_mA, rail_min_mv. These turn “maybe power” into a clear diagnosis.

Cold-start and hold-up: what “stable” looks like

  • Cold-start: no repeated UVLO loops; rail rise order matches the SoC + sensor requirements; PGOOD stays asserted through LED enable.
  • Hold-up: on cable unplug or PoE drop, there is enough energy to complete an atomic event record and shut down cleanly.
  • Transient immunity: LED pulses and NPU bursts do not pull the SoC rail below the brownout threshold.
Figure F9 — Power Tree (PoE PD → Rails → Loads) + Evidence Hooks PoE Input PD Controller class / limit eFuse / Hot-swap inrush / OCP Hold-up Cap clean shutdown DC/DC Rails Buck / LDO SoC / NPU Domain Core Rail DDR / Bandwidth burst load Sensor / AFE Domain Depth / IR AFE / Timing Illumination Domain LED / VCSEL Drv NTC / Thermal throttle Door I/O Domain RS-485 Relay / DI Log: brownout_count • last_reset_reason • poe_class_power_limit • thermal_throttle_state
F9 ties field symptoms to power domains: PoE negotiation and effective power limit, cold-start/inrush control, rail sequencing, transient loads (NPU bursts + illumination pulses + relay actions), hold-up behavior, and thermal throttling with mandatory event fields.
Cite this figure #fig-f9 ICNavigator — “Face Access Controller”, Figure F9 (Power Tree & PoE PD Evidence)

H2-10. Security of Firmware & Communications: Secure Boot, TLS, Debug Lockdown

Device security for a face access controller is defined by three chains: boot trust (what code is allowed to run), update trust (how new code is installed safely), and communication trust (how control and audit data are protected). This chapter keeps scope on-device: secure boot, signed updates with rollback protection, TLS, debug lockdown, and certificate lifecycle.

Minimum security baseline (10 items, verifiable)

  • 1Secure boot enabled
    boot_verified=1
  • 2Measured boot hash recorded
    measured_boot_hash
  • 3Signed firmware update required
    update_sig_ok/fail
  • 4A/B slots + commit policy
    slot_active/pending
  • 5Anti-rollback enforced
    fw_rollback_detected
  • 6Unique device identity
    device_cert_serial
  • 7TLS for management plane
    tls_version/cipher
  • 8Credential lifecycle policy
    cert_expiry_days
  • 9Debug ports locked down
    debug_locked=1
  • 10Rate limiting + lockout
    lockout_state
Best practice: bind the baseline to an attestation record so that maintenance actions (template enrollment, policy changes, and updates) produce verifiable evidence of the running firmware and security posture.

Boot and update chain: what must never be bypassed

  • ROM → Bootloader: signature verification is the first gate; failure must not fall back to an unsigned path.
  • Bootloader → OS/TEE: measured boot hash should be captured before high-level services start.
  • Update pipeline: verify signature → write inactive slot → boot as “pending” → commit only after health checks.
  • Rollback protection: monotonic version counter must advance only forward and be checked on every boot.

Communications security: keep control and audit protected

  • Management traffic: enforce TLS; prefer mutual authentication where feasible.
  • Key storage: device identity private key must be non-exportable (SE/TPM).
  • Certificates: track expiry, rotation events, and pinning state to avoid silent “works but insecure” behavior.
Debug lockdown principle: maintenance is allowed, but it must be auditable and rate-limited. Any debug enablement should create a signed event record.
Figure F10 — Boot Trust + Update Trust + TLS (On-Device Scope) ROM verify sig Bootloader measure hash OS / TEE policy gates App access logic Signed Update + A/B Slots Slot A active Slot B pending Commit after health checks rollback Secure Element / Key Vault pubkey verify counter anti-rollback TLS (Management / Audit) Client Device TLS Debug Lockdown JTAG Locked UART Locked Evidence: boot_verified • measured_boot_hash • slot_state • fw_rollback_detected • tls_version • debug_locked
F10 shows the on-device trust chains: ROM and bootloader verification, measured boot, signed A/B updates with commit and rollback protection, secure element key vault (verification keys and monotonic counters), TLS-protected management/audit traffic, and debug port lockdown.
Cite this figure #fig-f10 ICNavigator — “Face Access Contro

H2-11. Validation & Field Debug Playbook (Symptom → Evidence → Isolate → Fix)

This playbook turns “works sometimes” into repeatable evidence. Each symptom starts with two measurements (one image/score/log metric + one electrical/optical/waveform metric), then provides discriminators, a short isolation sequence, and a first fix that stabilizes the system before deeper tuning.

EEAT anchor rule: every diagnosis must end with a stored record: timestamp + environment tag + symptom_id + 2_measurements + first_fix_applied.

Field kit (minimal) + where evidence comes from

  • Optical evidence: histogram/saturation ratio, ToF confidence distribution, NIR illumination level (or IR-frame mean/variance).
  • Electrical evidence: LED pulse current waveform, SoC/NPU rail droop at the load, RS-485 differential waveform and common-mode movement.
  • Mandatory event fields: brownout_count, last_reset_reason, poe_class_power_limit, thermal_throttle_state.
  • Security/integrity fields: template_version_counter, template_verify_ok/fail, fw_rollback_detected, debug_locked.
  • OSDP/I/O fields: osdp_crc_err, osdp_timeout, relay_event_ts.
Don’t skip the “two-point” rule: one metric alone (only score, only waveform, only logs) produces guesswork. The fastest isolations come from correlating two signals in the same time window.

Common “first-fix” parts (example MPNs)

The following are example parts commonly used in face access controllers. Selection depends on voltage/current, isolation level, EMC class, temperature, availability, and compliance needs.

Area Function Example MPNs (pick per design constraints)
PoE PD IEEE 802.3af/at PD interface TI TPS2373-4, TI TPS2372-4, Analog Devices/LT LTC4267
Hot-swap / eFuse Inrush limiting, OCP/OVP TI TPS25947, TI TPS2595, Analog Devices/LT LTC4365 (surge stopper use cases)
Buck DC/DC Core rails regulation TI TPS62130, TI TPS62840, Analog Devices ADP2302
Supervisor Reset/PGOOD monitoring TI TPS3808, Maxim/ADI MAX16054
NIR LED driver Constant-current pulse drive TI TPS92515, TI TPS92662, Analog Devices LT3477
Flash/VCSEL pulse High-peak strobe (use-case dependent) TI LM3644, Analog Devices MAX25601
ToF sensor Depth measurement ST VL53L5CX, ams OSRAM TMF8801
Secure element Key storage, identity, counters Microchip ATECC608B, NXP SE050, Infineon OPTIGA Trust M (SLS32AIA)
RS-485 transceiver OSDP physical layer TI SN65HVD72, Maxim/ADI MAX13487E
Isolated RS-485 Noise immunity / ground shift Analog Devices ADM2587E, TI ISO1410 + external transceiver
RS-485 TVS Surge/ESD clamp for A/B lines Littelfuse SM712, ST SM712 (family variants)
Relay driver Relay coil drive (with flyback) TI ULN2803A, Toshiba TD62083APG
Thermal sensor NTC feedback for throttling Murata NCP18XH103 (10k NTC family), TDK EPCOS B57891M0104J000

SOP Cards (6 top symptoms)

1) Daylight outdoor false rejects ↑

First 2 measurements
  • Image metric: saturation ratio / histogram occupancy; or ToF confidence distribution.
  • Electrical metric: LED/VCSEL pulse current waveform (peak, width, droop) at the driver sense point.
Discriminator (quick read)
  • Saturation ↑ and ToF confidence ↓ → strong ambient / glare dominates the ROI.
  • LED pulse peak cannot reach target → power limit, driver thermal limit, or rail transient.
  • Confidence collapses only at certain angles → stray light / window reflections.
Isolate
  • Tag environment: sun direction + distance band + window contamination state.
  • Correlate ToF confidence dip with LED pulse droop and poe_class_power_limit.
  • Repeat with illumination disabled to separate “ambient-only” from “illumination interaction”.
First fix
  • Stabilize illumination pulse: verify driver peak current; reduce duty to protect peak if PD power is limited.
  • Clamp AE/AGC extremes in outdoor mode to avoid unstable feature extraction.
  • Mitigate glare path (baffle/blackening) before changing liveness thresholds.
Example parts: NIR pulse driver TPS92515 / TPS92662; ToF sensor VL53L5CX / TMF8801.

2) Night recognition unstable

First 2 measurements
  • Optical metric: NIR level (or IR-frame mean/variance over a fixed ROI).
  • Control metric: exposure/gain curve stability (jitter, clipping, hitting limits).
Discriminator
  • NIR stable but exposure/gain oscillates → timing/sync or processing load causes control loop instability.
  • NIR drifts with time → LED thermal droop or driver limiting behavior.
  • Exposure stable but match confidence drifts → alignment/ROI instability or motion blur.
Isolate
  • Lock illumination pulse and compare two fixed exposure presets (short vs long).
  • Check thermal_throttle_state transitions vs confidence drops.
  • Verify pulse timing relative to frame trigger (no “slip” between lighting and capture).
First fix
  • Switch to a night profile with bounded gain steps and stable pulse timing.
  • Reduce peak thermal load (lower pulse repetition or shorten strobe) to avoid driver/SoC throttling.
Example parts: thermal NTC NCP18XH103; LED driver LM3644 (strobe-class use cases).

3) Random reboot / occasional reset

First 2 measurements
  • Electrical: SoC/NPU rail droop at the load (min V, transient depth, duration).
  • Log: poe_class_power_limit, last_reset_reason, brownout_count in the same time window.
Discriminator
  • Reset reason = UVLO + droop aligned → power transient/inrush/current limit.
  • Reset reason = WDT + throttle transitions → latency deadline miss from thermal or memory contention.
  • Resets coincide with relay action → kickback/ground bounce coupling into rails.
Isolate
  • Force illumination off; retest to separate “illumination pulse” contribution.
  • Force NPU load to a steady pattern; observe if droop disappears.
  • Repeat on a known-good PoE port/cable to detect negotiation/power-limit variability.
First fix
  • Stagger peaks: avoid simultaneous LED pulse + NPU burst + relay switching.
  • Increase robustness: tune inrush and OCP; verify hold-up capacity for clean event logging.
  • Improve rail supervision to capture PGOOD drops before data corruption.
Example parts: PD TPS2373-4; eFuse TPS25947; supervisor TPS3808.

4) Liveness false accept/reject (misclassification)

First 2 measurements
  • Score metric: liveness score distribution (histogram by environment bucket).
  • Optical metric: glare indicator (saturation ratio / ToF confidence anomalies / IR backscatter signature).
Discriminator
  • Score distribution shifts by environment → optics/illumination/sync is dominating features.
  • Only specific angles/materials fail → reflection/backscatter path or window contamination.
  • Scores stable but final decision varies → policy gating / timing window / load-induced jitter.
Isolate
  • Bucket tests: indoor, outdoor shade, outdoor direct, wet window.
  • Log score histogram + saturation ratio simultaneously for each bucket.
  • Confirm illumination timing and current pulse stability.
First fix
  • Stabilize the optical condition first (reduce glare/backscatter and pulse jitter).
  • Use environment-aware policy gates (bounded threshold adjustments) only after optics is stable.
Example parts that improve stability indirectly: LED driver TPS92662; ToF sensor VL53L5CX.

5) Template missing / rollback / identity mismatch

First 2 measurements
  • Integrity: template_version_counter (monotonic) + binding ID.
  • Storage verify: signature/CRC/Hash result and last successful commit timestamp.
Discriminator
  • Counter goes backward → rollback/clone/slot-switch or counter not anchored in secure storage.
  • Verify fails but counter stable → non-atomic write, brownout during commit, or media errors.
  • Only after updates → update chain commit/rollback policy issue.
Isolate
  • Correlate verify failures with brownout_count around enrollment/commit.
  • Check fw_rollback_detected and slot state changes.
  • Confirm template encryption key is non-exportable and device-bound.
First fix
  • Make template writes atomic (journal/dual-copy + commit marker) and power-fail safe.
  • Anchor counters/keys in secure element; enforce anti-rollback at boot and at template load.
Example parts: secure element ATECC608B / SE050 / SLS32AIA.

6) OSDP link down / relay interference

First 2 measurements
  • Waveform: RS-485 differential waveform + common-mode movement (during traffic and during relay switching).
  • Event: OSDP CRC/timeouts (osdp_crc_err, osdp_timeout) aligned with relay_event_ts.
Discriminator
  • CRC spikes at relay transitions → kickback coupling / return-path problem.
  • Severe reflections / ringing → termination or wiring topology issue.
  • Only long cable / outdoor → surge/ESD/ground shift; isolation may be required.
Isolate
  • Repeat with relay disabled; if errors vanish, focus on kickback + ground coupling.
  • Check TVS clamping activity and common-mode choke heating (if present).
  • Try isolated RS-485 to confirm ground shift as the root cause.
First fix
  • Add robust line protection (RS-485 TVS + proper termination) and reduce loop area of relay paths.
  • Use isolated RS-485 when ground potential differences are expected.
  • Improve flyback handling: diode path placement and coil suppression to stop rail injection.
Example parts: transceiver SN65HVD72 / MAX13487E; isolated ADM2587E; RS-485 TVS SM712; relay driver ULN2803A.

Figure F11 — Decision Tree (Symptom → Evidence → First Fix)

Figure F11 — Field Debug Decision Tree (Two Measurements First) Symptom Two Measurements First Fix Daylight FRR ↑ Outdoor strong light Histogram/ToF confidence LED pulse current waveform Stabilize pulse peak Clamp AE/AGC extremes Night unstable Low light / strobe NIR level (ROI mean) Exposure/gain stability Bound night profile Reduce thermal peaks Random reboot UVLO/WDT SoC rail droop @ load PoE limit + reset reason Stagger peak loads Tune inrush/OCP Liveness errors FP/FN drift Score distribution Glare/backscatter metric Fix optics & timing Then bounded gates Template rollback lost/mismatch Monotonic counter Verify (sig/CRC) result Atomic commit SE-bound counters OSDP / relay noise CRC/timeouts RS-485 waveform + CM CRC aligned to relay ts TVS/termination Isolated RS-485 Record: brownout_count • last_reset_reason • poe_class_power_limit • thermal_throttle_state • template_version_counter • osdp_crc_err
F11 enforces the “two measurements first” rule: one metric from image/scores/logs plus one electrical/optical/waveform metric, then a first fix that stabilizes the system before deeper tuning.
Cite this figure #fig-f11 ICNavigator — “Face Access Controller”, Figure F11 (Field Debug Decision Tree)
Acceptance checks: each symptom includes First 2 measurements + Discriminator + Isolate + First fix, and each fix can be tied to a log record or waveform capture.

Request a Quote

Accepted Formats

pdf, csv, xls, xlsx, zip

Attachment

Drag & drop files here or use the button below.

H2-12. FAQs ×12 (Evidence-based; mapped to chapters)

Each answer stays inside this page boundary and points back to the measurable evidence chain (histograms/confidence, pulse current, rail droop, RS-485 waveform, counters, and update/boot checks).

Outdoor sunlight causes sudden FRR spikes—optics flare or IR illumination saturation?
If FRR spikes track sun angle and persist with illuminator off, suspect flare/stray-light paths (window, baffles, IR leakage). If they appear only when the illuminator is on and the pulse current clips or droops, suspect illumination saturation or power limiting. Measure saturation ratio/ToF confidence + LED pulse current. First fix: stabilize pulse (e.g., TPS92662/TPS92515) and reduce glare paths. Mapped to: H2-5 / H2-4
Liveness passes but wrong person accepted—embedding drift or template binding issue?
If false accepts rise across many users right after a model/pipeline change, suspect embedding drift or policy thresholds. If errors correlate with template import, board swap, or identity migration, suspect template binding/anti-clone logic. Measure embedding similarity distribution + template_version_counter/device binding (attested key). First fix: pin model version, enforce device-bound templates in a secure element (ATECC608B/SE050). Mapped to: H2-6 / H2-7
Works at night but fails at dusk—auto-exposure curve or NIR duty control?
Dusk is the “control-loop trap”: ambient light changes fast and the exposure curve can oscillate while NIR duty ramps. If exposure/gain hunts or clips at the transition, tune AE hysteresis and ROI constraints. If NIR pulse amplitude/duty collapses as temperature rises, the driver is throttling. Measure exposure/gain stability + NIR pulse current/duty. First fix: bound the curve and cap thermal peaks. Mapped to: H2-4 / H2-6
After firmware update, recognition changed—model versioning or calibration overwritten?
First separate “pipeline change” from “data corruption.” Check model/pipeline version hash and latency budget; then verify calibration/template partitions were not overwritten and counters didn’t roll back. Measure model version + template/calibration monotonic counter and verify status. First fix: signed updates with A/B slots and anti-rollback, and protect calibration/template storage behind SE-bound keys (SE050/OPTIGA Trust M). Mapped to: H2-6 / H2-10 / H2-7
Device reboots when relay switches—ground bounce or lock kickback?
If resets align with relay_event_ts, check two things: SoC rail droop at the load and relay coil kickback/return-path injection. Large kickback spikes or ground bounce can trip UVLO or corrupt logic even when average power looks fine. Measure rail droop + coil/kickback waveform. First fix: tighten flyback paths (ULN2803A + diode/snubber), separate returns, and add eFuse/current limiting (TPS25947). Mapped to: H2-8 / H2-9
OSDP intermittent only with long cable—termination, biasing, or surge protection?
Long cables amplify reflections, common-mode shifts, and surge events. If the RS-485 waveform shows ringing/undershoot, fix termination and biasing first. If CRC/timeouts spike during relay action or outdoor events, add robust TVS/clamp and filtering. Measure RS-485 differential + common-mode movement, and correlate with osdp_crc_err/osdp_timeout. First fix: SM712 TVS + correct termination; use isolated RS-485 (ADM2587E) when ground shift exists. Mapped to: H2-8
Templates disappear after power loss—storage integrity or rollback protection triggered?
If template_verify fails without counter rollback, suspect non-atomic writes or power-fail during commit—correlate with brownout_count and last_reset_reason. If the monotonic counter rolls back or fw_rollback_detected asserts, anti-rollback logic likely rejected the state. Measure template_version_counter + verify result around power-loss events. First fix: journaled/atomic commits, hold-up for clean writes, and store counters/keys in a secure element (ATECC608B/SE050). Mapped to: H2-7 / H2-9
ToF depth looks noisy near glossy surfaces—multipath or emitter timing?
Glossy surfaces often create multipath and backscatter that drop ToF confidence in angle-dependent patterns. If noise spikes follow surface angle/material even with stable timing, it’s multipath/stray light (optics). If noise correlates with frame trigger drift or modulation slip, it’s timing/sync. Measure ToF confidence/noise vs angle, plus emitter pulse timing/current stability. First fix: reduce glare paths (baffles/window treatment) and lock illumination-to-frame sync. Mapped to: H2-3 / H2-4 / H2-5
PoE shows enough power but device throttles—thermal vs power classification limit?
If thermal_throttle_state rises and performance drops gradually, it’s thermal headroom (SoC/NPU, driver, enclosure). If poe_class_power_limit asserts or PD current caps during peaks, it’s a power budget/classification ceiling. Measure temperature/throttle flags + poe_class_power_limit and rail droop. First fix: reduce coincident peaks (NIR pulse + NPU burst), improve heat path, and verify PD/class (e.g., TPS2373-4) and inrush/eFuse behavior. Mapped to: H2-9
Secure boot enabled but malware still runs—verified boot vs measured boot gap?
Measured boot only records what ran; verified boot blocks unsigned code. Malware can run if verification doesn’t cover OS/apps/config, or if debug/update paths remain open. Measure where signature checks occur in the boot chain, and confirm debug ports are locked and updates require signatures + anti-rollback. First fix: enforce verified boot end-to-end, disable JTAG/UART in production, and bind device identity/keys in a secure element (OPTIGA Trust M/ATECC608B). Mapped to: H2-10
Face match latency doubles after enabling encryption—CPU offload or key store bottleneck?
Break latency by stages: capture → preprocess → infer → match → encrypt/Tx. If only the encrypt/Tx slice grows and CPU load spikes, crypto is on the CPU (no acceleration/session reuse). If stalls align with secure element transactions, the key store path is blocking. Measure per-stage latency + CPU utilization and SE call timing. First fix: enable HW crypto/offload and session resumption, and reduce synchronous SE operations (SE050/ATECC608B) in the hot path. Mapped to: H2-7 / H2-6
How to rotate certificates without bricking offline doors?
Use a staged, overlap strategy: keep old+new certs valid together, install the new trust chain first, then switch identities after handshake success is confirmed. Offline devices need a local recovery path and anti-rollback-safe state transitions. Measure TLS handshake failures and cert state machine progress, and record monotonic counters for each stage. First fix: dual-slot cert store + timed cutover, with device identity anchored in SE (SE050/OPTIGA Trust M) and an offline fallback procedure. Mapped to: H2-10 / H2-7 / H2-8