🌈 ESP32-S3 Rainbow: ZX Spectrum Emulator Board! Get it on Crowd Supply →
Teaser Image
atomic14

atomic14

Here's a list of all the videos from my YouTube channel - you can watch them here or pop over to and watch them there.

Want to keep up to date with the latest posts and videos? Subscribe to the newsletter
  Âˇ     Âˇ     Âˇ     Âˇ     Âˇ   Posts  Âˇ   Videos  Âˇ   Tags  Âˇ   Tools  Âˇ   Support

I Turned an ESP32 into a Thermal USB Webcam

Last time I made an ESP32 pretend to be a webcam; this time it’s a real USB UVC cam streaming MJPEG. Then I go further: I bolt on a tiny 32x24 infrared sensor, scale it up to 320x240 with nearest-neighbor or bilinear, JPEG it, and stream it like any normal webcam. Along the way I show why ESP32-CAM won’t work (no native USB), dive into I2C gremlins (run a scanner first, check pull-ups), and fix a flaky 3.3V regulator solder job. Quick hardware tour: onboard 2.2K pull-ups, ME6212 LDO, and an AT32F415 MCU. Audio can wait—today’s all about making thermal...
16 February 2026

Amazon Basics vs SanDisk: I Cut Them Open

I cracked open an Amazon Basics microSD-to-SD adapter (the one I fixed last video) and a branded SanDisk to see what’s actually different inside. Under the microscope the contact geometry is surprisingly different: Amazon uses springy bent pins the card slides under—with a clear fatigue weak point I already snapped—while the SanDisk has staggered-length contacts the card presses down onto, with what looks like heavier gold plating. I’m leaning toward the SanDisk for robustness; shout out to PCBWay for the dev boards, and let me know—A or B?
16 February 2026

SD Card Adapter Repair #electronics

Unable to generate a summary because no transcript was provided. Share the transcript or a brief outline of the video and I’ll craft a concise, author-voiced summary.
16 February 2026

My ESP32S3 Thinks It's a WebCam!

I turned a vanilla ESP32-S3 dev board into a USB UVC webcam that doesn’t use a camera at all—first streaming a static test card, then an animated GIF, and finally a real-time Pong game. The ESP32 pre-decodes GIF frames to RGB, JPEG-encodes them, and streams MJPEG, and for the live game it renders to a framebuffer, JPEG-encodes in ~23 ms, and just about hits 30 fps. There’s room to optimize (dual-core draw/encode), and this approach is great for dashboards, sensor visualizations, or testing video pipelines. Shout out to PCBWay for the boards—they turned out great.
16 February 2026

ESP32-S3 USB UVC "WebCam"

Heat. I say it once over a low hum—then again. Heat.
16 February 2026

Successful Pick and Place!

Just music—my little moment of 'home' for you.
16 February 2026

Why did I fix this?

Quick little teardown and bodge-fix: my scratchy-sounding SD card adapter had a wonky contact pin. I cracked it open, tried to bend it back, promptly snapped it, then lost the bit. So I chopped a resistor leg, soldered it in under the microscope, tweaked the pins for continuity, and slapped it back together. Plugged it in—holy crap, it worked! Not the prettiest fix, and I probably won’t trust it long-term, but that was fun.
16 February 2026

I've got a new toy to play with!

Unable to generate a summary because no transcript was provided. Share the transcript or a brief outline of the video and I’ll craft a concise, author-voiced summary.
16 February 2026

I Spent Hours Debugging My Software…

Quick bench update: I tried to get a 32×24 pixel IR module talking over I2C and it just would not play ball—pull-ups, library swaps, address scans, nothing. First silly mistake was not bridging the I2C jumper. Even after fixing that, still dead. Under the microscope I spotted the real issue: poorly soldered pins on the IC. A quick reflow and some IPA cleanup later, it sprang to life. Moral of the story: if yours won’t talk, check the underside soldering. Project video coming soon.
16 February 2026

Drones and Lasers?

It’s been a while since we’ve done an unbagging, and I’ve clearly been on an AliExpress bender. Big thanks to PCBWay for fueling the chaos. Today’s haul: a pair of tiny ESP32‑C3 OLED modules (no idea why I ordered two, but here we are), a finger pulse/SpO2 sensor, a USB‑C PD trigger with DIP switches that happily serves up 5/9/12/15/20V (1+3 gives 20V—very handy), an INMP441‑compatible MS8625 mic, a surprisingly nice transparent clock with temp/humidity, a couple of rechargeable nightlights that only charge on dumb USB because there are no CC resistors, a laser and matching detector (pew pew!), and,...
16 February 2026

Train Surgery

I take a fun but unbelievably loud battery train and give it some train surgery: measure the 4xAA pack (~6 V), gut the coal car, shoehorn in an 18650 with a charge/protect/boost board set to about 5.5 V, wire it up, sanity-check polarity, and get the wheels turning. Then I tame the racket by putting a potentiometer inline with the speaker, chop some plastic so the knob pokes out, and hot-glue it all in place. Result: rechargeable power, adjustable volume, same charm—minus the living-room headache. (Quick shoutout to PCBWay for the boards.)
16 February 2026

Three ESP32 Rainbow Boards Failed QA — Can we fix them?

I’m assembling another batch of ESP32 Rainbows: PCB house does the boards, UV silkscreen and some parts, and I finish assembly and QA here in Scotland. I run through three QA fails—no sound, dodgy keyboard, and no USB—then fix two: the audio fault was lifted pads on the headphone jack, so I bodged it back with flux and solder (speaker and headphones now work, but it’s a spares board). The no‑USB issue was an ESD protection IC sitting off its pad; I reflowed it on a mini hot plate, cleaned up with IPA, verified continuity, and it now enumerates and...
16 February 2026

Christmas tree train!

Unable to generate a summary because no transcript was provided. Share the transcript or a brief outline of the video and I’ll craft a concise, author-voiced summary.
16 February 2026

Stop Using printf() - Debug ESP32 the Right Way

Right, let’s give this a go. Instead of drowning in printf()s and blinking LEDs, I show how the ESP32-S3’s built‑in USB JTAG lets you hit Debug in the Arduino IDE (or PlatformIO) and actually step through code. We set breakpoints, add watch expressions, use conditional breakpoints, and even edit variables live with a simple FizzBuzz/LED demo. It’s quick, it works, and it beats “works on my machine”—just mind real‑time code and ISRs. Works on ESP32s with native USB.
16 February 2026

I Built My Own ESP32-S3 Board… And It Actually Works!

I finally assembled my super simple ESP32‑S3 dev board—voltage regulator, reset button, three status LEDs (5V, 3.3V, and a GPIO blinker), and all pins broken out. I showed two build methods: stencil + hot-plate reflow (quick, with a few USB bridges to clean up) and full hand-solder under the microscope, complete with the rigorous ‘solid’ test. Soldered the ESP32‑S3 module (skipping the center thermal pad unless you need it), plugged in, got power LEDs, confirmed USB enumeration, flashed a blink sketch, and we’ve got a blinking LED. Next up: turning this basic dev board into something more professional for production....
16 February 2026

It blinking well works!

Unable to generate a summary because no transcript was provided. Share the transcript or a brief outline of the video and I’ll craft a concise, author-voiced summary.
16 February 2026

I Built a 27V PCB to Fix This $3 Display...

I resurrected the LCD writing tablet I blew up last time by designing a drop‑in PCB that generates a 27 V pulse to clear the screen. It’s a regulated dual‑joule‑thief variant with two magnetically coupled 20 µH inductors (soldered opposite ways), a 27 V zener for regulation, inrush limiting, and a few caps and a bleed resistor. I assembled it with PCBWay boards, tried both Voltera‑printed paste and manual SMD under the microscope, salvaged the blister button, and profiled it on the Nordic PPK—peaks ~18–19 mA, ~7 mA while regulating—totally coin‑cell friendly. It fits with a bit of mechanical fiddling,...
16 February 2026

CH32V0003 Plays Mod Music

Unable to generate a summary because no transcript was provided. Share the transcript or a brief outline of the video and I’ll craft a concise, author-voiced summary.
16 February 2026

How Is This 10¢ Chip Talking?

I got a 10‑cent MCU literally talking. With just 16K of flash and 2K of RAM, I used PWM and a tiny transistor amp to play 6+ seconds of audio at 8 kHz by compressing it with super‑simple 2‑bit ADPCM—4:1 compression and a decoder in under 2 KB. I built a handy WAV‑to‑2‑bit‑ADPCM tool to make it easy. For longer phrases, I switched to the Talkie library (TI LPC speech synthesis from the TMS5220/TMS5100 era—think Speak & Spell and classic arcades), and I even made a web tool and player for generating and previewing LPC data. It’s wild what you...
16 February 2026

10¢ MCU Brain Surgery - CH32V003

I crack open a punchy little toy, show how the original just squishes two contacts to light the eye LEDs off a pair of LR41s, then perform some brain surgery to cram in a tiny lithium cell and my own board that triggers lights—and an incredibly annoying tune—on each punch. It sips about 7 µA in deep sleep and wakes via a yellow trigger wire, but the soldering was fiddly and full of swearing. Tape it up, cram it back in the head, and yes, it works a treat… maybe too well, because the beeping is driving me mad.
16 February 2026

10¢ MCU Music Hack - CH32V003

I spun some tiny WCH boards at PCBWay around an 8‑pin MCU (48 MHz, 16k flash, 2k RAM) to beep tunes off a coin cell. I tried hand-soldering, then used my paste-dispensing PCB printer—expired paste still worked great. Standby sips under 8 µA, but it locks out programming; a WLink flash wipe rescued me. Wake draws ~3.3 mA, and audio peaks hit ~130 mA (~13–14 mA average), which browned out the coin cell. A tiny 80 mAh LiPo with a TP4056 (modded to ~100 mA) proved the design, then swapping the buzzer’s base resistor from 1k to 10k tamed it...
16 February 2026
← Older posts Page 1 of 11
Subscribe!
All content copyright Chris Greening © 2026 • All rights reserved.
Made with Jekyll

This website uses cookies to enhance your browsing experience and analyze site traffic.