Software to Install —
Toolchain Readiness Assessment
Verify your understanding of every software tool required for embedded systems development, before relying on that environment throughout the rest of the course.
About This Assessment
This assessment checks that every required piece of embedded development software is installed correctly and that you understand why each tool exists —not just how to click through its installer. It’s organized into four sections:
Section A — Multiple Choice
10 questions covering the core role of each tool.
Section B — Short Answer
5 questions requiring a written explanation in your own words.
Section C — Scenario-Based
4 real-world troubleshooting and decision-making scenarios.
Section D — Verification Checklist
A practical checklist confirming every install actually works.
Multiple Choice Questions
Each question shows the verified correct answer along with the reasoning behind it.
PlatformIO provides a professional development environment where multiple embedded platforms can be developed using the same editor and workflow, rather than switching tools every time the target board changes.
STM32CubeIDE provides everything required for STM32 development —configuration, coding, debugging, and flashing —in a single install.
Everything needed for STM32 development ships together —no separate CubeMX install required.
The nRF Connect SDK uses Zephyr RTOS as its foundation and adds Nordic-specific libraries and tools on top.
These Linux build systems require a genuine Linux environment, which WSL2 provides directly inside Windows.
PulseView captures and decodes I²C communication at the wire level, making it easy to verify the actual data being transmitted between the sensor and the microcontroller.
Wireshark analyzes network traffic and helps debug communication over network protocols, distinct from the hardware-bus debugging PulseView handles.
Hardware bus vs network: same debugging instinct, applied at two completely different layers of the stack.
screen are primarily used as:They allow developers to view serial output (printf) and send commands directly to the microcontroller.
framework = espidfPlatformIO automatically manages the ESP-IDF toolchain, its dependencies, and version updates —no need to manage them manually.
Git helps track project changes and manage source code throughout the course, so it needs to be installed early even though it’s taught in depth later.
Both tools decode different layers of communication and serve different debugging purposes —one for the wire, one for the network.
Short Answer Questions
Each answer is written out in full, in your own words.
Arduino IDE is a good choice for beginners and small projects, but it has limited features for professional embedded development. PlatformIO with VS Code supports many different boards such as ESP32, STM32, and Nordic nRF, allowing us to use one editor throughout the course instead of learning a different IDE for every manufacturer.
Another important capability is debugging. PlatformIO supports GDB debugging, which lets us set breakpoints, inspect variables, and troubleshoot programs far more effectively than Arduino IDE allows. It also provides better Git integration and project management for larger embedded applications.
STM32CubeMX is a graphical configuration tool used to configure STM32 microcontrollers. It helps us select GPIO pins, configure clocks, enable peripherals like UART, SPI, and I²C, and automatically generate initialization code.
STM32CubeIDE is a complete Integrated Development Environment. It includes CubeMX along with a code editor, compiler, debugger, and flashing tools. Since CubeMX is already bundled inside CubeIDE, installing CubeIDE alone is enough for most users —no separate CubeMX install is required.
Pins, clocks, peripherals.
Generates init code.
Includes CubeMX + editor + debugger.
One install covers everything.
Without WSL2, several Linux-based tools required later in the course would not work properly:
- Yocto Project — used to build custom Embedded Linux systems, and requires a Linux environment.
- Buildroot — another Linux build system that depends on Linux commands and utilities.
- Linux bash scripts and command-line tools — many automation scripts used in embedded development are written for Linux and run smoothly inside WSL2.
WSL2 provides a genuine Linux environment on Windows, allowing these tools to work without installing a separate Linux operating system.
WSL2 doesn’t replace Windows —it runs alongside it, giving Linux-only build systems somewhere to actually execute.
nRF Connect for Desktop is mainly a launcher that provides access to various Nordic development tools. By itself, it cannot compile or build embedded applications.
The actual development environment is provided by the nRF Connect SDK, which is downloaded using the Toolchain Manager. The SDK includes Zephyr RTOS, compilers, libraries, and other required development tools. Keeping the SDK separate from the launcher also allows multiple SDK versions to be installed side by side for different projects.
To verify that every software installation is working correctly, a simple Blink program is built and uploaded to each supported board:
| Board / Toolchain | Action that proves it works |
|---|---|
| ESP32 (Arduino IDE) | Upload the Blink example and verify the LED blinks. |
| ESP32 (PlatformIO + ESP-IDF) | Run pio run -t upload and confirm the LED blinks. |
| STM32 Nucleo | Build and flash the Blink project using STM32CubeIDE. |
| nRF52840 DK | Build and flash the blinky sample using the nRF Connect SDK. |
| Raspberry Pi / Linux SBC (if available) | Boot Linux successfully and run a simple GPIO test. |
If each board successfully builds, flashes, and runs the Blink program, the corresponding toolchain is confirmed working.
Scenario-Based Questions
Real troubleshooting and decision-making situations you’ll actually run into.
If STM32CubeIDE cannot detect the ST-Link, the following checks are run in order:
lsusb (Linux) to confirm the ST-Link is even detected at the operating system level.No, they do not conflict with each other.
PlatformIO manages each project separately. Every project contains a platformio.ini file where the required framework —Arduino or ESP-IDF —is chosen explicitly. Since each project uses its own isolated build environment, both frameworks can be installed on the same computer and used independently without affecting one another.
Each project’s platformio.ini defines its own framework and build environment —no shared state, no conflict.
PulseView works with a logic analyzer to capture signals directly from communication buses such as UART, SPI, I²C, CAN, and Modbus RTU. It decodes the transmitted data and displays the actual communication frames.
Wireshark is different because it captures network traffic such as Ethernet, Wi-Fi, TCP/IP, MQTT, and HTTP. Since Modbus RTU uses serial communication rather than a network, PulseView is the correct tool for this task —the same distinction covered in A5/A10 above.
During an STM32 debugging session, it is useful to keep these five open at once:
Five tools, five different vantage points on the same bug —firmware, serial output, bus traffic, hardware voltages, and the datasheet itself.
Software Installation Verification Checklist
A practical, repeatable way to confirm every tool actually works —not just that it installed.
| Software | Verification Method | |
|---|---|---|
| ✅ | VS Code | Opens successfully and creates a new project |
| ✅ | PlatformIO Extension | Builds and uploads a sample project successfully |
| ✅ | C/C++ Extension | IntelliSense and code completion work correctly |
| ✅ | Arduino IDE | Blink sketch compiles and uploads successfully |
| ✅ | ESP-IDF (PlatformIO) | pio run -t upload completes successfully |
| ✅ | STM32CubeIDE | Build, flash, and debug a Blink project |
| ✅ | ST-Link Drivers | Board is detected and firmware update works |
| ✅ | nRF Connect for Desktop | Opens and launches applications successfully |
| ✅ | nRF Connect SDK | Builds and flashes the blinky sample |
| ✅ | nRF Connect VS Code Extension | Detects installed SDK and creates projects |
| ✅ | nRF Connect Mobile | Connects successfully to a BLE device |
| ✅ | Git | git --version, git init, and git clone work correctly |
| ✅ | PuTTY / Screen / Picocom | Opens the serial port and displays UART output |
| ✅ | Wireshark | Captures and displays network packets |
| ✅ | PulseView | Detects the logic analyzer and captures signals |
| ✅ | WSL2 + Ubuntu | Ubuntu launches successfully and Linux commands execute correctly |
Summary
- All required development software is installed correctly.
- Each embedded platform (ESP32, STM32, nRF, and Linux SBC) has a working toolchain.
- Essential debugging and communication tools are ready for future modules.
- The development environment is prepared for building, flashing, debugging, and testing embedded applications throughout the course.
End of Assessment — Module 0.2
Embedded Systems Foundations — Assessment, Module 0.2: Software to Install