Latest Videos

Here are some of the latest videos from my YouTube channel!

Audio DSP + STM32 #4

Firmware set-up for I2S+DMA, ADC+DMA+Timer, basic codec driver, and double-buffering.

Board Bring-Up

Basics of how to bring up test firmware of a new MCU-based PCB.

Op Amp Theory/Design

How op amps work, negative feedback, and how to design a simple discrete version yourself.

Audio DSP + STM32 #3

Real-time audio DSP for STM32 MCUs in C - tremolo effect.

FPGA / SoC Hardware

How to design FPGA/SoC-based hardware (Xilinx Zynq, for example).

Audio DSP + STM32 #2

Real-time audio DSP for STM32 MCUs in C - notch filters.

LTSpice Basic + DC O.P.

LTSpice overview and how to perform a DC operating point analysis.

Audio DSP + STM32 #1

Real-time audio DSP from scratch! Intro, hardware/software set-up, and basic IIR filters.

Mixed-Signal Design

Overview of how to design mixed-signal hardware (circuitry and PCB).

Decimation Filters

Decimation filter theory, anti-aliasing filters, down-sampling, and real-time implementation.

Altium + STM32

Complete walkthrough of STM32-based PCB design in Altium Designer.


How to design PCBs for manufacturing.

Notch Filters

Analogue and digital notch filter theory, as well as real-time software implementation.

Altium STM32 Hardware

20 minute overview of STM32-based hardware design in Altium Designer.

Breakout Board Design

How to design a simple breakout board for a sensor using KiCad.

Extended Kalman Filter

Non-linear Kalman filter theory with considerations for practical implementation.

Breakout Board Design

How to design a simple breakout board for a sensor using Altium Designer.

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.


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.

RF Hardware Tips

A collection of tips when designing radio-frequency PC boards.

FIR Filters

FIR (Finite Impulse Response) filter theory, design, and software implementation. Real-time software implementation on a custom STM32-based PCB.


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. 

Flight Simulator in C#

Demonstrating my flight controller written from scratch in C# (and Unity).


Phil's Lab © Copyright 2022. All rights reserved.