Charlie Roberts

I’m Charlie Roberts, a first-year MEng Electrical and Electronics Engineering student at Imperial College London, and a UKESF Semiconductor Talent Award Scholar. Alongside coursework in circuits, digital electronics, and computer architecture, I build software and hardware projects on the side: web apps in Django, games in Pygame, and electronics built around microcontrollers, PCBs, and 3D-printed enclosures.

This site is where those projects live.

London, United Kingdom

Selected Work

Projects

Circuit Builder

Circuit Builder

A desktop circuit editor and simulator I built myself: sketch a schematic, wire it up, and watch it actually work in DC, transient, and frequency response.

  • Wrote my own nodal analysis solver for DC, transient, and AC, with no NumPy or SciPy
  • Live Simulate mode shows the voltage at every terminal, updating as you edit the circuit
  • Frequency response and Bode plots, with the sweep range guessed from the circuit's own values
  • Full undo/redo, wire splitting and tapping, and a plain-JSON save format
Repo ↗ Software 2026
EEE Lunar Rover

EEE Lunar Rover

A WiFi-controlled rover that drives across a mock lunar surface, hunts down artificial rocks, and reads their signals to work out what type each one is.

  • Awarded Best First Year Project 2026 at Imperial College London
  • I designed, tested, and debugged the infrared and magnetic circuits, and soldered three of the four sensor boards
  • Built a separate analogue circuit for each of the four sensors, then combined them onto one PCB
  • Chose Ackermann steering over differential drive so the rover wouldn't drift when its motors weren't perfectly matched
  • Controlled and monitored live from a browser over WiFi
Electronics 2026
Operational Amplifier in LTSpice

Operational Amplifier in LTSpice

What’s actually inside an op-amp? I spent a few months teaching myself, then built one from scratch out of individual transistors in LTSpice to find out.

  • Learned and built every stage myself: differential pair, current mirrors, and a Darlington output 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), self-hosted on a Raspberry Pi at home.

  • Five small apps: accounts, file storage, to-do, random tools, server diagnostics
  • File uploads can now 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, with my own port forwarding and DNS
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
  • Each one was a way to practise a different concept: sprite groups, collisions, grid logic
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