Happy to report the updated SquishBoxes and kits are available in the Tindie store! The new update uses a custom PCB with SMT components, which means no need for a separate break-out board for the DAC, and an on-board switching voltage regulator that provides much steadier and more reliable power for your Raspberry Pi from a standard 9V effects pedal power supply! I also moved the contrast trimmer for easier access, and added a breakout for the Pi’s serial port to allow connection via a USB-TTL serial console cable, or even a possible future expansion to add 5-pin MIDI ports. There are a bunch of software updates on the way as well – stay tuned!
Tag: PCB
-
New PCB Work
The Tindie store has been out of stock for a bit as I work on updating the PCB and making some adjustments to the code to improve performance (more on the code in a later post). I tried a new version of the PCB that moves the contrast potentiometer to the opposite side, where it can be accessed more easily than sticking a screwdriver between the USB ports. I was also trying to do board-to-board soldering with the audio card so that it would be stacked under the LCD instead of pressed against the Pi, but unfortunately the headphone jack is just too tall to fit under there. I had to chop the jack off with flush cutters. I have wrecked an audio card more than once in the past by doing this, so I won’t sell this board as a kit, I’ll just build 2-3 complete boxes and sell them in the store.

In further PCB development news, I finally learned KiCad so I could design a proper SMD board. This means I don’t have to buy the separate audio cards – I can just put the audio codec chip and supporting components directly on the board. I also added an AP63205 switching voltage regulator, which should make it possible to use a 5V or 9V power supply, and provide a more stable and safe 5V to the Pi. The prototypes should arrive this week, and if all goes well I’ll have these as kits and full builds in the store very soon!

-
Update and Coming in 2023
Here’s where things are at the moment. I made a batch of SquishBox kits and units available in the store, after a short delay waiting for parts and making some (I think) helpful modifications to the enclosure layout and updating instructions to match. They sold so quickly I think I might need to order a new batch of the current PCBs to keep the store stocked while I work on the next hardware update. I also released a new version of FluidPatcher today. This includes some bugfixes and QoL updates to SquishBox, and will probably be the last release before the next major update.
The next thing I’m working on is a big update to FluidPatcher which involves porting the code to Cython. The main reason for this is speed. The custom MIDI event router that makes all the magic happen is plain old Python, and it’s not hard to max out the CPU on a Pi with notes, especially if you have some MIDI files and/or sequences playing at the same time. I’ll also take the opportunity to reorganize the repository into a proper Python package which I can upload to PyPI, which should make installing and updating easier for users.
After that, I want to make an update to the PCB that will use surface-mount components and put the sound hardware (PCM5102) directly on the board, rather than require a third-party external board. I’m also hoping to add a switching voltage regulator to make 9V powering viable, circuitry for optional 5-pin MIDI jacks, and an option to use an OLED screen instead of the 16×2 character LCD.
Looking forward to working on these projects, hopefully I make fast progress – wish me luck and see you in 2023.
-
SquishBox PCB Update

I’ve been working on an update to the SquishBox that uses a rotary encoder instead of two buttons to switch patches, open menus, etc. One stompbutton remains, but is instead sends a MIDI message that can be routed to any function desired depending on the patch/bank settings. I’ve also added a status LED that can be switched on/off by a router rule. I’ve modified the PCB with a row of pads to allow these connections. The picture above shows my last v3 PCB alongside the newer version. I’ll be updating the assembly instructions to reflect the new PCB, and the newer version of the SquishBox will be available in the Tindie store soon. The pinout of the new input bus is:
Pin GPIO Description L 2 left rotary encoder pin g ground for rotary encoder R 3 right rotary encoder pin P 27 pushbutton for the rotary encoder g ground for the stompswitch S 22 stompswitch input g LED cathode pin led 10 LED anode pin (connected through R1 resistor) Since the input pins are connected to GPIO, the PCB can still be used to build a SquishBox with two left and right stompswitches, as long as the BTN_L and BTN_R values are set to the correct GPIO in hw_overlay.py.
The new PCBs are also available direct from OSHPark.
-

Leveling Up
I sold out of my first batch of SquishBoxes that I built using standard perfboard, so I decided to get serious and print some PCBs. This will make the next batch of SquishBoxes a bit sturdier (and less expensive, since I can put them together more quickly and with less parts), and also lets me offer the SquishBox as a kit for the more DIY-inclined (Pi, enclosure, PSU not included). I also designed the PCBs for the other two products I plan to offer – the MidiFoot and StompByte.
I got three copies of my first SquishBox PCB design from OSHPark and put a test unit together, which you can see in the gallery below. I tweaked the design a bit after this, adding some edge solder pads, optional 9V->5V power regulation (response to a user request), and got artistic with the location of the vias. Should have some more complete units, plus kits and some new toys available in the Tindie store within the next couple months!







