Turning an ESP32 into a Thermal USB Webcam Last time I faked a webcam on an ESP32; this time I built a real one. The ESP32-S3’s native USB + UVC with MJPEG makes a normal camera dead simple—grab JPEG frames and stream. The fun bit is turning an MLX90640 (32×24 thermal) into a proper USB camera: read over I2C, color-map, scale up to 320×240 (nearest or bilinear), JPEG encode, and stream—works in any camera app, no drivers. Bonus lesson: if an I2C scan finds nothing, stop blaming software; mine was a bad 3.3 V regulator solder joint. 15 February 2026
Pong Cam - My ESP32S3 Thinks It's a WebCam! I turned an ESP32-S3 into a plug-and-play USB webcam—with no camera attached. The ESP32 generates its own frames, encodes them as JPEGs, and streams them over UVC as MJPEG. I ramp it up from a static BBC test card, to animated GIF playback, and finally a fully playable Pong running at a solid 30 FPS. Under the hood: Espressif’s UVC device component (TinyUSB), Bulk mode for stability, AnimatedGIF for decoding, and esp_new_jpeg for fast JPEG encoding (~21–23 ms/frame). It’s a fun proof that the S3 can be a real-time “display” straight into your PC. 01 February 2026