Virtuabotixrtch Arduino Library Guide

If you need absolute seconds since 1970, you can extend the library:

Even with a simple library, problems arise. Here are the most common fixes for VirtuabotixRTC: Issue 1: The time reads 165:85:85 or similar gibberish. Cause: The RTC chip has lost power (dead battery) or was never set. The registers contain random values. Fix: Replace the CR2032 battery. Then, uncomment the setTime() line in setup() , upload the code, wait 5 seconds, then re-upload after commenting it out again. Issue 2: The time resets every time I unplug USB. Cause: Your RTC module’s battery is not connected, or the module does not have a battery holder. Fix: Most cheap modules have a diode that prevents charging. Ensure a 3V coin cell is installed. Issue 3: Compilation error – VirtuabotixRTC.h: No such file Cause: Library not installed correctly. Fix: Reinstall via Library Manager. Restart Arduino IDE. Issue 4: The year shows 24 but I want 2024 . Fix: The library stores years as two-digit (0 to 99). You must manually add 2000 in your print statement:

// Initialize I2C LCD (16x2, address 0x27) LiquidCrystal_I2C lcd(0x27, 16, 2); virtuabotixrtch arduino library

VirtuabotixRTC myRTC(0, 1); // Pin 0 = SDA, Pin 1 = SCL Performance will be slower but functional. | Feature | VirtuabotixRTC | Adafruit RTClib | | :--- | :--- | :--- | | Memory Footprint | ~3KB Flash, low RAM | ~7KB+ Flash | | Ease of Use | Very easy (Int variables) | Moderate (DateTime object) | | Timestamp support | No (manual conversion) | Yes (unixtime) | | Alarm features (DS3231) | No | Yes | | Temperature reading | No | Yes (DS3231 only) | | Best for | Beginners, small MCUs | Complex dataloggers |

lcd.setCursor(0, 1); lcd.print("Date: "); if(myRTC.dayofmonth < 10) lcd.print("0"); lcd.print(myRTC.dayofmonth); lcd.print("/"); if(myRTC.month < 10) lcd.print("0"); lcd.print(myRTC.month); lcd.print("/20"); lcd.print(myRTC.year); If you need absolute seconds since 1970, you

The VirtuabotixRTC library, originally created by the hardware manufacturer Virtuabotix, is a lightweight, simple-to-use library designed specifically for the DS1307 and DS3231 RTC chips over I2C communication. Whether you are building a data logger, an automated garden irrigation system, or a digital clock, this library provides the essential functions without the bloat of more complex timestamp libraries.

| RTC Module Pin | Arduino Uno/Nano | Arduino Mega 2560 | ESP8266 (NodeMCU) | | :------------ | :--------------- | :---------------- | :---------------- | | | 5V | 5V | 3.3V | | GND | GND | GND | GND | | SCL | A5 | 21 | D1 (GPIO5) | | SDA | A4 | 20 | D2 (GPIO4) | The registers contain random values

void setup() // Wake up Wire.begin(); myRTC.updateTime(); Serial.println(myRTC.minutes); // Enter deep sleep for 1 minute ESP.deepSleep(60e6);