Hi, I'm Charlie

I’m Charlie Roberts, a second-year MEng Electrical and Electronics Engineering student at Imperial College London.

Proud to be a UKESF Semiconductor Talent Award Scholar, 1 of 300 in my year receiving monthly mentoring sessions and access to attend various semiconductor events and conferences.

Alongside my studies, I build electronic and software projects for fun on the side. I’ve done projects for personal and potential medical use, with some projects including custom PCBs and 3D-printed enclosures for my embedded electronics, all listed on this site.

I have worked in many projects and am familiar with the following software/tools: Python, C++, Arduino, Raspberry Pi, HTML/CSS/JavaScript, SQL, Autodesk Inventor, LTspice.

London, United Kingdom

Charlie Roberts

Selected Work

Projects

UART Transceiver in Verilog

UART Transceiver in Verilog

A UART transmitter and receiver (8N1) written from scratch in Verilog, built from counters, shift registers and state machines, and verified with a self-checking loopback testbench in Icarus Verilog.

  • Full 8N1 serial link in Verilog: a parameterised baud generator, a transmitter and a receiver
  • Receiver uses 16x oversampling and a two-flop synchroniser to sample every bit at its centre
  • Self-checking loopback testbench: 13 bytes, including a back-to-back burst, all received with zero errors
  • Found and fixed a start-bit timing bug that shifted every sample half a bit early
Repo ↗ Electronics 2026
ESP32 Vitals Monitor

ESP32 Vitals Monitor

An ESP32 reading heart rate, SpO2, body temperature, and a single-lead ECG, serving its own live dashboard over WiFi from a self-hosted access point; no router, app, or internet connection needed.

  • A self-contained vitals monitor: heart rate, SpO2, body temperature, and a single-lead ECG all read from one ESP32
  • Serves its own live dashboard straight from the board over WiFi, no router, app, or internet connection needed
  • Plots a live, adjustable ECG waveform on the dashboard, not just a single heart-rate number
  • Timestamps every ECG sample as it arrives in the browser, so the trace stays accurate even if the WiFi send rate drifts
Repo ↗ Electronics 2026
ESP32 Stabilised Spoon for Parkinson's Disease

ESP32 Stabilised Spoon for Parkinson's Disease

A self-levelling spoon for hand tremor: an ESP32 fuses MPU6050 accelerometer and gyro data to hold the spoon head level with two servos, correcting roll and pitch in real time.

  • Built to counteract hand tremor from Parkinson's disease or essential tremor
  • Complementary filter fuses MPU6050 accelerometer and gyro data into a stable roll/pitch estimate
  • Two servos actively counter measured tilt in real time to hold the spoon head level
  • Boot-time auto-calibration zeroes out mounting offset in about a second
Repo ↗ Electronics 2026
ESP32 Bluetooth Speaker with FFT Spectrum Analyser and OLED

ESP32 Bluetooth Speaker with FFT Spectrum Analyser and OLED

A Bluetooth speaker built around an ESP32: A2DP audio into a custom amp stage, with a live 16-band FFT spectrum and scrolling track info on an OLED.

  • Live 16-band FFT spectrum on an OLED, computed straight off the incoming Bluetooth audio stream
  • Log-spaced, self-calibrating frequency bands so quiet and loud tracks both stay readable
  • Custom amp stage: resistor-divider into a PAM8403 class-D amp driving two 5W speakers
  • Debounced volume and play/pause controls, with a mode button reserved for a planned AM radio source
Repo ↗ Electronics 2026
Circuit Builder

Circuit Builder

A desktop circuit editor and simulator where users can sketch a schematic, wire it up, and watch it actually work in DC, transient, and frequency response.

  • Constructed a nodal analysis solver for DC, transient, and AC
  • Live Simulate mode shows the voltage at every terminal, updating as you edit the circuit
  • Conduct Frequency response and make Bode plots, for each circuit
  • Saves all files in a plain-JSON save format
Repo ↗ Software 2026
EEE Lunar Rover

EEE Lunar Rover

A WiFi-controlled rover that drives across a fake lunar surface, tasked to hunt down artificial rocks, and reads their signals and classify rocks.

  • Awarded Best First Year Project 2026 at Imperial College London
  • Designed, tested, and debugged the infrared and magnetic circuits, and soldered three of the four sensor boards
  • Built a separate analogue circuits for each of the four sensors, then combined them onto one PCB
  • 3D printed chassis with ackermann steering and attached the flags of the nationalities in the team
  • Controlled and monitored live from a browser over WiFi
Electronics 2026
Operational Amplifier in LTSpice

Operational Amplifier in LTSpice

Spent a few months teaching myself the internal layout of an OpAmp, then built one from scratch out of individual transistors in LTSpice.

  • Learned and built every stage myself: differential pair, current mirrors, and a push-pull power stage
  • Tested it by stepping the feedback resistor through four values and checking the gain against theory
  • Measured gain matched the predicted Rf/Rin ratio almost exactly, even at ×1000
Electronics 2026
websiteproject

websiteproject

A personal Django site with a few small apps (accounts, file storage, a to-do list with email reminders, and more), which was self-hosted on a Raspberry Pi at home.

  • Five small apps: accounts, file storage, to-do, random tools, server diagnostics
  • File uploads can be edited and deleted, with validation on what's accepted
  • To-do list emails you reminders on a schedule, via a custom management command
  • Hosted it myself on a Raspberry Pi at home
Repo ↗ Web App 2025
Billiard Club

Billiard Club

A full 2D pool game built from scratch in Python, complete with its own physics engine, an AI opponent, and a full menu system.

  • Full 8-ball rules: turn tracking, fouls, potting, win detection
  • Wrote my own physics engine for ball-to-ball and ball-to-wall collisions
  • Bank-shot aim assist that projects the cue ball's path off the rails
  • A basic AI opponent, plus Player vs Player and Sandbox modes
Repo ↗ Game 2024
Pygame Games

Pygame Games

A small collection of games built in Pygame while I was learning Python and game dev: a brick-breaker and a from-scratch Tetris.

  • Ballz: an aim-and-fire brick-breaker with combo scoring and coin pickups
  • Tetris: full piece rotation and row-clearing, built entirely from scratch
Repo ↗ Game 2023
Digital Alarm Clock

Digital Alarm Clock

A 24hr digital alarm clock I designed and built from scratch for a real client brief: a custom-etched PCB, crystal-accurate timekeeping, and a 3D-printed case.

  • Crystal-accurate 24hr timekeeping, using a 32kHz oscillator and EEPROM storage
  • Etched and soldered the PCB by hand, with its own dedicated voltage regulator
  • 3D-printed PLA case with laser-cut acrylic faces (190×90×90mm, 500g)
  • Designed end-to-end for a real client brief and tested against every spec point
Electronics 2023
E

Electronic Reaction Time Game

A reaction-time game built around LED chasers, with a custom PCB and a 3D-printed triangular enclosure I designed myself.

  • LED chaser sequence: light travels along the strip and you react to stop it on target
  • Custom PCB built around the CD4514BE demultiplexer
  • Housed in a 3D-printed triangular enclosure I designed in CAD
Electronics 2022