Once upon a time when you wanted something to set the timing while you practiced a piece of music, you'd reach for your trusty metronome. A piece of metal swinging back and forth on a stick, making a loud and (frankly) annoying "tock" at each swing.

Then electronic metronomes with a variety of annonying noises came along, followed eventually by drum machines, iPhone apps, Ableton live and interactive web pages.

Maybe it's just me, but when I'm trying to get less bad at keeping time, fiddling with a mouse or the controls of some app does not help. 

I also like oscilloscopes with proper knobs and cars with absolutely zero touch-screens in them.

So. Here is BassMate: a programmable (ish) 4-channel rhythm box / drum machine / fancy metronome for people who need real controls and flashing lights.

Here's s demo video. The sound is what you'd expect of a small speaker. Most of the time I use it plugged in to my mixing desk which sounds great :-)


Genesis

No, not the band. This started back in the dark days of 2021 and has evolved in a few directions over time before settling to it's present-day perfection. [Is there an emoji for "OK, so I'm trying it on a bit"?]

Iteration 1: Buy a cheap VS1053 board of EBay, hook it up to an Arduino Uno, add a screen and an Adafruit NeoTrellis

Iteration 2: Hmm. Going to need quite a lot more memory. Also the VS1053 board is rubbish. Let's increase the scope wildly and use an ElectroSmith Daisy Seed to do everything, including synthesis.

Iteration 3: Turns out synthesis is hard. Plus I can't make the Daisy Seed do what I want (dev environment just doesn't work right). Must be my fault.

Never mind, I've got a Teensy in a box somewhere, let's put that in in place of the Daisy Seed, add some more buttons and a few knobs.

This iteration was still a bit over-scoped. It had A bunch of opamps to provide an input buffer and distortion effect so the guitar could be plugged in and the BassMate used as a practice amp. Two loudespeakers. More knobs and buttons than needed. A lithium battery charger and boost converter so it can be portable.

Iteration 4: I discovered the Duppa I2C NavKey and fell in love. This is the answer to my excess of controls. Out go two of the knobs, all four of the big buttons, the opamps, the lithium charger (never worked properly - this baby actually needs a lot of power, especially when a lot of LEDS are lit). Also switched the Teensy for a BlackPill. To be honest I can't remember why I did this. Some of my musings were captured in a Miro board here. I include this because a) I have no shame and b) if you don't know Miro, you need to know Miro :-)

Overall there is nothing special, or even slightly clever about the design (but see below):

  - BlackPill MCU

  - Adafruit VS1053 board (sounds good, can be set to boot into MIDI mode without needing to be hacked)

  - LCD

  - NeoTrellis

  - NavKey

  - 2 encoders

  - amplifier module

  - loudspeaker

The PSU section is clearly a mess - I mean look at this:

Basically, I started with a bunch of linear regulators

  - one for the NeoTrellis because it takes a lot of current and makes a lot of noise when flashing

  - one for the amp because it also takes loads of current

  - one for everything else

And I added a bridge rectifier in front of the regulators so I could plug in any old wall-wart without worrying about polarity. Result?

  - with a 12V supply the regulatorss overheated and shutdown within a couple of minutes

  - with a 9V supply (i.e. what you'd expect to find with a load of guitar effects pedals knocking around) the regulators get worryingly hot with the lid off during testing.

So I put a buck regulator module in front of the lot to cut the voltage to the linear regulators and get the power consumption down to something manageable without having to fit big heatsinks.

Of course, at this point i should have done two things:

  - move the bridge rectifier in front of the buck regulator

  - tested the whole thing with just a couple of buck regulators - one for 5V and one for 3V3 - to see if I could eliminate the linears entirely. Maybe one day I'll do that....

The Clever Bit

The granularity (??) of the built-in volume control in the VS1053 is in 0.5dB steps. This doesn't make for a smooth volume-controlling experience. So I added an AD5204 digital potentiometer into the mix. Clever huh?

The Finished Product

What's Inside

Going clockwise from the back: