Project tutorial
Arduino Brake Rotor Clock

Arduino Brake Rotor Clock © GPL3+

A project using a car brake rotor as a clock.

  • 2 respects

Components and supplies

Necessary tools and machines

Hy gluegun
Hot glue gun (generic)

Apps and online services

About this project

This project is one of which I have been waiting to do for a very long time. This project can also be used as just a simple clock without the rotor. The clock is housed in a simple metal dish that I never used. The wires are fed through a hole to the rear, in which has the Arduino and the RTC securely mounted.

The base is a 1/2 thick piece of wood (make sure it can support the weight of your rotor) That is then wrapped with a carbon fiber vinyl tucked around the edges. We then have 2 1x1-inch wood legs are then cut to an angle of 50 or 45 degrees, then glued to the rear as support (see last picture). Your metal plate/dish is then firmly screwed in place with very durable screws (any type except machine ones). This point is where it gets tricky, as you must now wire up the clock to the front with your wires going through the back to the arduino that is mounted with the aid of double stick tape. Once you have finished the wiring you will want to clean up all glue strings and other debris from the face and back. Now mark your holes to mount the actual rotor screws, then drill them through your metal plate ensuring that you do not drill through the wood below. If you decide to buy the exact same rotor as I did there are 2 pre-tapped screw holes ready for our bolts to go through, and penetrate the earlier drilled metal plate mounting holes. Tighten the screws in so you have your screws going through your holes in the rotor then through the ones in the plate.


You must download the RTClib.h library from this link
#include <Wire.h>
#include <RTClib.h>

//DP G F E D C B A
const byte segmentMap[10] = {
  B00111111, //0
  B00000110, //1
  B01011011, //2
  B01001111, //3
  B01100110, //4
  B01101101, //5
  B01111101, //6
  B00000111, //7
  B01111111, //8
  B01100111  //9 

RTC_DS3231 rtc;

const int segmentPins[8] = {2,3,4,5,6,7,8,9}; // A B C D E F G DP
const int digitPins[4] = {10,11,12,13};       //DIG1 DIG2 DIG3 DIG4

void setup() {

  // Set the segment pins as outputs
  for (int i=0; i<8; i++) {
    pinMode(segmentPins[i], OUTPUT);
    digitalWrite(segmentPins[i], LOW);
  // Set the digit pins as outputs
  for (int i=0; i<4; i++) {
    pinMode(digitPins[i], OUTPUT);
    digitalWrite(digitPins[i], HIGH);
  if (! rtc.begin()) {
    while (1);

  if (rtc.lostPower()) {
    // following line sets the RTC to the date & time this sketch was compiled
    rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
    // This line sets the RTC with an explicit date & time, for example to set
    // January 21, 2014 at 3am you would call:
    // rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0));

void loop() {

    int digits[4];
    int hour;
    int minute;
    DateTime now =;

    // Convert 24 -> 12 hour 
    if (now.hour() > 12) {
      hour = now.hour() - 12;
    } else {
      hour = now.hour();
    minute = now.minute();

    // Figure out individual digits
    digits[0] = hour / 10;
    digits[1] = hour % 10;
    digits[2] = minute / 10;
    digits[3] = minute % 10;

    for (int i=0; i<=3; i++) {
      displayNumber(digits[i], i, 5);

void displayNumber(int number, int digit, int duration) {

  if ((number >=0 && number <=9) && (digit >= 0 && digit <=3)) {
    // Turn on appropriate digit
    digitalWrite(digitPins[digit], LOW);    
    // Turn on appropriate segments
    for (int seg=0; seg<8; seg++) {
      digitalWrite(segmentPins[seg], bitRead(segmentMap[number], seg));
    // Turn off digit
    digitalWrite(digitPins[digit], HIGH);    


the schematic
Clock rotor bb hpwmvvf70v


Similar projects you might like

Adjusting Clock on 128×64 Monochrome Display (ST7920)

Project tutorial by FLORICA Tudor-Nicusor

  • 17 respects

Arduino Gmail Clock

Project tutorial by fmattiussi

  • 1 comment
  • 1 respect

Arduino Without External Clock Crystal on ATmega328

Project tutorial by Techmirtz

  • 20 respects

Complete Digital Clock Including Alarm and Motion Sensor

Project tutorial by LAGSILVA

  • 73 respects

Analog Clock with LED Matrix and Arduino

Project tutorial by LAGSILVA

  • 65 respects

MultiFunctional Clock

Project in progress by 3 developers

  • 28 respects
Add projectSign up / Login