Digital Health Research · HKG
More Projects to ship

Nic's Digital Health Blog

Biomedical Engineering · Biosensing · Embedded Systems · ML

EST. HONG KONG 2024
§ 01 — About

Nicholas Kwok

Biomedical engineer based in Hong Kong, building next-generation wearable biosensing devices that bridge the gap between clinical-grade monitoring and everyday life. Work spans the full stack — from analogue front-end PCB design and embedded firmware to machine learning pipelines and polished iOS apps.

Current research interests include cuffless blood pressure estimation, shear-wave elastography for soft-tissue characterisation, and on-device ML inference for real-time arrhythmia detection and sleep staging.

8+

Hardware Prototypes

4

Active wearable projects

§ 02 — Projects
8 records
Active
PRJ-001
MAX86150 Blood Oximeter

Custom PPG/SpO2 acquisition board built around the MAX86150 AFE. Streams real-time SpO2 and HR data over BLE to an iOS companion app with on-device artifact rejection.

ESP32MAX86150BLESwift
Active
PRJ-002
Single-Lead ECG Monitor

Wearable single-lead ECG patch with analog front-end conditioning, 24-bit ADC sampling at 500 Hz, and a real-time Pan-Tompkins QRS detector running on nRF52840.

nRF52840ECGSignal ProcessingC/C++
Research
PRJ-003
Ultrasound Elastography

Research-grade shear-wave elastography platform for soft-tissue characterisation. Custom pulser/receiver PCB, FPGA-based data capture, and Python post-processing pipeline.

FPGAPythonUltrasoundSWE
In Progress
PRJ-004
Biosignal ML Pipeline

1D-CNN + LSTM autoencoder for arrhythmia detection and sleep-stage classification from multi-modal wearable streams. Deployed as a CoreML model on-device.

PyTorchCoreMLLSTM1D-CNN
Active
PRJ-005
IoT Health Hub

ESP32-based hub aggregating multi-sensor BLE peripherals, syncing time-series data to InfluxDB on Azure, with a Grafana dashboard for longitudinal tracking.

ESP32InfluxDBAzureMQTT
Active
PRJ-006
NicHealth iOS App

SwiftUI companion app providing live waveform visualisation, trend analytics, and sleep scoring for all connected wearable devices with HealthKit integration.

SwiftUIHealthKitCoreBluetoothCharts
Research
PRJ-007
Continuous BP Estimator

Cuffless blood pressure estimation using PTT derived from synchronised ECG + PPG signals. Personalised calibration model with on-device inference.

PTTECGPPGPython
Complete
PRJ-008
OTA Firmware Manager

Secure over-the-air firmware update system for ESP32 and nRF52 fleets with delta-patch compression, rollback support, and AWS S3 binary distribution.

ESP-IDFnRF ConnectAWS S3Node.js
§ 03 — Stack
ESP32 / IDFnRF52 / ZephyrFreeRTOSC / C++PythonPyTorchCoreMLSwiftUIHealthKitCoreBluetoothInfluxDBAzure / AWSBLE / GATTReact / Next.jsMQTTDocker
§ 04 — Writing
4 entries
IDTitleDate
POST-004

Reducing Motion Artifacts in Wrist-PPG with Adaptive Filtering

A walkthrough of implementing an LMS adaptive filter on the nRF52 to cancel IMU-correlated noise from PPG signals during high-intensity exercise.

Signal ProcessingPPG
2026-02-14
POST-003

Building a Shear-Wave Elastography Probe from Scratch

End-to-end hardware and software design of a research ultrasound system: PCB layout, FPGA gating logic, and Python reconstruction algorithms.

UltrasoundFPGAHardware
2026-01-08
POST-002

CoreML Deployment of a 1D-CNN Arrhythmia Classifier

Exporting a PyTorch model to CoreML, integrating it into a SwiftUI app, and benchmarking latency on iPhone 15 vs. Apple Watch Ultra.

CoreMLSwiftUIML
2025-12-19
POST-001

Synchronising Multi-BLE Peripheral Streams on ESP32

Achieving <5 ms timestamp alignment across four simultaneous BLE sensor connections using FreeRTOS event groups and NTP anchoring.

ESP32BLEFreeRTOS
2025-11-03