Learning that making mistakes is the best teacher (age 26, not late right?) How I went from resistors and leds to programming and building a custom circuit.
The glow up.
The first LED boards I made were resistors and leds on a flex PCB made to fit the exact dimensions of the Game Boy Color board. Not revolutionary, but they opened up the mod for everyone and also opened up my life in a lot of philosophical ways I won’t get to in this blog post.
During 2021 I struggled to learn or build or learn anything else. While I really wanted to learn how to use Raspberry Pi’s Pico microcontroller, hello worlds and blinking the power led doesn’t really flow the maker juices inside my body. So the couple Pico’s I had lay buried in the shuffle of aimless projects.
Everytime programming was included in a project I kinda ran from it. The first version of my RGB board was basically me copying and pasting arduino fastled code.
This worked okay, but after looking at the current prices for ATMega328 or even ATTiny’s (thx chip shortage) I gave up again.
Then one day in late November 2021, I found my Pico and somehow I felt compelled to sit my a** down and actually learn. I started with micropython and then jumped to Adafruit’s circuitpython. Something about being able to use the microcontroller like a USB device made it feel really approachable. Also, NO CURLY BRACES.
I wrote the code from scratch, which I am really proud of considering the hiccups I had along the way like saving the colour on power cycle.
Now to the hardware side. I had settled on the RP2040 because in this chip shortage era I could still get them for $1AUD locally.
Like I said before, the most I had really built was resistors and leds. So after fighting off my fear of programming, I had another foe.
First, I somehow came to the conclusion I needed an EEPROM for the Pico? Not sure where this came from. But, after being able to save my colour settings on the official Pico board, I read somewhere that the Pico had no flash and that I didn’t need it (again, I was clueless). After hunting through the hardware design guide of the RP2040, which I have to give big thanks to whoever wrote it, it is written in plain english so a noob like me could understand it completely, I started building my own circuit. I learned what decoupling caps were, what crystals are and what their purpose is and what LDO’s were. For once hunting through LCSC and data sheets started making sense.
(I learned that the Pico in fact DID have flash, just the RP2040 itself didn’t have flash).
First lesson learned and stuck with me forever now.
Hunting through schematics, I added the flash. another shout out to Adafruit for having all the schematics for their boards online. These have been as valuable as gold to me in my journey.
My next issue was that the board I built was pulling a lot more power vs. the official Raspberry Pi Pico board I had developed on. After asking Twitter, Greg (https://twitter.com/GregDavill) mentioned to me that LDO’s actually waste a lot of power.
So next was learning about DCDC buck converters. This time, my friend @Sad_Electronics was a MASSIVE help. They helped me find a suitable DCDC converter and read through the datasheet as well as understanding the difference between capacitor voltage ratings.
I finally had it. I then moved the circuit onto GBC/A sized layouts. These boards pull at most 26-30mA, have three brightness modes plus off and 17 colours including three patterns and three animations.
So what's the point of this post? Tbf, I don't know. In some ways it is a shout out to me cause I am proud of the progress I have made and to once give myself credit, take that depression. Since building this, I have learned a lot more, I read datasheets with confidence and dabble more in programming. It's also a thank you to the electronics community on twitter for helping keep me inspired as a self taught aspiring electrical engineer!