Pocket Integrator began as a pandemic project, although I had the idea in 2015 when I got my first Pocket Operator drum machine, the PO-12, and fell immediately in love with it. 

 I normally play "real" drums; the Pocket Operator was the first digital instrument I ever really bonded with. I love how I can carry my PO with me all the time and jam on it anywhere.  It's got a ton of great features for live manipulation of the beat: effects, tone tweaks, parameter locks, pattern swapping, et cetera.  But whenever I tried to play along with a jam in progress, or even with a song on the radio, I found it really hard to sync up.  To play in sync with other music, you have to tweak the tempo knob in such a way to line up both the downbeat and the tempo, and then you have to stay on top of that synchronization as the music makes all those small, expressive changes in tempo that make live music sound live. It's not easy!  

That's why I made the Pocket Integrator.  With this I can play my PO patterns along to whatever other music is happening around me.  Now I can be the drummer for other musicians who might find it hard or boring to play along with the rigid clock of a drum machine.  To me, it makes the Pocket Operator more human.

The first Pocket Integrator prototypes were done in the Arduino environment using the Teensy 3.2 development board from PJRC. (Here are some embarrassing photos of ugly early revs!) The latest version integrates a SAM4s MCU with onboard USB controller and dual DACs, which talks over SPI to a LSM6DSO32X inertial measurement unit from ST.  The MCU reads a constant stream of inertial and gyro data from the IMU to detect taps, which it then uses to adjust the speed and position of a virtual clock.  (That's basic tap-tempo detection, I guess ... although I've noticed that the tap-tempo buttons on a lot of synth gear don't actually line up the user's taps with the downbeat while playing, which makes them not so useful.)  The virtual clock counts out eighth-note intervals, which are converted both to analog sync pulses on the TRS outputs and to MIDI Clock messages on the USB port. A short 3.5mm audio cable connects the sync out to the Pocket Operator's sync in, and bob's your DJ uncle.

The shape of the PCB has seen a lot of tweaks.  It's designed to sandwich neatly on the back of any Pocket Operator, to fit well in the hand, and to not require any case or additional hardware besides an audio cable and two rubber bands. Also, it uses a set of pogo pins that rest on the twelve programming pads on the back of the Pocket Operator -- thanks for those, TE! -- to connect to DC power, sleep/wake state and the SWD programming/debug pins. Those pads have to be aligned to those pins pretty perfectly, so the two boards absolutely mustn't twist or shift relative to each other.  But there are no mounting holes on the PO, nor any other normal hardware for fastening a daughterboard.  So getting a perfect fit has taken a lot of iterations, but the latest version is working nicely. Basically there's a very detailed slot in the back of the PI which grips the spring-loaded battery clips of the PO in particular ways.  One set of shapes grips the battery-holding clips horizontally while allowing vertical movement; another set of shapes grips the battery contacts vertically, while still allowing them to move horizontally.  So it all stays fixed in place even while I swap the batteries.

I have no formal EE education, but I've been teaching myself electronics with Arduino for the last decade or so.  I've done some fun art projects and learned a lot, but the Pocket Integrator has been a whole other level of new-skill-acheivement for me. I've taught myself KiCad, how to solder 0604 components, how to trace signals with a logic analyzer, and a ton of tiny details about MCU firmware programming and hardware design....

Read more »