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
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