Pulser #1 — Tightness
So the question was: how can you generate a tight base pulse and also control the speed, i.e. the BPM?
The first approach was purely electronic. A crystal oscillator, a few capacitors, and various ICs that divide the crystal's clock into different speeds. This worked in principle and was tight, but otherwise inflexible and unwieldy.
So I decided to have the pulse generated digitally by software. My choice fell on an RP2040 Raspberry Pi Pico. First, I had a few lying around, and second, it has PIO state machines that can execute "crystal-accurate" timed actions independently of the processor.
This means I can change the state of the pins (HIGH or LOW) with a resolution of 8ns. Since each PIO state machine operates completely independently, nothing disturbs it, and it can output a precisely clocked square wave signal on the pins.
