• 2025-11-05 — Bench Log #8 — Thermal Drift Characterization & Analog Front-End Revision

    Zazie Kanwar-Torge11/05/2025 at 20:01 0 comments

    TL;DR

    Completed thermal drift tests on the analog front-end and added a low-noise bias reference network. Measured temperature-induced variation across the TIA and reverse-biased LED array, then refined firmware compensation coefficients. Updated PCB layout with improved ground plane and shorter sensor routing paths.

    Objectives

    1. Quantify thermal drift of the LED sensor array and TIA under varying ambient temperatures (15–35 °C).
    2. Verify stability of the 2.0 V bias reference after replacing the bench charge-pump network with an integrated precision source.
    3. Validate new Rev A.1 PCB layout for noise reduction and improved sensor-to-amp impedance matching.

    Hardware Revisions

    • Added LM4040-2.048 V precision reference diode to replace the ad-hoc charge pump.
    • Updated feedback path on OPA381: guard trace routed between inverting input and feedback node.
    • Inserted 100 Ω series resistor and 47 pF snubber cap to suppress high-frequency peaking.
    • Expanded analog ground plane and separated digital return near RP2040.
    • Relocated NTC thermistor to sit within 2 mm of LED array for faster thermal response.
    • Replaced LED array ribbon cable with shielded twisted pair (kept total length < 80 mm).

    Test Setup

    • Temperature chamber: improvised 3D-printed enclosure with Peltier and DS18B20 control loop.
    • Reference meter: Keysight 34465A in 100 µA DC range, logging 1 Hz over USB.
    • Bias source: LM4040 through 10 kΩ feed resistor; confirmed 2.047 V ± 0.4 mV across 15–35 °C.
    • Acquisition: RP2040 sampling at 2 kS/s, averaged to 1 Hz effective.
    • Firmware: build v0.4, includes real-time temperature correction term (α = −0.00061 per °C).

    Firmware Changes

    • Added two-point calibration at startup:
      • captures cold baseline (below 20 °C) and warm baseline (above 30 °C)
      • interpolates gain correction factor dynamically
    • Implemented simple moving average filter (32 samples) to reduce micro-fluctuations in low-lux conditions.
    • Display now shows both raw and corrected flux values for debugging.

    Notes

    • Found minor EMI coupling when USB data connected; mitigated by adding 33 Ω series resistors on D+/D− lines.
    • OLED refresh bursts cause brief ADC noise spikes; plan to gate ADC sampling between frame updates in v0.5.
    • Brass encoder detent feels loose — considering a switch to an ALPS EC11E with firmer tactile feedback.

  • 2025-11-04 — Bench Log #7 — Photon Flux Analyzer v2 (PFA v2)

    Zazie Kanwar-Torge11/05/2025 at 19:50 0 comments

    Author: Zazie Kanwar-Torge — Zazie Productions R&D

    Status: early prototype; functional bench unit, firmware alpha v0.3

    TL;DR

    Built and bench-tested the reverse-biased LED sensor front end, tuned the transimpedance amplifier (TIA) for low-light operation, and pushed a first calibration run into the RP2040. The device reads ambient photon flux with useful dynamic range (dark → indoor daylight) and reports stable values on the OLED. Below: hyper-specific test notes, parts, instrument settings, code snippets, and next actions.

    Parts & bench setup (exact)

    • Main MCU: Raspberry Pi RP2040 (bare module) running MicroPython build v1.19 (custom).
    • Amplifier: OPA381 (single-supply low-noise op-amp) in TIA config.
    • Sensor: 10×6 RGB LED matrix (individual LEDs re-wired in reverse bias as photodiodes; single color channel used per test).
    • TIA feedback resistor: R_f = 1.0 MΩ (initial), switched to 470 kΩ and 2.2 MΩ for range tests.
    • Feedback capacitor (stability): C_f = 10 pF (NP0).
    • Bias: constant reverse bias ~-2.0 V (derived from charge pump on test bench; final board uses regulated bias network).
    • Power: USB-C 5V → AP2112K → 3.3 V rail.
    • Display: 128×32 OLED (SSD1306 via I²C).
    • Temp sensor: 10 kΩ NTC (on PCB near LED array).
    • Connectors: 4-pin JST for sensor module, SWD header for programming.

    Bench instruments:

    • Rigol DP832 bench PSU (5V @ 1.5A)
    • Rigol DS1104Z oscilloscope, probes 10:1 (for TIA output and bias switching)
    • Keysight 34465A multimeter (for leakage & reference checks)
    • Fluke 289 for spot checks
    • Rigol LCR for resistor checks
    • ESD work mat and wrist strap

    Ambient test conditions:

    • Dark room (ADR < 5 lux) for dark current tests.
    • Indoors office fluorescent ~300–600 lux.
    • Window daylight ~10k–30k lux (only for linearity checks).