๐Ÿ—ณDabling in Microelectronics

Table of Contents

๐Ÿš€ How it Started

Many years ago, I built some interactive prototypes using Arduino1. At the time, it was a means to an end. We, as a team, needed to get a project concept built into something functional for a brief demonstration. This would be my foray into microelectronics and programming in general.

๐Ÿ› ๏ธ Arduino was a Good Start

Landscape

Programming the Arduino ATMEGA 180[^2] was difficult at the time, because I had little knowledge about programming or electronics. I had a Make magazine2 electronics project book and some Arduino example programs that had come with the IDE.

๐Ÿ’ก From this, I Learned a Lot

I learned so many things from my first projects. Spec sheets, parts, Ohm’s law3, multimeters4, soldering5, burning out LEDs, and using bad USB cables.

It was all very frustrating and surprisingly costly. So many tools were needed in order to enter that realm. From what I had understood at that time, maybe it wasn’t a good skill to pick up at the time.

๐Ÿ”ฎ Fate Would Bring Us Closer

Landscape

Later on, I would be working on design projects that involved electromechanical assemblies. This would bring me into proximity with electronics engineers and embedded software developers. I learned a lot through osmosis. So many little tidbits of information like PCB design principles6 and SMD board assembly7.

๐Ÿ“บ EEV Blog

Landscape

It was around 2017 when I discovered Dave Jones, the host of EEV Blog8 (YouTube Channel) and Author/Administrator of a very large Electronics Engineering Forum by the same name EEV Blog. He is an intriguing and energetic fellow who really knows the industry.

Through watching his VLOGs from time to time, I passively learned a ton about his industry. How to design a PCB with a sane Bill of Materials. Common beginner mistakes with PCB design, including tips and tricks for manufacturing optimization. I also learned about Multimeters, Oscilloscopes9, Logic Analyzers10, Signal Generators11, and more through his lectures.

๐ŸŒ ESP32

Landscape

I came to realize that the ESP3212 was causing this renaissance in embedded engineering. A system on a chip that is as powerful as a computer from the late ’90s at the cost of artisanal coffee. So, I started learning about ESP32, even using it for a couple of simple interactive controller projects.

๐Ÿฅ‡ In Comes the Pi Pico

Landscape

A second player enters the game. The Raspberry Pi Pico13 suddenly unveils a microprocessor with even more capability than the ESP32, with an even friendlier set of tools for programming it.

๐Ÿค The Community around Pico

peLH-HNza44

Thanks to the current internet landscape with YouTube videos and blog posts abound, I was able to find a number of creators talking about the Pico. MicroPython14, C15, C++16 specialists all making interesting projects. My friend David is also delving into this.

๐ŸŒฑ The Ecosystem that has Developed

Much like the ecosystem surrounding the Raspberry Pi Computers17, the Pico has a large support network creating loads of documentation.

๐Ÿ”„ TinyGO, Zig, Rust

Thanks to LLVM18, a new group of embedded languages have cropped up, each with their own features and faults. TinyGO19 is miniaturized GO using LLVM that is memory managed and garbage collected. Zig20, a newer, fresher rendition of C with a well-thought-out set of principles and full low-level control. And Rust21 with its infamous borrow checker, incredible cargo system, and excellent documentation.

๐Ÿ“ฆ Ordering some Pico Stuff

Landscape

๐ŸŽ›๏ธ Accessories Aimed at Pico Programming

Landscape

  1. Debug Probe I just recently ordered the official debugger probe kit for the Pico. It is made with the name RP 2040 chip22 and has open source firmware used in conjunction with an LSP in an IDE to cooperate and catch runtime errors.

Landscape

  1. Pi Computer I am using a Raspberry Pi 3B+23 with Raspbian OS24 via SSH on my laptop to program these Picos. This is for compatibility reasons as the debug probe has issues with my M1 Mac25. I like the idea of using a Pi for this, because I can keep all of the tools necessary together.

๐Ÿ”œ Next Steps

I am most interested in developing some more complex interactive projects using the Pico and will report back later with updates regarding just that.

Most immediately, in relation to my exploration of programmable keyboards, I plan on utilizing ๐Ÿฆ€ Rust to program my own custom built macro pad. More on that soon.