Videos
Here are some of the latest videos featured on my YouTube channel.
Extended Kalman Filter
Real-time EKF implementation for attitude estimation on STM32 microcontrollers.
Altitude Estimation
Estimating altitude with pressure sensors in real-time with STM32 microcontrollers.
USB HS (ULPI) Routing
Routing tips for high-speed USB interfaces, delay tuning, impedance control, etc.
FPGA + DDR PCB Design
FPGA/SoC with DDR3 memory PCB design overview, basics, and tips for a Xilinx Zynq-based design.
Noise Gate Algorithm
Ral-time implementation of an audio noise gate in C on an STM32 microcontroller.
PCB Stack-Up/Build-Up
PCB materials and composition, designing own build-ups and stack-ups for EMI/SI.
Audio DSP + STM32 #4
Firmware set-up for I2S+DMA, ADC+DMA+Timer, basic codec driver, and double-buffering.
Op Amp Theory/Design
How op amps work, negative feedback, and how to design a simple discrete version yourself.
Audio DSP + STM32 #1
Real-time audio DSP from scratch! Intro, hardware/software set-up, and basic IIR filters.
Decimation Filters
Decimation filter theory, anti-aliasing filters, down-sampling, and real-time implementation.
Notch Filters
Analogue and digital notch filter theory, as well as real-time software implementation.
Extended Kalman Filter
Non-linear Kalman filter theory with considerations for practical implementation.
Sensor Fusion (#2)
Theory and embedded implementation of a basic sensor fusion algorithm (complementary filter).
Sensor Fusion (#1)
Introductory video to sensor fusion, covering the need for it, and a look at individual sensors (accelerometers and gyroscopes).
IIR Filters
IIR (infinite impulse response) filter theory, digital filter properties, simple design examples, and implementation in real-time on an embedded system (STM32).
How To Write A Driver
Starting from a sensor datasheet, how to write a driver for an STM32 microcontroller from scratch using the STM32 HAL.
RP2040 PCB Design
How to design your own RP2040-based breakout board with castellated holes in Altium Designer.
Z-Transform
Practical applications of the Z-transform used in digital signal processing. Stability analysis and frequency response of discrete-time systems. Theory, C code, and implementation on a real-world embedded system.
High-Speed PCB Design
A collection of things you need to pay close attention to when routing PC boards with high-speed signals (e.g. USB3, HDMI, PCIe).
Headphone Amplifier
Inspired by Douglas Self, a completely overkill headphone amplifier design using LOTS of NE5532 op-amps.
Miniature PCB Design
Quick run-through of a 'miniature' (2cm diameter), size-constrained PCB design using Altium Designer.
Moving Average Filter
Moving average filter theory (time domain, frequency domain, Z-transform, FIR, etc..) and software implementation on a real-time embedded system using an STM32 microcontroller and a barometric pressure sensor.
Analog Filter Emulation
Modelling analog filters, discretisation, and implementation of the digitally-equivalent filters on a real-time, embedded system (STM32). Includes theory, DSP, firmware, and results.
FIR Filters
FIR (Finite Impulse Response) filter theory, design, and software implementation. Real-time software implementation on a custom STM32-based PCB.
STM32 DMA FreeRTOS
Sequel to 'STM32 Programming Tutorial' covering the basics of DMA (direct memory access) to offload the CPU, as well as an introduction to FreeRTOS on STM32.
STM32 Firmware Tutorial
How to debug and write firmware for a custom STM32-based PCB (incl. SPI, USB, PWM, etc.).
Power Amplifier Design
How to design a custom 10W solid-state power amplifier for audio (guitar, in particular). Explanation and derivation of a three-stage, analogue power amplifier using a single DC supply (+24V).
KiCAD STM32 Tutorial
Entire step-by-step PCB design process going through the schematic, layout, and routing of a 'barebones' STM32F4-based PCB including USB and a buck converter in KiCAD. All the way from schematic creation, through to four-layer PCB layout and routing, as well as sending it off for manufacture and assembly via JLCPCB.
PID Controller in C
How to implement a PID controller in software using C, discussing theory and practical considerations. Demonstration of PID controller code using a custom flight simulator.
Flight Control System
Demonstrating the initial design process of my open-source 'HADES' fixed-wing, flight control system.