Digital-Logic

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

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