Tell the time with this fantastic Alchitry project using clocks to make a clock!
Behold: a project that uses many analog-style clocks together to form the digits of the time - so meta. Justin from Alchitry steps up to the workbench to build his own ClockClock, and shows you how to do it yourself in this new tutorial!
There are a couple reasons the ClockClock makes such a great FPGA demo project. First, the clock requires 48 stepper motors. There are 24 clocks and each one has two independent hands. Using a standard step/direction stepper driver means you need two control signals per motor, or 96 outputs. Justin wanted to be able to disable the drivers when the clock was stationary to save power. This added four more outputs (one for each “digit” of the clock). He also wanted to use an Arduino to generate the animations as it would be much easier to do this in code than hardware. To talk to the Arduino, it was decided to use I2C over the Alchitry Au’s Qwiic connector. This required two more IO pins for a total of 102. Conveniently, the Alchitry Au has exactly 102 IO pins.
Apart from showing off the massive amount of IO FPGAs are capable of, this project uses the Qwiic connector on the FPGA in a semi-unconventional way: The FPGA in this project acts as a peripheral instead of as a controller. The Arduino is the controller and issues all the commands to the FPGA - this should be a pretty useful paradigm for many projects!
For more about the world of FPGAs, visit our resource page: