Nine projects, eight of them on video

Work

Two were sold to customers. Two are published. Where there is a video, it is the real thing on the bench.


Now

2023 to 2026 · Germany

Fraunhofer UMSICHT · master's thesis

Live data · machine learning

A Live Dashboard for CO₂ Electrolysis

Getting a test campaign ready went from hours to about five minutes. I proposed the project myself after watching scientists work out live experiments in Excel.

A CO₂ electrolyser is a machine that turns carbon dioxide into something useful. Running one is an experiment. The people running it could not see how it was doing until long after it had finished.

My software reads the rig while the experiment is still going. It fixes the broken rows, lines every sensor up in time and keeps it all in a small database on the machine itself, so nothing has to reach the cloud first. It watches for the moment the readings change shape, which usually means the cell is wearing out. Then it predicts what should have happened instead. A desktop app on top writes the reports the team used to write by hand.

Under the hood. Live ingestion over OPC UA and Modbus. DuckDB for in-memory vectorised time-series querying at the edge. Variance estimators and statistical change-point detection for structural breaks. Random Forest forecasting and correction against history. Faradaic efficiency and energy-cost KPIs. PyQt6 front end.

  • Python
  • DuckDB
  • scikit-learn
  • Random Forest
  • change-point detection
  • PyQt6
  • LabVIEW
  • OPC UA

Full walkthrough of the running dashboard, five minutes

Layer 1
Reads the rig while it is still running, over OPC UA and Modbus
Layer 2
Repairs broken rows and lines every sensor channel up in time
Layer 3
Stores it in DuckDB on the machine, so querying is fast and local
Layer 4
Works out Faradaic efficiency and energy cost while the run happens
Layer 5
Watches for the point where the readings change shape
Layer 6
Forecasts and corrects against what the rig did before
Layer 7
A PyQt6 application that writes its own reports

The seven layers, in the order the data moves through them

HARMAN International · 2023 to 2024

Validation · root cause

Car Infotainment Diagnostics, Hermes Programme

Open warranty cases fell from 123 into single digits in six months. HARMAN recognised the result in November 2023.

The infotainment computers in BMW and Mercedes-Benz cars were coming back with faults. The pile of open cases kept growing. Fixing them one at a time was never going to clear it.

So I went after the causes instead. I ran the faulty units on a test bench wired to behave like a car, wrote Python that reads the diagnostic logs and worked each fault back to the thing that actually caused it. Finding a fault stopped being guesswork and became a written procedure anyone on the team could follow.

Under the hood. 8D root-cause methodology. Hardware-in-the-loop validation. Python trace-log parsing. Every closure documented to ISO/IATF 16949 audit standards.

  • 8D
  • hardware-in-the-loop
  • Python
  • ECU diagnostics
  • ISO/IATF 16949
HARMAN recognition certificate for achieving single digit backlog in Hermes

HARMAN recognition, 23 November 2023

Sold and published

Two went to customers · two were peer reviewed

Vishnu Automation · internship · sold to a customer

Industrial control

Deionised Water Dispenser

Designed, built and installed. It still supplies water to CNC machines.

Three things share one board and they do not get along. The flow sensors run on 3 volts, the controller on 5 and the pumps on 12. Every time a pump kicks in it throws a spike down the line. The sensor readings go wrong.

I kept them apart. The sensing side and the pump side sit behind their own regulators, with diodes catching the spikes before they travel. It is a dull decision and it is the reason the unit is still working.

Under the hood. Embedded C. Multi-domain voltage isolation, precise regulators and flyback protection between the sensing logic and the high-power actuation.

  • Embedded C
  • voltage regulation
  • flyback protection
  • flow sensing

The installed unit, on site

MMAK Industries · internship · sold to a customer

Timing under load

Contactless Sanitiser with Audio

The speech was starving the sensors. I fixed it by refusing to do both jobs on one chip.

The dispenser talks to you while it works. The trouble was that playing sound took up the whole controller, so the moment somebody put a hand under it the sensor had to wait its turn. In a contactless dispenser, that is the one thing that must never lag.

I moved the sound onto a separate module with its own memory card. Now the controller only says "play track four" and goes straight back to watching for a hand.

Under the hood. Embedded C. Audio payloads offloaded to an SD card behind a DFPlayer Mini so the main controller stays available for the IR and ultrasonic interrupt requests.

  • Embedded C
  • ISR
  • IR & ultrasonic
  • DFPlayer Mini

The production unit, with audio

Published in the Indian Journal of Public Health · Scopus

Motors · sensors

SMART Bed for Elderly Care

A wheelchair that drives out of the bed itself. Four international awards.

The paper is about the care idea. The engineering was making a bed move a person without hurting them, which meant sixteen motor channels working together and not fighting each other.

The hard part was power. When several motors start at once they kick current back down the line and that can kill the controller. Since this thing had to stand on its own and hold a person, I gave it a battery system that absorbs that.

Under the hood. Embedded C. 16-channel servo driver, H-bridge circuits for the DC geared motors, custom PWM drivers for the high-torque servos and a battery management system sized for simultaneous inductive kickback.

  • Embedded C
  • 16-channel servo driver
  • H-bridge
  • PWM
  • BMS

Full demonstration, including the wheelchair coming out

Published in IJITEE · 2021

Vision · motors

Face Recognition that Opens a Door

97% accuracy. The interesting problem was the handover to the hardware.

Recognising a face is the part everyone talks about. I tried four methods and picked the one that was fast enough to run without special hardware.

The part nobody talks about is what happens next. The answer has to leave the computer and move something heavy: a sliding door on a 12 volt motor rated to pull 150 kilograms. Accuracy is easy to put in a paper. The delay between recognising someone and the door moving is what decides whether it feels broken.

Under the hood. MATLAB. Evaluated PCA, LDA and Kanade-Lucas-Tomasi before choosing Viola-Jones with Haar-like features over integral images. Output mapped over UART to an Arduino UNO driving an H-bridge.

  • MATLAB
  • Viola-Jones
  • PCA
  • LDA
  • UART
  • Arduino
  • H-bridge

Recognition triggering the door

Instruments and control

Where the timing matters more than the algorithm

A.D. Paul & Co. · internship · 2020 to 2021

Medical sensing

Point-of-Care Testing Device

Reads heart rate and blood oxygen without the processor ever holding it up.

A heartbeat does not wait. If the chip is busy when the next reading arrives, that reading is gone. The trace you end up with is a lie.

The first job was the wiring, which was smearing the signal until I retuned it. The real fix came after that. Instead of the processor asking the sensor for every reading, the sensor now fills its own small buffer and hands the whole lot over in one go. The processor is free the rest of the time.

Under the hood. Embedded C on a MAX86150 analog front end over I²C. Bus capacitance solved by tuning the pull-up resistors. Acquisition moved onto interrupt service routines with Direct Memory Access and hardware FIFOs, fetching in autonomous high-speed bursts.

  • Embedded C
  • MAX86150
  • I²C
  • DMA
  • hardware FIFO
  • ISR
Early 3D printed prototype showing the sensor and control surface

Early 3D printed prototype

Taking a measurement

2020

Data you can trust

Smart Kitchen

Timestamps that stay honest through a power cut.

The system weighs what is in the kitchen and logs it. Weighing was the easy half.

The problem is that power goes out and networks drop. A controller that comes back up guessing the time writes wrong timestamps over good data. By the time anyone notices, the log is worthless. I gave it a clock chip with its own battery, so the time is right the second it wakes up and the log carries on where it left off.

Under the hood. Embedded C. Load cells with HX711 amplifiers and a battery-backed DS3231 real-time clock on I²C for hardware-level timestamping through a complete blackout.

  • Embedded C
  • HX711
  • load cells
  • DS3231 RTC
  • I²C

System walkthrough

Universiti Malaysia Perlis · 2019

Real-time control

Walking Robots, Two Legs and Four

Balance came from maths, not from timed pauses.

The easy way to make a robot walk is to tell each joint to move, wait, then move the next one. It works at a crawl. In a race it falls over.

Instead the robot works out where each joint has to be, continuously, while it moves. That keeps the legs in step and lets it lean into its own weight at speed.

Under the hood. Embedded C. Inverse kinematics formulated for joint angles and spatial positioning, running on the microcontroller itself so multiple actuators stay synchronised.

  • Embedded C
  • inverse kinematics
  • servo synchronisation

Two legs

Four legs

Four employers, two countries, one thread.

Where the experience came from, what I studied and the tools behind all of the above.

Read the background