
Begin a practical, hands-on journey with the Raspberry Pi Pico, solder headers, and Thonny setup, then explore timers, pulse width modulation, analog-to-digital converter, interrupt requests, and SPI, I2C, UART.
Prepare the Raspberry Pi Pico for soldering by attaching headers, cleaning joints with alcohol, and tinning the iron tip at 350 degrees, while avoiding water, movement, and common soldering mistakes.
Heat the pad and pin with the soldering iron for 2–3 seconds, apply solder from the opposite side, and let the joint cool to a shiny, concave, well-wetted connection.
Practice soldering the Raspberry Pi Pico pins and reset joints with a solder sucker. Install the software to program the Raspberry Pi Pico on Linux, Windows, or Mac.
Install the Raspberry Pi Pico on Linux via Xubuntu with Ubuntu 20.04 LTS, flash the UF2 file, then blink the onboard LED using MicroPython pin 25 and a timer.
Discover how to set up Thonny on Linux for the Raspberry Pi Pico, connect, write a hello world program, blink an LED, and save your project.
Set up the Raspberry Pi Pico on Windows, hold the boot select (BOOTSEL) button, install MicroPython, and use Thonny or CoolTerm to run main.py that blinks GP25 using timer.
Explore the Raspberry Pi Pico’s GPIO system, learning how to read and write pins, use pull-up and pull-down resistors, and configure pin modes for reliable input and output.
Explore timers and counters, how triggers increment counts and overflow is handled, and measure elapsed time using frequency or period. Learn one_shot versus periodic modes with callbacks.
Explore pulse width modulation on the Raspberry Pi Pico and master how frequency and duty cycle shape LED brightness and motor speed through PWM pins.
Learn how the Raspberry Pi Pico's ADC reads voltages via an ldr-based voltage divider, outputs values up to 65535, and controls the onboard led based on brightness.
Access the pico adc 5th channel, convert the reading to voltage with 3.3v and 65535. Compute temperature from 0.706v at 27 degrees Celsius with a -0.001721 v per degree slope.
Explore how interrupts enable concurrent tasks by triggering interrupt service routines for timed events and button presses, including debouncing and avoiding delays inside ISRs.
Master Pico peripherals from GPIO read/write to pull-ups and pull-downs, timers and PWM. Learn about the ADC with a temperature sensor and interrupts to gain fast hands-on results.
Explore the serial peripheral interface (SPI) with master–slave shift registers, MOSI, MISO, SCK, and chip select, enabling bidirectional data transfer and real-world uses like flash memory and SD cards.
Explore SPI clock polarity and phase, including leading and trailing edges, data sampling on MOSI/MISO, and how four options (two polarities and two phases) shape Pico configurations.
Learn to configure SPI on the Raspberry Pi Pico, choosing SPI0 or SPI1 and pins, and understand baud rate, polarity, phase, MISO/MOSI naming, and basic read/write buffers.
Learn i2c, or twi, a bus system that links multiple masters and slaves via two wires (sda, scl) with pull-up resistors, enabling rtc, eeprom, and sensors like bh1750.
Explore how I2C transfers data between a master and a slave over SDA and SCL. Learn how clock-driven, half-duplex communication uses addresses instead of chip selects.
Master I2C on the Raspberry Pi Pico by configuring I2C0 with flexible pins, scanning the bus, and reading from or writing to slave devices using readfrom, writeto, and readfrom_mem.
Learn how the universal asynchronous receiver/transmitter (UART) enables simplex and two-way communication on the Raspberry Pi Pico, covering start bits, data bits, parity, stop bits, and speed mismatches.
Learn to use uart on the Raspberry Pi Pico by configuring uart1, baud rate, data bits, parity, stop bits, and tx/rx pins to send and receive data, with gps example.
Learn how to handle voltage levels when interfacing Raspberry Pi Pico with Arduino and GPS, avoiding 5V damage by using 3.3V supplies and a level shifter on I2C and UART.
Discover why Raspberry Pi Pico pins cannot power motors directly due to a 12 mA limit, and how H-bridges with transistors safely drive motors from separate power supplies.
Explore the Raspberry Pi Pico pin limitations, including voltage levels and current. Learn when to use a level shifter and an H-bridge for motors and sensors.
Master microcontroller concepts with the Raspberry Pi Pico by installing MicroPython, then explore periphery features such as timers, PWMs, ADC, interrupts, and the Pico's communication protocols.
I tailored this course to get you jump-started for the newest family member of the Raspberry Pi family: The Raspberry Pi Pico. After a short soldering session and software installation for your Windows or Linux system, I at once dive into practical topics such as:
Timers and Counters
Pulse Width Modulation
Interrupts
Analog-to-Digital Converter (ADC)
Communication Protocols (SPI, I2C/TWI, UART)
Connections to other peripheries, sensors, and actuators (Example: Arduino) to the Raspberry Pi Pico
First, each topic explains what the function does and how it works. Practical examples, tips and tricks, and exercises to try out the topic by yourself follow. To maximize the take-away from the course, the exercises offer hints and tips, in case you get stuck somewhere. If nothing works, I give solutions in well-documented source code for your experiments and modifications. In addition, I show practical examples, of how to connect the periphery to the Raspberry Pi Pico, how to protect it against over-voltage, and how to use it with larger electrical components such as motors, so that you can enjoy your Raspberry Pi Pico as long as possible.
This course follows the motto: “Learning by Doing“ and you will need a few hardware components to complete the course successfully. I list them in the first lecture, available for free. In addition, I assume that an enrolled student has some Python programming experience and knows how to write functions, loops, and how to import modules. If you already know any other programming language, you will not face any issues and pick up Python on the fly.
I designed this course specifically for the Raspberry Pi Pico so that it offers everything in one place. After completing this course, the successful students will have the experience to plan and carry out their own projects for the Raspberry Pi Pico and learn the fundamentals of omnipresent peripheries encountered in the domain of embedded systems.