Easy to use and easy to program 3 channels from 2.5 KHz to 225 MHz clock generator board.

Video: pandauino.com. Music: Depart (cdk mix) by Analog By Nature (c)2015  http://dig.ccmixter.org/files/cdk/50347 Ft: Tekno Eddy

This Clock Generator circuit is particularly suited for Arduino and STM32 user’s but it can serve an electronician in any kind of situation with:

  • Up to 3 clocks
  • All clocks up to 100 MHz and one clock up to 225 MHz
  • Settable signal strength
  • Settable phase
  • Easy interface
  • Programmable / remote controllable
Clock Generator main view

Clock Generator main view

It is build around the well known Si5351 chip by Silicon Labs, driven by an STM32 Cortex m3 microcontroller. The need for this tool came from the fact that I use a couple of microcontroller and often experiment start-up problems. In some situation the MCU is bricked and I need an external clock (for example a 1 MHz clock for the Atmega328p), or I implemented an oscillator with the wrong clock frequency, or I you would like to check the frequency tolerance of a chip. Typical applications are:

  • bricked MCUs
  • testing different frequency settings to clock an MCU or another device
  • wrong clock needs an immediate replacement for prototyping
  • multi clock systems (for example the Clock Generator needs one 8 MHz clock and one 25 to 27 MHz clock)
  • testing the frequency tolerance / operating range of a chip
  • very high frequency clock
  • frequency sweep on small and very large ranges
  • radio variable oscillator source
  • signals in phase opposition or in phase quadrature
Clock Generator - Clock settings

Clock Generator – clock settings

Most users will appreciate an easy but versatile tool. Not a module that has to be conncected to another board and programmed from scratch. Also a device that allows proper connections for high frequency signals. This leads to the Clock Generator. A module designed to be low cost but offering:

User interface

Very clear and simple user interface with a color TFT 1.8″ display, a selector and one menu button. All actions are done by rotating the selector, single clicking or pressing the button.

Clock settings

3 clocks

From 2.5 KHz to 100 MHz and 225 MHz on one clock.

Relative phase adjustment for two clocks as compared to a reference clock. The phase steps  depend on the respective frequencies of the clocks. Allows phase opposition and quadrature of two or three clocks at the same frequency.

Clock Generator - Store settings

Clock Generator – store settings

4 drive strength levels: allows proper propagation or reduction of the ringing of the signal.

Please note that this module is not a function generator. It goes up to the VHF range but the signal shape goes from totally square to squarrish to plus or minus sinusoidal when the frequency goes up. It depends in part of the impedance matching between the output and the load. So the drive settings is usefull to get the best shape depending on the conditions.

One click status setting: turn on clock / turn off clock /  invert phase.

The main screen shows for each clock: frequency, drive strength,  phase, status.

Store clock settings

Store or restore 2 sets of all 3 clocks parameters.

Clock Generator - Clock 1 sweep settings

Clock Generator – clock sweep settings

Frequency sweep

Allows to sweep frequencies by setting

  • Start and stop frequencies
  • Frequency steps
  • Sweep period

All 3 clocks can sweep (nearly) simultaneously.


The device can be programmed in the Arduino environment. So you can use the Clock Generator for example in a tool chain to check the response of a system. The minimum program structure is extremely bare:

Clock Generator - Easy Programming

Remote controled

You can also set the clock parameters by sending commands over I2C or Serial. Here is an example of sending commands from the Arduino IDE Serial Monitor

Clock Generator Serial Interface

Clock Generator Serial Interface

Clock Generator - BNC Connectors

Clock Generator – BNC Connectors

Optional BNC connectors

Not all users will need very high frequency clocks. Some might have BNC connectors in their stock. So the Clock Generator is proposed with output pin headers and either:

  • without BNC connectors
  • or with 3 full metal, robust BNC connectors

Technical specifications

ClockGen v1.0 Specifications
Number of clocks3
Frequency range2.5 KHz - 100 MHz on all clocks
2.5 KHz - 225 MHz on one clock
Duty cycle45-55% at less then 160 MHz
40-60% above 160 MHz
Resolution1 Hz in the default program
0.01 Hz possible
Accuracy+/- 7 ppm frequency precision
+/- 15 ppm over the temperature range of - 40°c to 85°c
+/- 3 ppm aging per year
Calibration setting: +/- 29 ppm to compensate the inaccuracy
Output levelCMOS
Signal strenght2, 4, 6 or 8 mA
Phase offsetAbove 8 MHz, a minium of 90 degrees offset. Phase opposition at any frequency.
MemorySaves current configuration
2 more slots to save a set of clock parameters
Power5V USB
4.5V to 15 V power input
Current consumption: 70 mA
Dimensions and weight 96 x 65 x 29 mm
84 grams with BNC connectors
Clock Generator with 2 clocks in phase opposition@ 54.600 MHz

Clock Generator with 2 clocks in phase opposition@ 54.600 MHz