k4s.xyz

Embedded Rust on the RP2350

I want to be upfront and state clearly the contents of the following lessons were generated using Anthropic's Claude. I have mixed feelings about this but want to experiment using it as a tool to enhance my own ability and understanding, not stand in for my desired skills and abilities.

While the first programs I ever wrote I think were in Python, my first meaningful projects came about through Arduino--particularly the Duemilanove with the Atmega 328p. Not long after I began learning C. After going off to college and dropping out, it was many years before the embedded bug came back around in full swing but the time has come again.

I'm really attracted to the RPi Pico 2 as a platform for refamiliarizing myself as the company does not produce a huge variety of platforms and variants to pick and choose from. While I gave the STM32 Discovery board a go a few years ago, it didn't stick. I'm not sure what it is about the Pico that really grabs me other than being able to maintain a singular focus in my own mind. I really just want to get to know a single platform really well and this allows me to have an externally enforced constraint rather than an infinite grab bag from which to choose.

I've also never been able to find the perfect source of learning material that matches the components I have on hand and, most importantly, answers the questions that I have when approaching an embedded platform. That's why I'm bringing in the assistance of an LLM to churn through several sources of tutorial and teaching material linked below:

A few more thoughts before I close out:

  1. This is not a tutorial for beginners to Rust, nor beginners to embedded systems. I'm somewhere in the intermediate range with gaps in some places and thorough understanding in others. The intent is to tailor this to my own personal needs and answer my own personal questions.
  2. LLM's, as we all know, make mistakes. So do humans. There are countless instances where real, honest-to-goodness human teachers have taught me factually inaccurate information. Neither source is infallible as they are one-in-the-same.
  3. These lessons are subject to change as I morph them to fix mistakes, focus on additional subjects, or simply for my own selfish purpose. Regardless, I hope you find valuable insight, both in the material provided and into my own process of learning.

I will publish lessons as I complete them. I am, in fact, reading these lessons with my human eyes, typing in code with my human hands, and attempting to understand the information with my human brain so it is a slow process. Additional "Foundations" will be published in cases where I need to spit-shine my understanding of a particular topic. Enjoy (or don't).