
This lecture describes how to get started with Keil Studio Cloud.
To access Keil Studio Cloud go to: https://studio.keil.arm.com/
This lecture is essential since this course is hands-on oriented, requiring access to real hardware for practice. In this section, you will find two important documents:
LabsLand Access Guide – This document explains how to get online access to real, pre-configured hardware through LabsLand. LabsLand enables you to interact with physical microcontrollers and peripherals via a real-time video stream, without the hassle of setup or wiring mistakes. Free access for a week is included with this course, and additional access can be purchased affordably.
Physical Lab Setup Guide – If you prefer to set up your own local lab, this document provides details on the necessary hardware components. However, this approach is more complex, costly, and not recommended, as it requires sourcing, wiring, and configuring everything manually.
For most students, LabsLand is the best option, ensuring a smooth learning experience with minimal setup effort. The final challenge of the course relies on LabsLand’s Hybrid Lab technology, which cannot be fully replicated in a local setup, so even if you build your own lab, we strongly recommend using LabsLand for that assignment. However, we do provide an alternative approach for local setups if needed.
This lecture, which is mostly conceptual, focuses on the concepts behind GPIOs, digital inputs and outputs, and how microcontrollers interact with components like LEDs and buttons. You'll also learn about pull-up and pull-down resistors and what the potential button-bouncing issue is.
By the end, you will:
Understand GPIOs and their role in microcontrollers.
Understand LEDs as outputs.
Understand Buttons as inputs.
Using pull-up and pull-down resistors to stabilize input signals.
Understand button-bouncing issues.
This will prepare you for the more practical programming-oriented lessons that will follow.
Licensing Info and Optional Resources
Some diagrams (indicated) are from SparkFun (licensed under CC BY-SA 4.0).
Some plots are from the Makeability Lab (licensed under the MIT license).
The optional in-depth tutorials related to these topics are linked in the resources.
In this lecture, you'll get familiar with the Nucleo-WB55RG board, the microcontroller platform we’ll use throughout this course. We’ll explore its capabilities, look at its pinout diagram, and understand how to read it. You'll also be introduced to the LabsLand remote lab setup, including its Fritzing diagram, which we’ll use for all practical activities and assignments.
By the end you will:
Understand the Nucleo-WB55RG’s features and layout.
Know what a pinout diagram is and how to interpret it.
Recognize the lab setup we’ll use and how to reference it in your projects.
This hands-on lecture will teach you how to configure GPIOs in MBED OS 6 to control LEDs and read button inputs on the Nucleo-WB55RG. You’ll learn how to use the DigitalOut API to turn LEDs on and off, and how to use DigitalIn with a pull-up resistor to detect button presses.
We’ll also work directly with the LabsLand remote lab, testing our programs in real-time, and use the Fritzing diagram as a reference to understand the hardware connections.
By the end of this lecture you will:
Configure GPIOs as digital inputs and outputs in Mbed OS 6.
Control LEDs using DigitalOut API.
Read button presses with the DigitalIn API and use a pull-up resistor.
Test everything on real hardware through LabsLand.
Learn to use the Fritzing diagram as a reference for your programs.
This is a practical lecture. Though not required, feel free to follow along as we code, and feel free to upload and test the programs in LabsLand.
This lesson explains and walks through a standard solution to the “Custom On Demand LED Sequence” assignment. It is optional, and I recommend trying to complete the assignment on your own before watching the solution.
This hands-on lecture presents what the Serial Terminal is and how you can use it in our microcontroller in Mbed. After the lecture, you will know:
What the Serial Terminal is and what it is used for.
Why it is useful for debugging and other purposes.
How to initialize the UnbufferedSerial class.
How to use C's printf() function to write human-readable text to the Serial Terminal.
Common caveats regarding the Serial Terminal.
How to use the UnbufferedSerial's lower-level write to send binary data.
This lesson explains and walks through a standard solution to the "Voltage Warning" assignment. It is optional, and I recommend trying to complete the assignment on your own before watching the solution.
This lecture, which is mostly conceptual, focuses on the concepts Pulse-Width Modulation and how it is used to control things such as LED brightness or as a signal to control servo motors and other devices.
By the end, you will:
Understand PWM
Understand PWM's role to control the amount of power a component receives (such as a LED)
Understand how that can be leveraged for LED brightness control
Understand PWM use as a signal for Servo Control
This will prepare you for the more practical programming-oriented lessons that will follow.
Licensing Info and Optional Resources
Some diagrams (indicated) are from SparkFun (licensed under CC BY-SA 4.0).
The optional in-depth tutorials related to these topics are linked in the resources.
This lesson explains and walks through a standard solution to the "Servos and Lights" assignment. It is optional, and I recommend trying to complete the assignment on your own before watching the solution.
This lesson explains and walks through a solution to the "Smart Parking System" assignment. It is optional, and I recommend trying to complete the assignment on your own before watching the solution. This assignment is also more complicated than usual and its solution video is quite long and detailed, so feel free to skip sections.
Want to learn microcontrollers and embedded systems with real hands-on practice — but without buying any hardware? This course is for you.
You'll write C code and run it on real STM32 hardware online. Everything works directly in your browser. No setup. No devices to buy.
You'll use Keil Studio Cloud (a modern, browser-based IDE) to program real hardware — and see your code come to life through LabsLand’s online remote lab system. Watch LEDs blink, servo motors move, and sensors respond, all in real time.
What You'll Learn
Set up and use STM32 peripherals like GPIOs, PWM, and ADC
Control LEDs, buttons, servo motors, and read analog inputs
Use serial communication to debug and interact with your programs
Complete exercises and assignments using real online hardware — no simulations
Why This Course Is Unique
Real hardware online – Not a simulation. You control real microcontrollers remotely.
No hardware needed – Skip the cost and delay. Start immediately from any browser.
Hands-on and practical – Each concept is applied directly with real hardware exercises.
Beginner-friendly – If you know basic C, Python, or Java, you’re ready. No prior embedded experience needed.
By the End, You’ll Be Able To:
Program STM32 boards confidently
Use digital and analog I/O
Control devices with PWM
Debug embedded programs with serial output
Build and test a full smart parking system using real hardware
Perfect for:
Students, hobbyists, and professionals who want real microcontroller experience — without needing to set up a lab.
Enroll now and start programming real hardware online today!