This is still a work in progress: a full series of articles should be on the
way, but I wanted to give a quick preview of a project I’ve been doing to
explore the PIOs and network functionality of the RP2040/Raspberry Pi Pico W.
This series will feature a little bit of everything:
The RP2040’s PIOs
Wi-fi and networking with LwIP
2-layer PCB milling and fabrication, with vias
Woodworking
12-bit color graphics
LED matrix modules and high speed shift registers
40-year-old classic Macintosh typography
So, hopefully more content coming soon. In the meantime, here are a few more
photos:
This site originated back in 2009 when I started applying to graduate programs
and I needed a place for an online portfolio with a handful of projects. It
started out as a small collection of HTML pages, each one describing a
project, that you could click through in sequence.
At some point, I migrated all of the content into WordPress. I’d used
WordPress before back on orderedpixels.com, which was my original blog where I
posted weekly photos and updates about university life for friends and family.
WordPress had improved quite a bit in the interim, and the WYSIWYG editor and
upload manager made it really easy to make posts with images and everything.
But in the decade that’s followed, my fondness for WordPress has waned. I
won’t bother with the details here, but the experience of posting has gotten
frustrating to the point where I’ve basically stopped writing anything new
here.
Recently, my colleagues have been encouring me to share more of my projects
online. In particular, I’ve been starting to explore the
RP2040 microcontroller and the
Raspberry Pi Pico
platforms based on it, and it seems that sharing my experiences might be
helpful or at least interesting to the broader community.
So that’s led me to sit down and try to sort out my blogging situation. I’m
dispensing with WordPress and have switched to a static site generated with
Jekyll. This lets me write posts as simple Markdown
files and handles keeping all of the tricky bits like navigation and tags
coherent across the whole site. But the end result is plain old HTML—nothing
to render on the server and no client-side JavaScript.
I’ve tried to migrate over all of the old content, and hopefully any existing
permalinks should continue to work. I’ve even fixed up the images on some of
the original pages that have been broken since the site migrated to WordPress
over a decade ago.
The exception is that user-posted comments are gone (in practice, there were
only ever a few of these; mostly the feature was just a magnet for spambots).
If you want to get in touch or comment on a post, you can always send e-mail
to me at my initials (the three letters in the logo) at the domain of this
site.
Anyway, hopefully this works out and there will be some new content coming
soon. There’s an Atom feed you can add to your reader if you
want to subscribe to new posts.
For the past 12 or so years, the AT86RF23x 802.15.4 radios have been my go-to
for low-power digital communication. They work pretty well, and I have a good
software stack and protocols built up around them (which my friends decided
should be called “Bri-Fi.”)
They’re sort of expensive, though—the bare chips are a few dollars each and
modules were at least $20-30 last I looked. On a fully custom sensor board
they’re not that bad, but for random side projects where I just want two things
to talk to each other wirelessly, the cost of the chips and doing an RF layout
are kind of annoying.
I’ve been seeing a lot of Nordic’s nRF24L01+ radios in the maker community. It
seems there’s a pretty good Arduino library and the modules are available super
cheap. I think I got five complete modules for about what I’d pay for one of
the RF233 chips.
Anyway, I’m playing around with these modules and put together a couple of
quick PCBs to try them out. I’ve been getting pretty good results milling
boards at home using my little CNC router, so I thought I’d snap a few photos
and write a “quick” blog post. This board is a little USB-to-RF bridge based
around the ATmega32U2. If this works, it’s going to be the computer side of a
custom user input device.