Attitude Estimation· Live
Free to start · Chapters 1–2 open

Teach your board which way is up.

Read a real IMU on STM32 or ESP32, calibrate it, and write the filters that turn noisy data into steady roll, pitch and yaw. Step by step, with every line of code.

Chapters 1–2 free · STM32 + ESP32 · code included

Illustration of a tilted circuit board with its roll, pitch and yaw axes
What you'll build

Five chapters, from first print to a steady angle

1

Project setup, serial output & a fixed-rate loop free

Create the project, print numbers to the serial plotter and run your loop at an exact rate.

  1. 1.1Introduction: what we build in this course
  2. 1.2STM32: create the project and send text over the UART
  3. 1.3STM32: a fixed-rate loop with a timer interrupt
  4. 1.4ESP32 (Arduino IDE): send text over Serial
  5. 1.5ESP32 (Arduino IDE): a fixed-rate loop with micros()
2

The IMU sensor: I2C and the first register read free

Talk to your IMU over I2C and turn raw counts into g and degrees per second.

  1. 2.1What is an IMU?
  2. 2.2From motion to registers
  3. 2.3STM32: I2C setup and the first WHO_AM_I
  4. 2.3bESP32: I2C and the first WHO_AM_I
  5. 2.4One library, any board
  6. 2.5STM32: a modular sensor driver
  7. 2.6STM32: use the driver in main.c and read the data
  8. 2.6bESP32: the same driver, read the data
3

The magnetometer members

Read the LIS2MDL magnetometer next to the IMU, so the board can find north.

  1. 3.1What is a magnetometer?
  2. 3.2STM32: the LIS2MDL driversoon
  3. 3.3Fusing data: 9 values to the plottersoon
4

Calibration coming soon

Measure and remove each sensor's offsets and scale errors, so you can trust the numbers.

5

Sensor fusion: filters coming soon

Combine all three sensors into roll, pitch and yaw that are steady, fast and do not drift.

How a lesson works

Read, do, check

  1. Read

    The idea in plain words.

  2. Do

    Numbered steps with screenshots and code to copy.

  3. Check

    What you should see, and fixes if you don't.

What you need

One board, one IMU, one compass

  • Board

    STM32 NUCLEO-F401RE or Arduino Nano ESP32

    Pick one. Each lesson shows both.

  • IMU

    One of: ISM330DHCX (reference), LSM6DSOX, MPU-6050, MPU-9250, ICM-20948, ICM-42688-P

    Accelerometer and gyroscope on one breakout.

  • Compass

    LIS2MDL magnetometer

    Shares the I2C wires with the IMU. Used for the heading (yaw).

  • Wiring

    Breadboard, jumper wires and a USB cable

    For your board.

  • Software

    Free tools

    STM32CubeIDE, the Arduino IDE and our web serial plotter. Chapter 1 sets them up.

Is it for you?

Check before you start

Good fit

You can write basic C (variables, if, loops, functions) and have flashed a board before. School math is enough: angles and a little trigonometry. Each new idea comes with a picture first, then the code.

Not yet

Never used an IDE? Start with chapter 1 anyway. It's free and sets everything up.

Your AI tutor

Stuck at 11 pm? Ask Steppe.

Steppe lives inside every lesson. It knows which lesson you are on, the code and the common mistakes, and answers in seconds, day or night.

  • Knows the lesson you're on
  • Explains errors and code, line by line
  • Points you to the exact step or slide
  • Can't solve it? You can write to me directly
SSteppeyour tutor
My IMU reads all zeros over I2C.
Most often it's the address. Many IMUs answer on one of two addresses depending on the SA0/AD0 pin, and HAL wants it shifted left by 1. Read WHO_AM_I first: if it returns the value from the datasheet, the wiring and address are right.

Example answer. Steppe can make mistakes; the lesson has the final word.

Free vs full course

Start free. Pay when you want the rest.

Free

$0

  • Chapters 1–2: project setup, serial plotter, IMU over I2C
  • All steps and code
Start chapter 1 free →

Full course

$80 one-time, or 4 × $20 monthly

  • Everything in Free
  • Chapters 3–5: magnetometer, calibration, sensor fusion filters
  • Members' lesson pages, and videos as they are released
  • Ask questions in each lesson
  • Steppe, your AI tutor, inside every lesson: ask about code or errors, day or night
Get the full course · $80

14-day money-back guarantee, no questions asked.

FAQ

Questions

Do I need both boards?

No. Pick one: the STM32 NUCLEO-F401RE or the Arduino Nano ESP32. Each lesson shows the steps for both.

My IMU is not the ISM330DHCX. Will it work?

Yes, if it is on the list in What you need. The code shows the I2C address and register values for each one.

What if I get stuck?

Each lesson ends with “What you should see” and the usual fixes. Members can also ask a question under any lesson.

How do I open the members' lessons after I pay?

Log in at steppeschool.com. Chapters 3–5 are there with all steps and code.

What if the course is not for me?

Write to us within 14 days and you get your money back. No questions asked.

Start with chapter 1 today. It's free.

Set up your board and see your first numbers in the plotter.