Ground Embedded KO Subscribe
Ground Embedded · 26.4K YouTube subscribers

Top 1% know-how from a working engineer

From C to motor control. A step-by-step guide to becoming an embedded developer.

Labs

Simulations where you change a value, run it and see the principle.

All 14 labs →
GROUND EMBEDDED · 3D LABPointers follow theaddress 1volatile uint32_t *ODR 2 = (uint32_t*)0x40020014; 3*ODR |= (1u << 5); 4while (1) { 5 if (flag) toggle(); 6}
3D

Pointers and Memory Simulation

Run C code one line at a time and watch memory cells and pointer targets change. Four examples cover pointer basics, arrays and pointer arithmetic, pass by value versus by address, and writing past the end of an array.

GROUND EMBEDDED · 3D LABRTOS who hasthe CPU now 1volatile uint32_t *ODR 2 = (uint32_t*)0x40020014; 3*ODR |= (1u << 5); 4while (1) { 5 if (flag) toggle(); 6}
3D

RTOS Scheduler Simulation

Watch a scheduler switch between three tasks of different priority. Compare preemptive and non-preemptive scheduling, cause missed deadlines with a long task, and create priority inversion with a mutex, then fix it with priority inheritance.

GROUND EMBEDDED · 3D LABCAN who winsthe busANDABY
3D

CAN Arbitration Simulation

See bit by bit who gets to transmit when several controllers start sending on a CAN bus at the same moment. Find out why the smaller ID wins and how the losers back off without corrupting the frame.

GROUND EMBEDDED · 3D LABADC voltageinto numbersMCUTempI2CIMUSPIHallGPIORangeUARTCurrentADC
3D

ADC Sampling and Resolution Simulation

Watch a smooth analog voltage turn into a staircase of numbers as it passes through an ADC. See how coarse the steps get with fewer bits, and why slow sampling makes a signal look like a different frequency.

GROUND EMBEDDED · 3D LABInterrupts drop it,handle it, return 1volatile uint32_t *ODR 2 = (uint32_t*)0x40020014; 3*ODR |= (1u << 5); 4while (1) { 5 if (flag) toggle(); 6}
3D

Interrupts and Priority Simulation

Watch where the CPU jumps when an interrupt arrives in the middle of the main loop, and when it comes back. Try priority and preemption, long handlers, critical sections, and the endless re-entry you get when a flag is never cleared.

GROUND EMBEDDED · 3D LABFOC d and qcurrent vectorsdqisiqid
3D

PMSM and Field-Oriented Control

See the current vector made by three phase currents and the rotor's d and q axes in 3D, and how iq, id and encoder angle error affect torque.