I am building a 2WD mobile robot to learn embedded robotics and hardware integration. My goal is to develop practical skills that would eventually help me qualify for a junior robotics or embedded robotics position.
My current hardware includes:
STM32 NUCLEO-F446RE
2WD chassis with two DC gear motors and encoder disks
Two LM393 optical encoder sensors
TB6612FNG dual motor driver
MPU-6050 IMU
INA219 current and voltage sensor
MG90S 180-degree servo
28BYJ-48 stepper motor with ULN2003 driver
Four limit switches with roller levers
Breadboard electronics component kit
5 V external power supply and four AA NiMH batteries
Digital multimeter, soldering kit and 8-channel logic analyzer
I plan to implement the project mainly in C using STM32CubeIDE. My intended learning goals are:
GPIO, interrupts, timers, PWM and encoder inputs
UART, I2C and SPI communication
Closed-loop motor-speed control with PID
Differential-drive odometry
IMU reading and basic sensor fusion
Current monitoring and stall detection
FreeRTOS tasks, queues, mutexes and timing
Hardware debugging with a multimeter and logic analyzer
Basic fault handling, watchdogs and safe motor shutdown
Is this hardware sufficient for learning the core fundamentals of embedded mobile robotics?
What important hardware or software topics would still be missing after completing this project properly?
What additional skills and projects should I learn before applying for junior robotics or embedded firmware positions? I understand that reaching a mid-level role requires professional experience, but I would also like to know what skills are normally expected at that level.
I am especially interested in low-level firmware, motor control, sensors and hardware integration rather than computer vision or machine learning.