Week 1: Notes on a small light that would not blink

CodeElectronics

This boiled egg of electronics took me six days, and every single obstacle was a sentence somebody forgot to write down.

(Previously: I announced I'm building a pen plotter from scratch, with a brief and everything, like someone who knows what they're doing.)

So, here is what actually happened in my first week.

I tried to make an LED blink. That's it. That was the entire task. The boiled egg of hardware, the thing every tutorial opens with because it's meant to take four minutes and give you a little hit of dopamine to keep you going.

It took me most of a week. And here's the bit that matters: not one of the four things that stopped me was about electronics. Every single one was a gap in the documentation. Something everybody knows and nobody writes down.
One: the cable
My laptop couldn't see the board at all. Nothing. No device, no port, no flicker of recognition.

I checked the code. I re-flashed the firmware. I read forum posts written by people who had clearly never spoken to a beginner in their lives. I considered, briefly, that I'd been sent a dud.

The cable was charge only. That's it.

There are two kinds of USB cable in the world, they look absolutely identical, one of them carries data and one of them just carries power, and there is NO WAY TO TELL BY LOOKING. Every drawer in Britain contains eleven of them and you cannot know which is which until one of them ruins your Tuesday.

I now have one known good data cable with some washi tape on it. It lives in the box. Nobody touches it. It has more rights than most of my houseplants.

Two: the LED that isn't actually where the tutorial says it is

Sorted the cable. Wrote the four lines. Ran it.

Error.

Every beginner tutorial hands you Pin("LED", Pin.OUT) with total confidence. On some boards that works beautifully. On others it falls over, and you sit there at 11pm quietly wondering what you've broken on a brand new computer you've owned for three days.

I open up Claude. Help me please. Don't do it for me... help.

On a plain Pico the onboard LED is wired to GPIO 25, so you want Pin(25, Pin.OUT). On the wireless ones it hangs off the wifi chip instead, which is precisely why the named version exists at all.

That's two sentences. TWO SENTENCES of context and the whole thing makes sense. Nobody includes them. They've all known it for so long they've forgotten it was ever a thing to know.

Three: two files, and only one of them counts

The Pico has no operating system. None. It's a blank chip that runs one thing. Which means the file on your laptop and the file on the board are two entirely different files, and it only ever runs the one on the board.

So you can edit your code, save it, hit run, and watch the board cheerfully execute the previous version while you slowly lose your mind.

Completely obvious afterwards. And nowhere in the getting started guide, because why would you explain the fundamental model of the thing when you could instead show a wiring diagram?

Four: everyone assumes you'll use Thonny

Every tutorial assumes Thonny, and quietly falls to bits if you'd rather not.

I'd rather not. By day five I was already living in VS Code, and I knew it was possible because the engineers at work do it. No tutorial covers it, because no tutorial imagines you'd want anything different. But I wanted my notes and my lessons and my code in the same place. Not Thonny.

Getting MicroPython running in there took a morning of fiddling in the terminal. Claude can't touch my terminal, so every command went through my own fingers, one at a time, which was slower and is almost certainly why any of it stuck.
And then it blinked

Six days in. One green light, going on and off, on a board the size of a stick of chewing gum, sat on my keyboard at half past ten at night.

Done blinking.

I sat and watched it for far longer than is reasonable.

It's four lines of code and a component worth about 8p, and I'm aware of how that sounds. But something in the physical world did a thing because I told it to, and I had not felt that particular feeling since I was nine years old with that twenty character screen saying HELLO back at me on a Vtech Precomputer 1000.

Right... now where was I? So, my actual point:

Not one of those four things was hard. That's what I find fascinating about them. Each one is thirty seconds of explanation from someone who already knows, and each one is entirely capable of ending a person's interest in this hobby permanently.

Here's what can happen when you're new. You don't think "ah, this tutorial has a gap in it." You think: "Oh god. I'm not the sort of person who can do this." And then you put it all back in the box and tell people that you tried electronics once but it wasn't really for you.

So every wrong turn goes in here. Every cable, every moment I didn't understand something and had to go round the houses to find out. Named, dated, not smoothed over afterwards.

You don't need permission and you certainly don't need a computer science degree. You need about thirty quid, a cable that actually carries data, and the willingness to be rubbish at something for a fortnight.

Next: I think I'll have a go at making something move.

A bread board with wires sticking out of it, unplugged and 4 LEDs, one of which is sort of lit. Sitting in front of a purple screen of VS code, blurry in the bakground.

← Back to the log