Plinky Opensource Build
Plinky Opensource Build
Table of Contents:
Plinky is a unique digital synthesizer that has previously been sold as a DIY kit on Thonk.co.uk, however, it went out of stock many months back. If you look at the product page, you'll see that the Plinky is quite popular (with over 6,000 emails on the waitlist), but there are only tentative plans to sell it in the future. Second-hand Plinkys are being sold on Reverb.com for insane prices ($600-$1000!). Luckily, the designer, Alex Evans (who created the Plinky with the help of many community contributors), has recently made Plinky opensource, putting all of the software and hardware on Github.
When I found out that Plinky was opensource, it seemed like an exciting new project to tackle, and having access to all the source files made me think it would be a fairly straightforward build. However, I ran into a fair share of headaches, caused in part by my incesent need to try and find the least expensive parts. It's a sickness I have where I can't bring myself to buy components if I suspect, even a little bit, that I can find a better deal somewhere. It's almost never worth it, but I am compelled to try. Anyway, I thought I'd document my build and component sourcing process here in case it helps anyway else.
There is one important thing to consider before setting off on building a Plinky. Alex and the people who contributed to Plinky's development have been working on a mild hardware refresh, so you may want to hold off on building one until the new version is completed and tested. I don't have all the particulars, but it aims to address two things. First, it will fix where noise was introduced when there was nothing plugged into the line-input (the current workaround is to turn down the input volume). Second, an onboard 3.5mm TRS midi in and midi out will be added.
The Plinky has three PCBs: the control board (with all the components), the front panel, and the back panel. The back panel is just there for protection if you use the Plinky as a desktop synth and has no connection to the circuit. You can find the files for the control board in the "hw/v2" folder on Alex's GitHub. You will need to download this folder and open the project in KiCad. If you have the latest KiCad, you may get some errors and the schematic is missing a few symbols, but you can still get what you need without doing anything extra.
If you don't know how to create gerbers from KiCad, here is a quick walkthrough: open the PCB file in KiCad. Don't mess with anything, just go straight to file > Fabrication Outputs > gerbers(.gbr). In the next window, set a folder that you want the gerbers to go into in the top left. Then, click "Generate Drill Files", which will open a new window. Click "Generate Drill Files" and then close that window. Back at the first window, click "Plot". Now go to the folder and you should see a bunch of files. Put all of those into a zip file.
You will need to repeat these steps two more times, one for the front and one for the back panel. You can find those in the plinkyblackfront folder. BUT before you make a gerber for the front panel, read the section below.
Now, when I started this project, I had never heard of "reverse mount" LEDs, so it took me a while to get the front panel figured out, and I'll try my best to explain it here. First, get an idea of what the LEDs look like physically and how they go into front panel with this video at around 18:20 (this is a great video to watch in general). If you want to use exactly the same LEDs as the official kit, you can get them from Digikey here(white) and here(blue). You'll need 64 white ones and 8 blue ones (or whatever colors you want!). Now, if you have the same brain-sickness I do, you might balk at the price of these LEDs. $20 may not seem like a ton, but it with all the other components (which I'll summarize later), and shipping etc, it is a large portion of project costs, especially if you make two Plinkys, which I recommend that you do (also explained later). If you are OK with the costs, then ignore the rest of this section and use the standard front panel without fear.
If you want to save some money, it is possible, but you will need to use a different front panel. Why? Because the only other "reverse mount" LEDs that I could find for a reasonable price are shaped differently and won't fit into the holes on the standard front panel. The cheaper LEDs are a little longer and they are oval. The LEDs in question can be bought on Aliexpress here. I bought the "1204" version. The version labeled 0602 kind of look like they might work, but I did not test them and there are no measurements on there. As you'll see, you can get hundred of these LEDs for the price of, like, 10 of the standard LEDs. The shipping takes a lot longer of course, so keep that in mind.
If you do buy the LEDs that I linked, then make sure you make gerbers for the plinkyblackfront_bigholes. These are still a tiny bit snug, but they do fit. NOTE: These bigger holes cut some of the silk screen on the front; not a big deal for me, but you may not like that. Also, the holes are round and the LEDs are oval, so there is some space there. I made my own footprint to try and fix both of these problems and they are currently in production. If they come back and work better, I'll update this.
I had JLCPCB create my PCBs since they were the least expensive. The results were great so I fully endorse it. You will want to have JLC mount all the components for you because a) it's not too expensive b) it's easy and, c) some of the resistors are waaaaaay too small to solder by hand. Alex already prepared documents that allow JLC to properly complete your board. Download the BOM and POS file from this folder on the GitHub. The minimum order for assembled is two so it is probably a good idea to just plan on making two Plinkys and selling one.
Here are the steps for submitting an assembled PCB order with JLCPCB (I sware, I'm not sponsored or anything). Go to jlcpcb.com and sign in and click "Order Now". Click at the top where it says "Add Gerber file". Find and upload the zip file you created earlier. Pick whichever color of PCB that you want but leave everything else alone. Scroll down and toggle on "Assemble PCB". Choose "Top Side", a quantity of 2, and select "Yes" for confirm part placement. That last option costs less than a dollar but worth it to double check your PCB before it goes into production. Leave the other options alone. Click Next.
The next screen will show a picture of the PCB. Click Next. Here you will need to upload the PCB and the POS file (which tells JLC the exact position of every component). The next page will look a little intimadating, but basically, these are all the components, matched with the items that JLC has on hand. I just checked now, and a few items are out of stock. Here are some alternative:
For L1 - 10uH inductor: use item number C177248 as a replacement
For C42, C43 - 220u capacitor: use item number C242092 as a replacement
For U4 - the STM32: use item number C83181 as a replacement
For that last one, you may notice that it is a different STM32 than what is called for in the original BOM. However, on Alex's site, the FAQ (scroll all the way to the bottom) lists this version as a suitable replacement. And, I can confirm it does work.
Once you have items selected for all the parts, hit next and you will see a picture of the PCB with all the parts overlain. Please beware: I have done this process for many projects and the orientation is never correct. You will need to go through and make sure all the components are placed correctly. The best way to do this, is to use the list on the left. Click each component and the picture will zoom in on those components. You can skip all the capacitors (except the two electrolytic) and resistors and focus on the ICs and diodes. If you see that a component is not oriented correctly, just tap the space bar and the component will rotate. How do you know if it is oriented correctly? Look for the dot on the component and make sure it is at the same spot as the white circle on the PCB. The transistors don't have the dot, but they only fit one way.
When you finished, hit next and you will see the summary. I just checked and for two boards, it will cost you around $80 + shipping. Not bad. Submit the order and wait.
There are 74 LEDs to solder and it can be kind of a pain. Not that bad, but if you really hate the idea of soldering the LEDs, you can use PCBWay.com and they will solder the LEDs for you. I got a quote from them and it was for $140 for just the front panel. Not worth it for me, but that is an option.
There is also an expander module that adds functionality to your Plinky. I didn't make it so I can't comment, but check out the main website for the rundown if you're interested. This can also be assembled at JLCPCB.
If you want to go the quickest route, use the component list from the GitHub and away you go. As for me, the brain worms started wiggling again and I had to hunt for deals. The trickiest part of the BOM is the headers. There are a set of SMD headers that attach to front panel and connect to normal thru-hole headers the control board. It's worth mentioning that it it doesn't matter if whether the SMD header is female or male, just make sure that the thru-hole "mate" is the opposite, of course. The other thing to keep in mind is that the clearance is pretty tight, so you need low profile female headers or the front panel won't go on correctly.
What was my cheap solution? I bought normal female headers and sanded the plastic down using sandpaper. Then I simply bent the pins and was able to surface mount them. The soldering was a tiny bit tricky, but nothing too bad. Maybe this sounds a little janky, but I'm sorry, I'm not paying $4 for two headers. Come on!
I also tried to find cheaper stereo jacks (the green ones) because I didn't want to make an order from thonk for just that one thing, but in the end, I relented. There simply isn't a good replacement for the green jacks.
Anyway, here is the BOM that shows the components that Alex recommends, along side the ones I bought. Choose for yourself which works best: