Testing bare-metal embedded C isn't straightforward. Someone will shout "stop using printf," and you'll yell back, "what's a printf?" They'll follow up with something about emulators. They're not wrong, but how do you efficiently regression test on the emulation target? Sure, you'll eventually have Requirements Based Tests (RBT) and "black box test procedures," but they are hardware-in-the-loop and tedious to run. A full RBT suite can take weeks to execute with a combination of manual and scripted tests. The pathway to happiness isn't simply a fast "edit-compile-run" development loop, but a "edit-compile-run-It Works and Didn't Break Something Else" cycle. Enter cross-compiled TDD.
Stepper motors are a type of brushless DC motor that can be controlled so that they advance a fixed step size. Additionally, they provide a strong holding torque. This can make them useful in applications where you want to rotate the motor precisely without employing encoders. When prototyping, I like to use development boards that can be transferred to a custom PCB easily. This gives me a clear path if I want to move the design from the Protoboard to something more polished.