Here are some of the latest videos featured on my YouTube channel.

Zynq Bring-Up Petalinux

Custom Zynq FPGA/SoC bring-up series (5/5).

Zynq Bring-Up Gig Eth

Custom Zynq FPGA/SoC bring-up series (4/5).

Zynq Bring-Up QSPI

Custom Zynq FPGA/SoC bring-up series (3/5).

Zynq Bring-Up DDR3

Custom Zynq FPGA/SoC bring-up series (2/5).

Zynq Bring-Up Intro

Custom Zynq FPGA/SoC bring-up series (1/5).

BGA PCB Design Tips

Tips on designing with BGA-style packages.

PCB Fab/Assembly Data

Basic overview of data needed for manufacturing and assembly.

Mixed-Signal Tips

Tips to improve mixed-signal hardware/PCB performance.

Learn PCB Design

Guidelines and tips on how to learn PCB design.

USB Hub Design

How to design your own USB 2.0 HS hub.


Design review of Xilinx Spartan 7 FPGA-based PCB.

PCB Aesthetics

Tips for creating aestheticly-pleasing PCB designs.

Differential Pairs

Differential pair basics and techniques w.r.t. PCB design.

FPGA + PCIe + DDR3 + M2

M.2 form-factor FPGA hardware accelerator design.


Hardware/firmware tutorial for interfacing STM32s with SDRAM.

Guitar Push-Pull Boost

Miniature push-pull clean boost for electric guitar.

DSP Hardware Walkthru

Audio processing system (6-layer, SDRAM, double-sided assembly, ..).

PCB Vias 101

Via basics - use, parameters, special types, stitching, transfer, ...

ESD Protection Basics

ESD and TVS diode basics, which parameters are important, etc.

Guitar Boost Design

Completely discrete guitar boost pedal design.

Extended Kalman Filter

Real-time EKF implementation for attitude estimation on STM32 microcontrollers.


Device firmware upgrade via USB for STM32 microcontrollers.

Buck Converter Sizing

Switching regulator component sizing guidelines and calculations.

Design Review #2

Schematic and PCB design review of keyboard Bluetooth adapter.

Net Ties

How to use net ties to increase schematic and PCB readability.

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.

ESC Design (1/2)

Electronic speed controller circuit design considerations.

KiCad 6 Full Tutorial

Learn KiCad 6 and STM32 hardware design from scratch.

PCB Design for EMI & SI

PCB design for electromagnetic compatiblity and signal integrity.

Design Review #1

Design review (schematic & PCB) of Spartan-7-based FPGA board.

Schematic Tips & Tricks

Schematic tips to improve legibility, clarity, and usefulness.

Headphone Amplifier

Massively-parallel NE5532-based headphone amplifier design walkthrough.

Buck Converter Layout

Switching regulator layout best practices, tips, and tricks.


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.

Mixed-Signal Design

Overview of designing a mixed-signal product prototype.

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.

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 2023. All rights reserved.