the-frey~/blog

Designing The Atom Smasher Pedal

I've spent a while making a digital delay pedal, and I thought I'd share some more details...

20 July 2017

A post shared by SSD Devices (@ssddevices) on

TL;DR

Okay, so let’s start off with a few bits of info to set the scene.

So. That’s the path.

Why do it?

Really? Pedals are cool. I’ve spent my whole adult life playing guitar and obsessing over effects and it’s only natural to want to both know how they work and contribute my own tiny little ripple to the great Gear Ocean. One of my many gigs is writing for Total Guitar (and Music Radar online) and this has had a nice synergy with that too - I can now attack a lot of gear with a screwdriver and get a pretty good idea of what’s going on inside. The pedals have definitely led to a lot more work in that area, and since that’s basically been my dream job since I was about thirteen years old, that’s already a pretty sweet outcome.

The real catalyst though was when on a whim I started a video blog/YouTube channel where I started demoing a bunch of the pedals I’d collected over the years. Although it hardly exploded in popularity, I soon realised I wasn’t mega interested in just demoing other peoples’ stuff, but was rather more interested in making it myself.

How much work was it?

Probably comparable to writing a university dissertation a couple of times over. I’d estimate that between May 2016 and June 2017 I was putting in between 5 and 20 hours a week in on the pedals, depending on how much writing/band/label stuff I had to do that week around the day job. I haven’t slept much.

That said, if I just had a day job and no other responsibilities, plus maybe a few more weekends, I reckon you could get there quicker than I did.

How do you go about making a digital delay?

This is kind of a big question, so I’m going to split it down into a couple of bits about the process and chip I used, the Spin FV1. I’ll add some resources that might help you work out how to do it yourself as well.

Hardware

Okay, so the FV1 is an SMD device which means that it’s a bastard to solder. If you’re inexperienced then maybe you want to design some other pedals first. I’d made a lot of pedals and sold a run of fuzzes before I got to this point and even I fucked up the FV1 soldering on the first try. Luckily it’s relatively forgiving, and as long as you’re gentle and keep calm you won’t damage the chip by reflowing the connections.

The best thread on this pedal is probably this implementation by Ice9 on DIYSB. The whole thread is packed with gold and loads and loads of good advice on how to make a pedal using the chip. Add to that the FV1 Datasheet on this page and you’ll start to see how it all comes together. There’s also loads of advice on the Spin Forums on hardware implementation and how to for example use a three-way toggle to switch programs.

Code

The FV1 uses a dialect of Assembly called SpinASM. You can write it in a text editor and compile it using a program that SpinSemi provide (more on that later). However, if you’re looking to create more standard effects (chorus, phaser, reverb) for example, you might find that Digital Larry’s brilliant SpinCAD has what you need built in. In fact, I’d hazard a guess and say there’s probably a fair few commercial boutique pedals whose code was generated by SpinCAD rather than hand-written. For mucking around with reverb blocks and pre- and post-processing, I’ve found it to be lots of fun and the glitch and pitch reverbs in the Atom Smasher were made using it. It’s cool.

If you want to scale the heights of writing your own code, then there’s lots of examples and help to be had over on the Spin Forums and there’s some ace guides in the FV1 manual, as well as some useful supporting materials like this primer on LFOs in the FV1.

Workflow

To put code on the chip, and bridge between the two worlds, you need to download the SpinAsm assembly program - it’s on that page under the devboard ‘software’ heading. It will only run on Windows, so if you’re on a Mac you’re going to have to borrow somebody’s PC. I write my code in Sublime Text on the Mac (or use SpinCAD, depending on what I’m doing), then put that on my wife’s Windows laptop and paste the code into the SpinASM program and build it from there.

Some projects like the DIYSB project from Ice9 allow you to flash the chip in place in the actual pedal, but I use the Spin Dev board as it can be connected easily to the computer by USB and for me, is worth the money to reduce the hassle of mucking around with the board in the pedal. The PCBs I designed allow for flashing on the board (in fact, using Ice9’s method in the same way) but in reality I’ve never found myself going that route.

What I’ve learned

Whoa. Where do you start? I’ll go with a few obvious ones though, besides the ‘learned electronics’ and ‘learned assembly’ which should be self-evident.

Conclusion

So obviously if I was still 21 years old, this would be a life-changing thing; for now it’s just an interesting project that I’m glad I’ve undertaken and I’m glad has given some people some joy. Hopefully as I ship these, they will bring happiness to a few more people.

Maybe at some point I will release the schematics and files for this project, I don’t know. Haven’t really decided where this is going yet, but at this point it’s somewhat outgrown a hobby side-project.

Fork me on GitHub