Roadmap · Build products
Embedded systems and IoT (Raspberry Pi)
Opens with creditsFor computer engineering, electrical engineering and CS students who want to build real devices on Arduino and ESP32, STM32 or Raspberry Pi. By the end you can write C for hardware, wire sensors safely, use UART, I2C and SPI, structure firmware with an RTOS, send data over MQTT to a dashboard and show a working device with measured results.
By the end, you will be able to
- Write C that controls hardware directly with bitwise operations, fixed-width types, pointers to registers and volatile, and explain where every variable lives in memory
- Wire LEDs, buttons, sensors and loads safely using Ohm's law, voltage dividers, pull-ups, correct logic levels and transistor or relay drivers
- Read sensors over GPIO, ADC, UART, I2C and SPI on your board, debug the bus with a logic analyser and calibrate the readings against a reference
- Structure firmware with interrupts, timers and FreeRTOS tasks, queues and mutexes, or Linux services on a Raspberry Pi, so several jobs run reliably at once
- Send readings over Wi-Fi and MQTT to a broker, database and dashboard with alerts, and present a finished device with a power budget, BOM and measured results
The path
10 stages, in the order to learn them. Open one to start.
1C for embeddedLearn the C ideas every embedded engineer needs, bits, registers, pointers and memory, and set up Python properly on Raspberry Pi OS for the application code you will write.7 topics · ~6 weeks
- 1Why C still runs the hardwareAlmost all microcontroller firmware is written in C, or in C++ used in a C-like way.
- 2Fixed-width integer typesThe size of
intin C depends on the compiler and chip: 16 bits on the classic Arduino Uno, 32 bits on an ESP32 or STM32. - 3Bitwise operations and masksPeripherals are controlled by registers, and each bit or small group of bits in a register means something: enable the clock, set a pin as output, choose a…
- 4Pointers and memory-mapped registersA pointer is a variable holding an address.
- 5volatile and compiler optimisationCompilers optimise by assuming a variable only changes when the code they can see changes it.
- 6Flash, RAM, stack and heapA microcontroller has flash, which keeps your program and constants when power is off, and a small amount of RAM for everything that changes.
- 7Python on the Pi, and when C mattersOn a Raspberry Pi you will write most application code in Python, because it runs on Linux with libraries for GPIO, sensors, MQTT and web dashboards.
7 in this stageOpen this stage2Electronics you needLearn enough circuit theory to wire parts safely: Ohm's law, resistors for LEDs, voltage dividers, logic levels, pull-ups, a shared ground and clean power.7 topics · ~4 weeks
- 1Ohm's law and powerVoltage is the push that moves charge, current is how much charge flows, and resistance opposes the flow.
- 2LEDs and current-limiting resistorsAn LED (light-emitting diode) only conducts one way and, once it does, has almost no resistance of its own.
- 3Voltage dividersTwo resistors in series across a voltage split it: the midpoint sits at Vout = Vin x R2 / (R1 + R2).
- 4Logic levels: 3.3 V and 5 VDigital pins read a voltage as low or high using thresholds, and each chip family has its own.
- 5Pull-ups, pull-downs and buttonsAn input pin connected to nothing floats: it picks up noise and reads random values.
- 6Common ground and clean powerVoltages are always measured relative to ground, so every connected part must share one: join the ground of each supply, sensor and module.
- 7Breadboard, multimeter and a first circuitA breadboard lets you build circuits without soldering: the holes in each short row are connected underneath, and the long rails along the edges carry power…
7 in this stageOpen this stage- Raspberry Pi GPIO basicsSet up Raspberry Pi OS headless and learn how Linux programs control hardware: GPIO with gpiozero, debouncing, PWM, callbacks and what Linux timing cannot do.8 topics · ~6 weeksOpens with credits
- Protocols: UART, I2C and SPILearn the three wired buses almost every sensor and module uses, wire each correctly, and prove what is happening on the wire.7 topics · ~5 weeksOpens with credits
- Sensors and actuatorsRead the physical world accurately and act on it safely: datasheets, ADCs, calibration and filtering, and switching motors, relays and other loads.7 topics · ~6 weeksOpens with credits
- Concurrency on LinuxRun several jobs at once on the Pi with threads or asyncio, queues and locks, and run your program as a service that survives crashes and reboots.5 topics · ~6 weeksOpens with credits
- Wireless and IoTTurn the Pi into a gateway: reliable Wi-Fi or Ethernet, MQTT with sensible topics, QoS and status, BLE and long-range radios for sensor nodes, and the security a device on your network needs.8 topics · ~6 weeksOpens with credits
- Cloud dashboards for devicesCarry readings from the broker into storage, flows and a dashboard people can use, with alerts that are trusted and a clear view of which devices are offline.7 topics · ~5 weeksOpens with credits
- Debugging hardwareFind faults when the cause could be code, wiring or power, with a method and the right tools: meters, logic analysers, debuggers, logs, watchdogs and brownout checks.6 topics · ~4 weeksOpens with credits
- Portfolio: a working deviceFinish one device properly: a power budget, a tidy build, a bill of materials, measured results from a real test, and a write-up that shows your engineering.5 topics · ~2 monthsOpens with credits
8 more stages, 53 more topics, free with an account.
You have seen the open stages of the Embedded systems and IoT roadmap. Every topic it covers is listed above, and an account opens the rest: what each topic means, a question to check yourself, the courses, the practice and Tauseef's advice for every stage. Early access is open: sign up and your account is active shortly after.
Everything here is free to learn from. A few things, like adding a roadmap, keeping a cheat sheet or asking Tauseef a question, use credits. You get 15 when you join, your first roadmap is free, and if you are learning seriously and run out, you can ask for more. Credits only make sure the platform goes to people who are actually learning.
Build a project
A finished project proves more than a certificate.
- Start with this oneintermediate2 semesters · 2 to 3 studentsClassroom CO2 and Ventilation Monitor Network with a Raspberry Pi Gateway for Schools
A Raspberry Pi gateway with a local broker, database and dashboard serving CO2 sensor nodes
- Raspberry Pi (gateway)
- Raspberry Pi Pico W or ESP32 nodes
- NDIR CO2 sensor (e.g. SCD40/SCD41)
- Eclipse Mosquitto
- Python (paho-mqtt)
- intermediate2 semesters · 3 studentsWireless Nurse Call and Response Time Tracker for Small Hospitals
Battery radio buttons and a Raspberry Pi gateway, with response times measured on a dashboard
- ESP32 or ESP32-C3
- ESP-NOW or LoRa radio
- Low-power firmware (deep sleep)
- Raspberry Pi gateway
- MQTT
- advanced2 semesters · 3 to 4 studentsGrain Store Spoilage Early Warning with Temperature Cables and CO2 Sensing
LoRa sensor probes reporting to a Raspberry Pi gateway, with analysis that warns before spoilage
- ESP32 with LoRa (SX1276)
- DS18B20 sensor chains in PVC probes
- NDIR CO2 sensor (SCD40 or MH-Z19)
- Raspberry Pi LoRa gateway
- Python (NumPy, SciPy, pandas)
Related on Sefism
Picked from the other libraries by shared topics.
Project structures
See allCareer questions
See all- Can I learn programming with an old laptop or slow internet?Yes. Most programming needs very little computing power. Choose lightweight tools, download documentation and material when you have a connection, work offline in focused blocks, and plan around power cuts. Avoid heavy setups such as large IDEs, emulators and big local containers until you have better hardware.
- Should I start embedded systems with Arduino, ESP32, STM32 or Raspberry Pi?Start with Arduino and ESP32 if you want quick, cheap wins and connected projects, STM32 if you want industry-style firmware and a real debugger, and Raspberry Pi if your project needs Linux, a camera or a gateway. Pick one, go deep for a few months, and the others become easy later.
- How do I become an embedded systems engineer as a computer or electrical engineering student?Learn C properly, enough electronics to wire safely, one microcontroller in depth, the UART, I2C and SPI buses, an RTOS and a debugger, then finish one real device with measured results. Employers hire embedded engineers on evidence that you can make hardware work, so your projects and write-ups matter more than certificates.
Stuck on something specific?
Writing only gets you so far. If you want an answer to your situation rather than the general case, book a session and we will work through it together. Sessions are free for approved Sefism members, and a few slots open each week.
- 1:1 Mentorship
- Fresh Graduate Mentorship
- Career Guidance
Brand deals, promos and partnerships: tauseeffayyaz@gmail.com