MichD

 

Clock Generator

A clock pulse generator with divided outputs, used to drive sequencers and other triggerable modules.

While working on my sequencer module it occurred to me it would need a good clock source. Generating a variable clock with decent accuracy went a bit over the available resources I had on the sequencer’s microcontroller, so I decided to split it out.

This module runs on a small ATTiny84 microcontroller, as well as a display driver IC and a counter to divide down the clock signal to other useful rates.

It’s worth pointing out that I didn’t think that clock division through very well, since all the outputs end up out of sync from eachother rather than triggering in rhythmical sync.

An LED blinks in time with the 1/4 output, every beat. Up and down buttons let you set the tempo in beats per minute (BPM). Pressing and holding them makes the tempo increase or decrease further automatically, just like in many common interfaces for setting clocks and such.

Work involved

  • Circuit design and prototyping on breadboard
  • Firmware development in AVR-C, done in Atmel Studio
  • Schematic capture (KiCad)
  • PCB Design (KiCad)
  • Front panel design (Inkscape) + laser cutting at local makerspace
  • Assembly of circuit board, panel
  • 3D modeling for the 3D-printed button caps (SketchUp)

Here’s a view of the back:

All the design files and code are available on GitHub: clock-generator module