Programming the Raspberry Pi Pico with Rust

A silhouette of a crab holding a gear with a Plus sign with a Raspberry Pi Pico to it's right

A guide for getting projects done with the Raspberry Pi Pico using Rust

This page is an Index

When programming for microcontrollers, there are (often frustrating) limitations that are not present when programming for platforms with operating systems. This page is an index of posts that tackle the theory of microcontroller programming and gives examples of how to do those things on the Raspberry Pi Pico, using Rust.

I made this post on day 1 of my journey with Rust and the Pico


Quick Start

Preparing a computer for programming with Rust, connecting to the Raspberry Pi Pico, and how to blink an onboard LED.

Controlling Digital Outputs

How to configure GPIO pins on the Raspberry Pi Pico to function as digital outputs using Rust.

Handling Inputs

Configure pins on the Raspberry Pi Pico to handle incoming signals from devices in the field, specifically button presses in this instance.

Understanding GPIO

What is GPIO? What kinds of GPIO can the Raspberry Pi Pico handle? And How to use these GPIO respectively in a given project? High-level answers with code provided here.

PWM Outputs

Set up instructions for creating PWM outputs on the Raspberry Pi Pico.

LCD Menu Pt.1

Hardware configuration for SSD1306 LCD Menu with Raspberry Pi Pico.


LCD Menu Pt.2

Unit testing for embedded systems wasn’t something I was able to easily figure out. Here is my trick to getting those setup. I highly recommend learning this so that debugging steps can be done on your dev machine!

Using the HW-390 with the Raspberry Pi Pico

Description of the sensor, useful links, and some ideas for how to program your system to more simply integrate with this sensor, and others like it.

LCD Menu Pt.3

Designing A Control Structure for an LCD Menu for a Raspberry Pi Pico Project is a surprisingly challenging task. Follow along in this post for a bit of insight into considerations for menu navigation and UI control of an application.

Understanding ADC

How to implement a field device that provides feedback to the Raspberry Pi Pico via ADC pins.


Automation of Decision Making in Plain Terms

A practical application where decision making logic must be done to update application state and thus, outputs. This post shows a way to make code readable, and maintainable by focusing on clean abstraction.

Updating Application State from IO Devices

Description of the sensor, useful links, and some ideas for how to program your system to more simply integrate with this sensor, and others like it.


Don’t forget about the search utility!

I’ve covered non-embedded programming with Rust on My Blog as well and searching might find what you need!