Skip to content
View chrislafave's full-sized avatar
  • Portland, Oregon, United States, Earth, Solar System, Milky Way Galaxy, Laniakea Supercluster. :D

Block or report chrislafave

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
chrislafave/README.md

Hi there 🐸

Project Portfolio β€” Chris LaFave

github.com/chrislafave Β· chris.r.lafave@gmail.com Β· linkedin.com/in/chris-lafave

Current, self-directed bench work. Full write-ups, schematics, firmware source, and photos in the linked repos.


Project 1 β€” ESP32-S3 Four-Channel Bench Data Logger (2025 – Present)

Problem. I needed long-duration logging of low-frequency analog signals on the bench (thermal drift, supply rail sag, sensor output) without tying up an oscilloscope, and wanted results viewable from another room. πŸ€”

Approach.

  • Analog front end: ADS1115 16-bit ADC, four single-ended channels, RC anti-alias filtering, protective input clamping.
  • Controller: ESP32-S3 running ESP-IDF, firmware in C, sampling and networking split across FreeRTOS tasks with a queue between them.
  • Interfaces: on-board HTTP server with a live-updating chart, MQTT publish to a local broker, CSV to microSD as the fallback record.
  • Hardware: 2-layer PCB designed in KiCad β€” separated analog and digital ground pours joined at a single point, decoupling cap placed at each supply pin.

Verification.

Test Method Result
DC accuracy Compared against calibrated reference, 0–4.096 V in 0.25 V steps Β±0.3% of reading
Noise floor Shorted input, 10,000 samples 1.2 LSB RMS
Wi-Fi dropout recovery Forced AP power cycle Reconnect and resume logging in under 8 s, no sample loss to SD

What I learned. The first board revision shared a ground pour and placed the switching regulator too close to the ADC input traces β€” the noise floor was about four times worse. Relocating the regulator and reworking the analog return path fixed it.

My project files. Schematic and layout (KiCad), firmware source, bring-up checklist, test procedure and results, photos of both board revisions.


Project 2 β€” 2.4 GHz Antenna Selection and Matching Study (2025)

Problem. Which antenna option actually performs best on a small ESP32 board, and how much does matching matter in practice? πŸ€”

Approach. Built one target board with three populated antenna options (PCB trace, ceramic chip, external whip via U.FL/SMA). Measured return loss on each, tuned a pi-network match on the chip antenna, then ran repeatable range tests: fixed AP location, marked distances, 500 pings per point, logging RSSI and packet loss.

Results. Matching improved usable range by roughly 35% over the untuned chip antenna; the external whip outperformed both PCB options by a further margin, at the cost of an extra connector (what insertion loss? Wut?).

What I learned. The mechanical and BOM cost of a connector is a real trade-off against RF gain β€” the "best" antenna depends on the enclosure and product volume, not just S11. Fixture repeatability dominated the measurement until positions were clamped and marked.

Artifacts. Return-loss plots, matching network design notes, range-test data and logging script.


Project 3 β€” Linear Bench Supply Repair and Characterization (2024)

Problem. A dead 0–30 V linear bench supply, no output, no documentation beyond a service manual. πŸ€”

Approach. Traced from the output back through the regulation loop, isolated a shorted pass transistor and two out-of-spec filter capacitors, sourced replacements, and reworked the board. Characterized the repaired unit rather than assuming it was fine.

Results. Load regulation 0.02% from no-load to 2 A; output ripple reduced to 4 mV p-p, measured with a short-ground-spring probe.

What I learned. Probe technique determines what you measure β€” an early ripple reading came in roughly 3x high because of loop-inductance pickup in the probe ground lead. The corrected measurement and the mistake are both documented.

Artifacts. Fault-isolation notes, before/after ripple scope captures, bill of materials for the repair.

Pinned Loading

  1. ExtIO_HackRF ExtIO_HackRF Public

    Forked from jocover/ExtIO_HackRF

    HDSDR ExtIO for HackRF

    C++

  2. hackrf hackrf Public

    Forked from greatscottgadgets/hackrf

    low cost software radio platform

    C

  3. i2c-master i2c-master Public

    Forked from joelagnel/i2c-master

    An i2c master controller implemented in Verilog

    Verilog

  4. openarty openarty Public

    Forked from ZipCPU/openarty

    An Open Source configuration of the Arty platform

    Verilog