Project
Co-developed a Wi-Fi webcam that captures JPEG images with an OV2640, transfers them through a SAM4S8B and ESP32, and displays them in a browser.






Co-developed an embedded Wi-Fi webcam with Luke de Souza for Northwestern University's CE 326 Electronic System Design course. The project combined a SAM4S8B microcontroller, OV2640 camera module, ESP32-WROOM-32E Wi-Fi module, custom PCB work, embedded C firmware, a browser viewer, and a 3D-printed camera enclosure.
I initially focused on firmware development and then worked across both software and hardware as integration progressed. The firmware was written in C with the Atmel Software Framework and initializes the system clock, GPIO, SPI, UART, Wi-Fi interface, and camera. The OV2640 captures JPEG images, the SAM4S8B transfers image data to the ESP32 over SPI while UART carries commands, and the ESP32 hosts a lightweight web server so a user can view captures from a browser without installing additional software.
The electrical design used KiCad to connect the processor, camera, Wi-Fi module, programming and debug headers, and three regulated power domains: 3.3 V, 2.8 V, and 1.2 V. Early component analysis estimated a $25.09 one-unit core system cost, falling to $19.57 per unit at a quantity of 5,000, and evaluated active, standby, and duty-cycled operation from a 500 mAh battery.
Board bring-up required extensive continuity testing and rework. We removed solder bridges that were blocking camera signals, traced a nonresponsive ESP32 to a Wi-Fi reset pin bridged to ground, and restored programming and terminal output. We also discovered that our manufactured PCB revision omitted the camera-pin connections; after documenting the layout failure, we used a reference PCB provided by the instructor to complete system integration. The final setup successfully captured an image, transferred it through the embedded pipeline, and displayed it in the web interface. A custom 3D-printed enclosure stabilized and protected the camera module for demonstration.
This two-person CE 326 project covered the complete embedded-system workflow: component and power analysis, schematic and PCB design, board assembly, C firmware, wired and wireless communication, browser delivery, mechanical packaging, and hands-on hardware debugging.