Public Projects

UoB SAT SOM Camera Adapter

A KiCAD PCB adapter bridging MIPI-CSI camera interfaces on a Variscite DART-MX8M SOM to FPC connectors for Xenics LWIR thermal cameras. Passive signal routing with a TXS0104EPWR level translator for the 3.3 V / 1.8 V I2C domain crossing.

UoBSAT SoM Interface Board

Carrier board for the University of Bristol satellite, it hosts a Variscite DART-MX8M-PLUS SoM (NXP i.MX 8M Plus, quad-core A53 + 2.3 TOPS NPU) with redundant power OR, eFuse protection, GigE camera interface, and telemetry, in the Nanopower P31U CubeSat form factor.

Analogue Chaos Generator PCB

A KiCad PCB implementing four chaotic dynamical systems: Lorenz, Chua, Rössler and Duffing entirely in analogue electronics, producing strange attractor patterns on an oscilloscope in X-Y mode. No microcontroller: the ODEs run as continuous-time physics in op-amp integrators and AD633 multipliers.

Microscope Camera Software CM5 Linux Stack

A production-grade Linux application stack for a custom CM5 carrier board. Flask/gunicorn web server, live MJPEG streaming via picamera2, USB storage auto-mount, GPIO button handling, and WiFi management.

Raspberry Pi CM5 Microscope Carrier PCB

A custom carrier board for the Raspberry Pi Compute Module 5: CSI camera interface, Waveshare e-ink display, USB storage, SD card, HDMI output, WPS and capture buttons, coin-cell RTC backup, and a 12 V power supply that also drives the microscope ring light. Designed in KiCad.

PROVE Pathfinder Main PCB

A hat for the SanCloud BeagleBone Enhanced on the PROVE Pathfinder satellite, handling power switching, current sensing, boot sequencing, and camera interfacing for a Basler and Tau thermal camera pair.

IMU Barbell Velocity Tracker

An alternative to commercial barbell velocity tracking kits. Comprised of two nRF52840s with LSM6DSOX IMU, communicating over BLE, fusing sensor data via an extended Kalman filter under a rigid-body constraint to compute bar velocity. Written in C++ on Zephyr RTOS.

IMU Barbell Velocity Tracker PCB

A custom PCB integrating the nRF52840 and LSM6DSOX IMU directly, replacing the dev kit plus breakout board prototype with a single sensor unit sized to mount inside a 50 mm Olympic bar collar. Designed in KiCad, based on the Nordic PCA10056 reference schematic with all the unnecessary circuitry stripped out and the IMU brought on-board instead of a dev kit.