PCBs

Recently I’ve started detailing the design and build process for a number of projects based on custom designed (by me) and made (using a PCB fabrication service) printed circuit boards.  As with all my projects, the design files are usually published to GitHub and you can find them all here: https://github.com/diyelectromusic/sdemp_pcbs

This page gives some details of what to do if you’d like to use my designs yourself, with some additional context that you should consider before you do.

To see all my PCB projects, use the PCB Design Category on the blog, but there is a high-level summary at the end of this post.

I Don’t Sell PCBs

First things first – sorry, you can’t buy a PCB from me. But they are relatively straight forward to get ordered in small numbers if you want to get hold of one.

And if you want to ping me an email or jump in on the Discord channel, I’d be happy to help walk you through the process of getting one built. In general terms, my PCBs are relatively simple designs and almost always the default options offered by the PCB manufacturer will be fine which means the process is usually:

  • Read my design and build notes taking particular care over any errata I’ve identified and any other comments I’ve made.
    • Remember, I don’t consider myself an electronics person, so at best these are DIY prototypes and you should expect to spend some time tailoring, testing and debugging!
  • Grab the ZIP file of gerber files from GitHub.
  • Upload it to the PCB manufacturer of your choice (or use pcbshopper to try a few).
  • Accept the default choices.
  • Select a suitable postage option for you.
  • If the cost seems reasonable, go for it.

For more details, see “Getting a PCB Built” below.

Important Context

I consider myself still a novice at PCB design and I am still learning as I go.  My followers have been great at getting me up and running and there is a lot of information out there for PCB design using the open source KiCad which I can totally recommend.

My first project, with details of what I had to work out to get going to take a protoboard design to a PCB, can be found here: Arduino Uno Dual Merge MIDI “Shield” – Part 2.

So with all this in mind, please treat all my designs as follows:

  • They are prototypes not products.  They are published in the spirit of giving someone else a starting point for a DIY project based on what I’ve been able to pick up, but you should expect to have to evaluate the design and build and debug it yourself. If you are not comfortable with doing that then these are not for you.
  • Like my electronics, I consider myself to know enough “to be dangerous” and am wary of riding up the “mount stupid” curve at present.  So these designs will have a lot of “I don’t know what I don’t know” in them and I expect that if I continue to learn, I’ll one day look back on some of these and cringe.
  • I tend to be pretty free with my choice of components and as far as my ignorance is telling me, I don’t think my projects rely on any specific variant of component unless otherwise stated (but see my other comment about my electronics knowledge).  Check the design and build notes for details of any specific footprints I’m assuming in the design of the PCB.  As a rule, I’ve only tried to use through-hole components.
  • As with all my projects, please don’t use them with expensive equipment you can’t afford to break.  I cannot recommend enough the use of free, cheap or second hand equipment for testing DIY music projects.
  • Ultimately only use these designs after your own detailed assessment and review and then totally at your own risk.

I’m very happy to help out if I can answering queries about them in the comments, via email, social media, or perhaps most usefully for a discussion, on my Discord channel.

Getting a PCB Built

All my published PCB designs can be found on GitHub here.

They are published with the following:

  • A readme with important context, links to the design and build blogs, a bill of materials, and any errata or workarounds that you should be aware of before ordering or building.
  • A Schematic.
  • A complete set of Gerber and drill files (basically what you’ll need to get one built yourself) both individually and in a combined ZIP file for convenience.

There is nothing special about most of the projects that means that they can’t be built with most of the default options from a PCB manufacturer.  If I can keep the PCB to within a 100x100mm footprint then I will as this tends to be the cheapest option to build, but occasionally some are larger, so check prior to ordering.

The basic procedure is as follows:

  • Read through the design notes and make sure you’re content with my approach.
  • Read through the build notes and make sure you’re content with any errata or workarounds I found and have the skills required to build, test and debug it.
  • Make sure you have (or can get) the components with the right footprints to build it.
  • Download the Gerber outputs from GitHub or the ZIP file for a single file version.
  • Go to the website of your preferred PCB manufacturer (for some suggestions, see below) and use one of their “instant quote” type functions and upload the ZIP file.
    • The size should be automatically picked out from the Gerber files, but if not, be sure to set it appropriately.
    • All the rest of the default options should be fine.  From my experience, changing anything apart from the colour is likely to significantly add to the cost.
    • Select the quantity. In my experience, 5 boards is usually the minimum quantity but for a 100x100mm it can be the same price for 10 boards if there is no special offer on.
    • Ignore any “PCB Assembly” or “SMT stencil” or “Advanced” options.
    • Add to your basket and calculate any extras, including the shipping costs.
    • Repeat the above for several PCB fabrication services.
  • Pick one, checkout and wait for your boards!

My experience tells me that several weeks is a pretty typical delivery time to the UK for me.

Here is an example upload screen (this is from Seeed Fusion, but many of them look very similar).

Seeedstudio-Fusion-PCB-PCBA

Choosing a PCB Manufacturer

I’m afraid I have very little experience to offer, but I can make the following observations.

For this level of project, I’ve found cheap, overseas PCB fabrication more than adequate.  I’ve purchased other peoples designs from PCBWay and have used Seeed Fusion and JLCPCB for my own projects and have been very pleased with the results of all three.

Here are the links to the respective services:

  • Seeed Fusion – this is who I’ve been using for many of my earlier boards.
  • PCBWay – used when I ordered my Clumsy MIDI and support a lot of other makers.
  • JLCPCB – often mentioned by (and support) other makers. I’ve used them most recently as they are often the cheapest option for small numbers of smaller boards.

Disclaimer: Seeed have sent me discount vouchers in the past that I’ve used for many of my early boards. I’m very happy to recommend you take a look and have been very happy with their service. But I tend to find the postage costs and costs of larger boards are higher than other options.

All services also support PCB assembly too, but I’ve not used that so far.

Of course there are many others, and there will almost certainly be some more local to you. I know OSHPark is very popular and supportive of makers in the US for example and Eurocircuits in Europe (I’ve used neither personally).

Testing Your PCB Assembly

Here is a list of basic checks I strongly recommend are followed when a PCB is first assembled prior to switching on.

  1. Leave any chips or add-on modules unconnected.
    • This relies on using sockets or leaving soldering these components on last (see the “fishing line trick” later for add-on modules that will be soldered on eventually).
  2. Visually check for obvious shorts and good solder joints all round the board.
    • This will need a magnifying glass and isn’t definitive.  But if you spot an obvious problem then it saves time fixing that first!
  3. Check for shorts between power and GND pins.
    • Note that if you are checking resistance and using potentiometers then there will be a resistance equivalent to the combined parallel resistances of your pots across the rails!  So if you have 4 10KΩ pots connected in the typical “VCC-SIGNAL-GND” manner, then you’d expect to see 2K5Ω between VCC and GND (assuming no other links in the circuit).
    • If there are several power sources (e.g. 5V and 3V3) then check there are no shorts there too.
  4. Check for continuity between all power points.
    • Find the VCC pins on any IC sockets and check they connect to the correct power lines (e.g. 5V to 5V, 3V3 to 3V3, etc).
    • Repeat for the GND pins.  Sometimes areas of GND might not be linked when there are no external connections – many microcontrollers have several GND pins so sometimes GND areas might be connected to different pins.
    • Do the same for any plug-in modules (e.g. displays, sound modules, etc).
  5. It might be worth powering up the board at this point with no additional connections and checking any basic operations and power readings around the board.
  6. Power off again and connect ICs and external modules.
    • I often use the “fishing wire trick” to be able to plug in any additional modules (e.g. displays, sound modules, etc) without soldering.  Nylon fishing wire in the holes gives enough traction to be able to push a header pin in, have it grip and make contact, without soldering.  This allows for testing and debugging without committing your module to solder!
  7. Do anything else you can think of before connecting to your microcontroller or (possibly hard to replace these days) single board computer!

The Fishing Line Trick

This is a simple trick I first saw mentioned on Twitter.  Threading nylon fishing line wire though pin header holes gives enough traction to be able to push a header pin in, have it grip and make contact, without soldering.

This is massively useful for testing as it allows you to check everything is working, including any add-on modules or pin header connections, whilst still giving options for debugging and without having to solder them down straight away!

Once everything is ok, the header pins can be pulled out again, the nylon wire removed, and then the pins can be properly soldered in place.

Simple DIY Electronic Music PCB Projects

Here is a selection of my projects so far.  They are listed under the following headings:

  • For Raspberry Pi
  • For Raspberry Pi Pico
  • For Arduino Uno
  • For Arduino Nano
  • For Seeed XIAO
  • Other

For Raspberry Pi

  • MiniDexed IO Board – Design and Build: SSD1306 Version, HD44780 Version
    • Two designs for a Raspberry Pi add-on IO module with a display, rotary encoder and MIDI to support MiniDexed.
IMG_6994
  • MiniDexed IO Board for RPi V1 – Design and Build
    • A Raspberry Pi add-on IO module with display, rotary encoder and MIDI to support MiniDexed on a Raspberry Pi V1.
IMG_6578
  • RPi V1 Synth IO Board – Design and Build
    • An IO board for a Raspberry Pi V1 (with a 26-way GPIO header and an 8-way P5 header) supporting MIDI, potentiometers and a DAC.
IMG_6539
  • Zynthian IO Board – Design and Build
    • An IO board for a Raspberry Pi V3 or V4 and a Waveshare touchscreen, proving MIDI, DAC, and rotary encoders to build a Zynthian synth.
IMG_7136
  • XIAO Pi USB MIDI Device – Design and Build
    • An add-on board for a Raspberry Pi that provides a USB MIDI Device link using a Seeed Studio XIAO SAMD21.
  • Dual MiniDexed IO Board – Design and Build
    • An add-on board that allows two Raspberry Pis, both running MiniDexed, to be linked into a dual unit.
  • Pi Zero MiniDexed IO Board – Design and Build
    • An add-on board to provide display, encoder, buttons and optional DAC for a Raspberry Pi Zero.
  • Pi Zero MIDI Interface – Design and Build
    • A stackable MIDI interface for a Pi Zero with MIDI IN, OUT, THRU TRS sockets.
  • Pi 400 MIDI and Audio Module – Design and Build
    • This is a MIDI and I2S DAC audio board with optional MiniDexed IO controls for a Raspberry Pi 400.
  • RPi 5 Quad DAC MiniDexed IO Board – Design and Build
    • This is an IO board for a Raspberry Pi 5 supporting four GY-PCM5102 DACs for use with MiniDexed.

For Raspberry Pi Pico

IMG_6361
  • MIDI Interface – Design and Build
    • A Raspberry Pi Pico MIDI interface that allows you to plug the Pico into the PCB.
IMG_6471
IMG_6439
  • MIDI Proto Expansion – Design and Build
    • A Raspberry Pi Pico MIDI interface with an additional expansion area for additional modules.
IMG_6476
  • MIDI Splitter – Design and Build
    • This design allows for a single MIDI IN to be split out using a Raspberry Pi Pico to up to 8 (optionally 9) MIDI OUT ports.
IMG_6568
  • TTL MIDI Splitter – Design and Build
    • A slightly cut-down version of the above that provides eight TTL (5V) serial line outputs rather than “true MIDI” from a single MIDI IN port.
  • Pico MIDI “Pack” – Design and Build
    • A “pack” style MIDI interface within the board footprint of a Pico.

For Arduino Uno

IMG_6318
  • Dual MIDI Merge Shield – Design and Build
    • A 2xMIDI IN, 1xMIDI OUT shield for MIDI merge functions on an Arduino Uno.
  • MIDI Proto Shield – Design and Build
    • Here is a design for an Arduino shield with a MIDI IN/OUT interface and a built-in prototyping area.  There are three versions: MIDI DIN only; MIDI DIN or TRS; MIDI DIN or TRS with additional IO breakouts.
IMG_6642
  • Audio Experimenter Shield – Design and Build
    • A shield with three different digital to analog, audio output methods: PWM, R2R and MCP4725 DAC.
IMG_6685
  • Mozzi Experimenter Shield – Design and Build
    • A shield designed for Mozzi experiments.
  • Arudino EEPROM Reader/Programmer – Design and Build
    • A shield designed for reading 27Cxxx EPROM devices.

For Arduino Nano

IMG_6654
  • Multi-tone or PWM Board – Design and Build
    • A carrier board for four Arduino Nanos for use with tone() or PWM outputs.
IMG_6696
  • Mozzi Experimenter Shield for the Nano – Design and Build.
    • A carrier board designed for Mozzi and audio PWM experiments.
IMG_7018
  • Tactile Button Keyboard – Design and Build
    • A tactile button expandable music keyboard supporting three modes: direct connection, on-board Arduino Nano, or 74HC138.
  • Audio Experimenter Shield – Design and Build
    • An experimenter board for the Arduino Nano with MIDI, SSD1306 display, MCP4725 DAC, pots and audio output filter.

For Seeed Studio XIAO

IMG_7110
  • MIDI Proto Interface – Design and Build
    • A MIDI interface with prototyping area for the Seeed Studio XIAO format boards.
IMG_7123
  • MIDI Synth Board – Design and Build
    • A MIDI and potentiometer IO board for the Seeed Studio XIAO format boards.

For ESP32

  • Educational Modular Synth Thing – Design and Build
    • Design, development, and build for a pseudo analog synth experimental platform for possible educational purposes.

Other

IMG_6432
  • Generic 3V3 MIDI Module – Design and Build
    • The design for a custom PCB version of a generic 3V3 compatible MIDI IN and OUT circuits.
IMG_6522
  • Touchpad Keyboard – Design and Build
    • A PCB touchpad music keyboard supporting two designs on one board: one designed for use as a capacitive touch keyboard, and one for use with a stylus.
IMG_6807
  • Pico, Nano, Micro Keyboard Matrix – Design and Build
    • A PCB breakout board for GPIO for one of a Raspberry Pi Pico, Arduino Nano, or Sparkfun Pro Micro to support building keyboard matrices.
IMG_6999
  • Analog IO Board – Design and Build
    • A breakout board for PCB mounted potentiometers which can be read directly, via a 4051 multiplexer or over SPI using an MCP3008.
IMG_6559
  • Raspberry Pi Pico Dual MIDI Module Carrier Board – Design and Build
    • A bespoke circuit to support a Raspberry Pi Pico in use with a special dual-MIDI interface module that was designed for me.
IMG_6905
  • MiniDexed TX816 – Design and Build
    • A Raspberry Pi Pico based TX816 Style IO panel for MiniDexed running on a Raspberry Pi 3 or 4.
IMG_7173
  • MIDI Patch Bay – Design and Build
    • A hardware MIDI switching matrix unit.
  • Atari Punk Console – Design and Build
    • A simple version of the classic electronic noise-making machine.
  • Simple Square Wave Oscillator – Design and Build
    • A simple 555 timer based square wave oscillator.