Close

Choosing hardware

A project log for Unnamed ARM console project

Tiny handheld console with from-scratch software for learning purposes

yuri-pietersYuri Pieters 07/06/2022 at 12:260 Comments

I've been fascinated by software for a long time, and particularly the nitty gritty of how a computer actually does its thing. This project is a way to really get to grips with that nitty gritty by delving into embedded programming, doing away most of the abstractions we tend to layer on top of things when we actually want to get stuff done. That said, I do also want to get something done at some point, and one of the ways I'll try and do that is by keeping the hardware simple and easy to work with.

I've worked with Cortex-M microcontrollers before, namely on the Seeeduino XIAO and the ARM Mbed board, so I thought this would be a good place to start. More powerful than the AVR chips in most Arduino boards, with, in my opinion, better tooling support, I didn't have to think much about this one. Looking into what was available, I quickly discovered the Raspberry Pi Pico, a microcontroller from the Raspberry Pi foundation built around their own Cortex-M0+ based chip called the RP2040. It came out since I was last looking into this stuff, and frankly it's pretty dang awesome. They have extensive, user friendly documentation, a well maintained and easy to use SDK, and a bunch of other things that make my little nerd heart sing. My favourite might be that you can use a second Pico as a debug adaptor! Given that each Pico is less than £4, this is a for more palatable proposition than traditional debug probes, which are aimed at professionals and costing hundreds.

With a microcontroller picked out, I moved on to the other parts I'd need. I picked out buttons, a screen, and even a little PCB speaker. I actually ended up making a mistake with the buttons, ending up with ones which were far too tall, but they'll work just find for a prototype. The screen I picked out is a cute little white-on-black OLED board from Adafruit. It will all wire up pretty simply to the Pico's GPIO and SPI pins, ultimately putting the focus onto the software for now.

Eventually what I'd love to do is put it all together onto a custom PCB, but that's a ways down the line. With the parts ordered and now mostly set up on a breadboard, it's time to move on to the software! It's here that I start making life hard for myself.

Discussions