The Year of the MicrocontrollerPage created: 2023-01-01 , updated: 2023-05-26
Okay, here’s how this is gonna work: I’ll post sporadic updates in a series of log/blog posts. Ideally these will be very frequent and very small, so instead of spamming everybody with every little thing, I’ll wrap up some number of updates into "chapters" and post those to my site-wide RSS feed (link at top of every page).
Chapters as I post them:
MC2023 Chapter 1: Hello World and blinking LEDs.
Two month hiatus as I finished two separate things with deadlines. And one itch without. And…then another. Sheesh.
MC2023 Chapter 2: Blinking, buzzing, events, PWM, and a new book.
MC2023 Chapter 3: More PWM with a servo.
MC2023 Chapter 4: I2C and an OLED
MC2023 Chapter 5: ONGOING! (Programming the Pico PIO)
Note 2023-05-26: I’ve updated the "Roadmap" section at the bottom of this page with my current plan so I can kind of see where I’m at in the big picture.
What is this?
In about the middle of 2022, I realized that I was forming a significant backlog of fun microcontroller projects that I wanted to do. I already had a stupidly huge list of concurrent software projects going, so there was absolutely no way I was going to be able to add anything else. What to do?
Well, I decided that I would box up all of the microcontrollers, breadboards, LEDs, and the rest and pack it up until 2023. (Thank goodness this is a physically small hobby, right?)
And when 2023 came around, the boxes would come out and it would become… μc2023: The Year of the Microcontroller
My family has been hearing me talk about the coming Year of the Microcontroller for at least five months to the point where it’s become a bit of a running meme in the house.
But guess what? On Dec 31 I got the boxes out and took over a corner of the dining room table. And today is the first day of 2023 and I’ve got everything powered up and ready to go!
In a larger sense, this is about going deeper with a project/subject and using what I have rather than chasing "new shiny things".
I’m not alone!
Check out Alex Williams’s awesome blog entry:
What the heck is that computer?
I’ve chosen to use my cardboard computer Raspberry Pi "luggable". I’ve swapped out the Pi Zero for a full-size Pi 4 Model B because of the additional USB port availability.
Update: Check out chapter1 to see what it looks like now!
I don’t mean to tease anyone with these currently unobtainable Raspberry Pi computers - I paid regular price for them years ago. This development could easily be done on a $50 used laptop. The real reason I’m going with my cardboard computer is that I want my kids to see that I’m not on "just another screen" while I’m doing this microcontroller development. I want this to look more like other physical crafts and hobbies (which I also do).
Update: It’s working! I’m already seeing way more interest from the kids in my weird little cardboard setup than I ever do with the projects I do on a laptop or desktop!
Update2: The kids also like it when things blink, beep, or move.
Roadmap (Updated in May)
So I have a tentative list of projects I’d like to build. I think I’ll update this content as an aperiodic blog as I build things throughout the year. (Update: So far so good.)
Roughly, my plan is:
DONE: Blink some LEDs - start with official C SDK and docs.
CURRENTLY: Complete book Programming The Raspberry Pi Pico/W In C by Harry Fairhead.
Make a household "multi-timer" for the whole family - we time a lot of things! (Lights, sounds, and some sort of display).
Learn ARM Assembly language on the Pico (I have RP2040 Assembly Language Programming by Stephen Smith)
Build a keyboard (I have owned a plate and caps/switches for years)
Drive a wide character LCD (have owned for years)
Put it all together: a stand-alone RP2040 (Pico) computer, maybe running a Forth-like language/OS of my design? (This would obviously continue well past the initial year!)
My ultimate goal is to treat these cheap, powerful computers as computers because they are! These things are way more powerful than the home computers of the 1980s.
Ideally, this would culminate in a fun environment for my kids to learn hobby programming and physical computers. I’m hoping that seeing me work on this will inspire them. I play the "long game" with them, never forcing them to learn this stuff, just always leading by example.
If you’d like to follow along, follow my RSS feed (link at the top of every page).