DIY Electronics
— Building circuits, programming microcontrollers, and making things blinkESP32 Ethernet with LAN8720 — wired beats WiFi for reliability
Automated PCB Testing with Python
After assembling a batch of 50 sensor boards, manual testing was impractical. I built a test fixture with a raspberry Pi and a bed-of-nails jig.
The test jig: spring-loaded pogopins soldered to a carrier board contact the DUT's test points. The pi drives a USB-UART adapter to flash firmware and communicate, and a series of GPIO inputs/outputs verify power rail voltages, LED functionality, and sensor connectivity.
The Python test script runs a sequence: power on, check 3.3V rail, check 5V rail, flash firmware, boot, verify UART hello message, test each LED (via firmware command), verify I2C bus has expected devices, test sensor readings, report pass/fail. Each test took 45 seconds. Yield was 47/50 — two had cold solder joints on the MCU and one had a wrong resistor value. The fixture paid for itself on the first batch.