The Value Of A Worked Example

I was looking over the week’s posts on Hackaday – it’s part of my job after all – and this gem caught my eye: a post about how to make your own RP2040 development board from scratch. And I’ll admit that my first thought was “why would you ever want to do that?” (Not a very Hackaday-appropriate question, honestly.) The end result will certainly cost more than just buying a Pi Pico off the shelf!

Then it hit me: this isn’t a project per se, but rather [Kai] was using it as an test run to learn the PCB-production toolchain. And for that, replicating a Pico board is perfect, because the schematics are easily available. While I definitely think that a project like this is a bit complicated for a first PCB project – I’d recommend making something fun like an SAO – the advantage of making something slightly more involved is that you run into all of the accompanying problems learning experiences. What a marvelous post-complete-beginner finger exercise!

And then it hit me again. [Kai]’s documentation of everything learned during the project was absolutely brilliant. It’s part KiCAD tutorial, part journal about all the hurdles of getting a PCB made, and just chock-full of helpful tips along the way. The quality of the write-up turns it from being just a personal project into something that can help other people who are in exactly the same boat, and I’m guessing that’s a number of you out there.

In the end, this was a perfect Hackaday project. Yes, it was “too simple” for those who have made their 30th PCB design. (Although I’d bet you could still pick up a KiCAD tip or two.) And yes, it doesn’t make economic sense to replicate mass-market devices in one-off. And of course, it doesn’t need that fun art on the board either. But wrap all these up together, and you get a superbly documented guide to a useful project that would walk you through 95% of what you’ll need to make more elaborate projects later on. Superb!

Surely you do “finger exercises” too. Why not write them up, and share the learning? And send them our way – we know just the audience who will want to read it.

DIY RP2040 Dev Board

RP2040 From Scratch: Roll Your Own Dev Board Magic

Have you ever looked at a small development board like an Arduino or an ESP8266 board and thought you’d like one with just a few different features? Well, [Kai] has put out a fantastic guide on how to make an RP2040 dev board that’s all your own.

Development boards are super useful for prototyping a project, and some are quite simple, but there’s often some hidden complexity that needs to be considered before making your own. The RP2040 is a great chip to start your dev-board development journey, thanks to its excellent documentation and affordable components. [Kai] started this project using KiCad, which has all the features needed to go from schematics to final PCB Gerber files. In the write-up, [Kai] goes over how to implement USB-C in your design and how to add flash memory to your board, providing a place for your program to live. Once the crystal oscillator circuit is defined, decoupling capacitors added, and the GPIO pins you want to use are defined, it’s time to move to the PCB layout.

In the PCB design, it starts with an outside-in approach, first defining the board size, then adding the pins that sit along the edges of that board, followed by the USB connector, and then moving on to the internal components. Some components, such as the crystal oscillator, need to be placed near the RP2040 chip, and the same goes for some of the decoupling capacitors. There is a list of good practices around routing traces that [Kai] included for best results, which are useful to keep in mind once you have this many connections in a tight space. Not all traces are the same; for instance, the USB-C signal lines are a differential pair where it’s important that D+ and D- are close to the same length.

Finally, there is a walk-through on the steps needed to have your boards not only made at a board house but also assembled there if you choose to do so. Thanks [Kai] for taking the time to lay out the entire process for others to learn from; we look forward to seeing future dev-board designs. Be sure to check out some of our other awesome RP2040 projects.

PCB Edge USB-C

Connector-Free Zone: PCB Edge As USB-C Interfaces

Sometimes when you’re making a PCB that you plan on programming over USB, but you only plan on plugging in a couple of times, it would be nice to make that connection without another BOM item. Over on GitHub [AnasMalas] has released a PCB edge USB-C connection symbol/footprint to do just that!

This isn’t the first PCB edge USB-C connector we’ve seen, but this one has some nice features. It’s available in both KiCad and EasyEDA formats, allowing you to easily add it into your preferred ECAD software. As well as supporting multiple software packages, there are two versions included: a 10-pin and 14-pin version. The 10-pin version has, on each side, 2 USB voltage pins, 2 ground pins, and a CC1 or CC2 pin on its respective side; this version is ideal if you’re looking to just supply power via the connector. The 14-pin version has all the pins of the 10-pin version with the addition of four data-positive and data-negative pins needed to relay information to the board, ideal if you’re planning on programming a microcontroller with this connection.

One important note is that, while most PCBs default to 1.6 mm thickness, if you use this connector you’ll need to drop that down to ~0.8 mm to properly interface with a common USB cable. [AnasMalas] also suggests using ENIG board finish to preserve the connectors on your USB cable.

For such a small and common connector, USB-C holds a ton of potential. Be sure to check out our series all about USB-C for more details.

Thanks to [Ben] for the tip.

Screenshot of the cheatsheet being developed in Inkscape

Improve Your KiCad Productivity With These Considered Shortcut Keys

[Pat Deegan] from Psychogenic Technologies shows us two KiCad tips to save a million clicks, and he made a video to support it, embedded below.

In the same way that it makes sense for you to learn to touch type if you’re going to be using a computer a lot, it makes sense for you to put some thought and effort into your KiCad keyboard shortcuts keys, too.

In this video [Pat] introduces the keymap that he has come up with for the KiCad programs (schematic capture and PCB layout) and explains the rules of thumb that he used to generate his recommended shortcut keys, being:

  • one handed operation; you should try to make sure that you can operate the keyboard with one hand so your other hand can stay on your mouse
  • proximity follows frequency; if you use it a lot it should be close to hand
  • same purpose, same place; across programs similar functions should share the same key
  • birds of a feather flock together; similar and related functionality kept in proximate clusters
  • typing trounces topography; if you have to use both hands for typing you have to take your hand off the mouse anyway so then it doesn’t really matter where on the keyboard the shortcut key is

You can find importable KiCad keymaps and customizable SVG cheatsheets in the downloads section.

[Pat]’s video includes some other tips and commentary, but for us the big takeaway was the keymaps. He’s also got a course that you can follow along with for free. And if you haven’t been keeping abreast of developments, KiCad is now at version 9, as of February this year.

Continue reading “Improve Your KiCad Productivity With These Considered Shortcut Keys”

Zen Flute Is A Teensy Powered Mouth Theremin

An intriguing mouth-played instrument emerged—and won—at the 2023 Guthman Musical Instrument Contest hosted by Georgia Tech. [Keith Baxter] took notice and reproduced the idea for others to explore. The result is the Zen Flute Mouth Theremin, a hybrid of acoustics, electronics, and expressive performance.

At its core lies a forced Helmholtz resonator, a feedback system built with a simple microphone and speaker setup. The resonator itself? The user’s mouth. The resulting pitch, shaped by subtle jaw and tongue movements, is detected and used to drive a MIDI controller feeding an external synthesizer.

Like a trombone or classic electromagnetic theremin, the Zen Flute doesn’t rely on discrete notes. Instead, the pitch is bent manually to the desired frequency. That’s great for expression, but traditional MIDI quantisation can map those “in-between” notes to unexpected semitones. The solution? MIDI Polyphonic Expression (MPE). This newer MIDI extension allows smooth pitch transitions and nuanced control, giving the Zen Flute its expressive character without the hiccups.

Physically, it’s an elegant build. A flat speaker and microphone sit side-by-side at the mouth end, acoustically isolated with a custom silicone insert. This assembly connects to a length of clear PVC pipe, flared slightly to resemble a wind instrument. Inside, a custom PCB (schematic here) hosts a mic preamp, an audio power amp, and a Teensy 4.1. The Teensy handles everything: sampling the mic input, generating a 90-degree phase shift, and feeding it back to the speaker to maintain resonance. It also detects the resonant frequency and translates it to MPE over USB.  A push-button triggers note onset, while a joystick adjusts timbre and selects modes. Different instrument profiles can be pre-programmed and toggled with a joystick click, each mapped to separate MIDI channels.

Mouth-controlled instruments are a fascinating corner of experimental interfaces. They remind us of this Hackaday Prize entry from 2018, this wind-MIDI hybrid controller, and, of course, a classic final project from the Cornell ECE4760 course, a four-voice theremin controlled by IR sensors.

Continue reading “Zen Flute Is A Teensy Powered Mouth Theremin”

PCB Renewal Aims To Make Old Boards Useful Again

We’ve all made a few bad PCBs in our time. Sometimes they’re recoverable, and a few bodge wires will make ’em good. Sometimes they’re too far gone and we have to start again. But what if you could take an existing PCB, make a few mods, and turn it into the one you really want? That’s what “PCB Renewal” aims to do, as per the research paper from [Huaishu Peng] and the research group at the University of Maryland.

The plugin quantifies resource and time savings made by reusing an old board.

The concept is straightforward — PCB Renewal exists as a KiCad plugin that can analyze the differences between the PCB you have and the one you really want. Assuming they’re similar enough, it will generate toolpaths to modify the board with milling and epoxy deposition to create the traces you need out of the board you already have.

Obviously, there are limitations. You’ll never turn a PlayStation motherboard into something you could drop into an Xbox with a tool like this. Instead, it’s more about gradual modifications. Say you need to correct a couple of misplaced traces or missing grounds, or you want to swap one microcontroller for a similar unit on your existing board. Rather than making brand new PCBs, you could modify the ones you already have.

Of course, it’s worth noting that if you already have the hardware to do epoxy deposition and milling, you could probably just make new PCBs whenever you need them. However, PCB Renewal lets you save resources by not manufacturing new boards when you don’t have to.

We’ve seen work from [Huaishu Peng]’s research group before, too, in the form of an innovative “solderless PCB”.

Continue reading “PCB Renewal Aims To Make Old Boards Useful Again”

Reverse Engineering The IBM PC110, One PCB At A Time

There’s a dedicated group of users out there that aren’t ready to let their beloved IBM PC110 go to that Great Big Data Center in the Sky. Unfortunately, between the limited available technical information and rarity of replacement parts, repairing the diminutive palmtops can be tricky.

Which is why [Ahmad Byagowi] has started a project that aims to not only collect all the available schematics and datasheets that pertain to the machine, but to reverse engineer all of the computer’s original circuit boards. Working from optical and x-ray scans, the project has already recreated the motherboard, power supply, modem, keyboard, and RAM module PCBs in KiCad.

Just last week the project released production-ready Gerbers for all the boards, but considering there have been 45+ commits to the repository since then, we’re going to assume they weren’t quite finalized. Of course, with a project of this magnitude, you’d expect it to take a few revisions to get everything right. (Hell, we’ve managed to screw up board layouts that had fewer than a dozen components on them.)

If you’d like to lend a hand, [Ahmad] says he could use the help. Beyond checking the boards for problems and reporting issues, he’s also on the hunt for any datasheets or other documentation that can be found for the PC110 or its components. It looks like there’s still schematic work that needs to be done as well, so if your idea of zen is figuring out how ~30 year old computers were wired up internally, this might be the perfect summer project for you.

Interestingly, our very own [Arya Voronova] has been working on creating a drop-in replacement motherboard for the Sony Vaio P using KiCad and imported board images. That hobbyists are now able to do this kind of work using free and open source tools is a reminder of just how far things have come in the last few years.

Thanks to [adistuder] for the tip.