Bare-metal peripheral driver
Deliverable: A GPIO and timer driver written from the reference manual with no vendor HAL, producing a precise PWM output verified on an oscilloscope.
Course
Firmware written close to the metal — registers, interrupts, timers and buses — debugged on real hardware, because embedded bugs live where a simulator cannot show them.
7 modules · 5 months
Deliverable: A GPIO and timer driver written from the reference manual with no vendor HAL, producing a precise PWM output verified on an oscilloscope.
Deliverable: A sensor read over I2C with error handling for a missing ACK, with the bus transaction captured on a logic analyser and annotated.
Deliverable: A system where all timing is interrupt or timer driven with no blocking delays, demonstrated responding correctly to two simultaneous events.
Deliverable: A multi-task FreeRTOS application, plus a deliberately introduced hard fault traced from the stacked registers to the offending line.
Every student gets placement assistance — that is what 100% placement assistance means. It is support for all, not a job for all. We do not promise a specific salary, a specific number of interviews, or placement at any named company, and you should be wary of anyone who does.
Almost every beginner debugs firmware by adding UART prints, and it works right up until the bug is a timing problem — at which point the print changes the timing and the bug moves.
This course uses a hardware debugger from the second week. Breakpoints, watchpoints, single stepping, and reading the stacked registers after a hard fault to find the line that caused it. That last skill is the difference between an engineer and somebody guessing.
Vendor HAL libraries are useful and they hide the thing you are here to learn.
The first project bans them: configure GPIO and a timer by writing registers, from the reference manual, and verify the PWM on a scope. It takes considerably longer than calling a function, and afterwards the microcontroller is no longer a mystery box that sometimes misbehaves.
The most common embedded bug is a long interrupt handler.
Set a flag, clear the source, return. Anything else — a delay, a print, a bus transaction — blocks other interrupts and produces failures that appear once a day and cannot be reproduced. The interrupts module is as much about restraint as about mechanism.
The IoT course builds connected products with friendly frameworks and covers sensors, cloud and power. It is the right course for a systems view.
This is the firmware underneath — registers, buses, RTOS, hardware debugging. Take IoT if you want to build a product; take this if you want to be the person who writes what runs inside it.
Questions
IoT is a system course — sensors, connectivity, cloud, power — using friendly frameworks like Arduino. This is firmware engineering — registers, interrupts, buses, RTOS and hardware debugging on ARM Cortex-M. IoT teaches you to build a connected product; this teaches you to write the firmware inside one.
Yes, this one is a genuine prerequisite. Embedded C is C with pointers everywhere and no safety net, and someone still uncertain about pointer arithmetic will struggle from the second module. If C is shaky, take the core programming route first — it is the shorter path.
Arduino is excellent for prototyping and the IoT course uses it deliberately. It also hides the register configuration, the interrupt priorities and the timing, which are exactly what an embedded engineering job requires you to control. This course writes drivers from the reference manual so the hardware stops being magic.
No — scopes and logic analysers are in the lab and every project that needs one is done there. That is also why this course is classroom-only. Debugging a bus without seeing the signal is guesswork, and buying test equipment is not a reasonable entry requirement.
Three details is all we need. A course advisor will call you back.
Connected hardware from sensor to dashboard — microcontrollers, wireless protocols, cloud ingestion and the power and reliability problems that decide whether a device survives deployment.
Industrial automation taught on real hardware — ladder logic, analogue I/O, HMI and SCADA — with the interlock and safety discipline that separates a working panel from a dangerous one.
Board design taken to manufacture — schematic, footprints, layout, planes and Gerbers — with the checks that decide whether a fab house builds it or sends it back.
Hardware description taught as hardware, not as programming — RTL that synthesises, testbenches that prove it, and designs that meet timing on a real FPGA.
Next step
Tell us what you want to learn and we will help you pick the right course, batch and mode.