Timing

Official libraries

  • AudioFrequencyMeter: Get the fundamental pitch of an audio signal
  • NTPClient: An NTPClient to connect to a time server
  • RTCZero: Allows to use the RTC functionalities. For Arduino Zero, MKRZero and MKR1000 only.

Contributed by the community

  • AceTime: Date, time, timezone classes for Arduino supporting the full IANA TZ Database to convert epoch seconds to date and time components in different time zones.
  • AceTimeClock: Clock classes for Arduino that provide an auto-incrementing count of seconds since a known epoch which can be synchronized from external sources such as an NTP server, a DS3231 RTC chip, or an STM32 RTC chip.
  • Adafruit Si5351 Library: Driver for Adafruit's Si5351 Clockgen Breakout
  • AnalogRTCLib: Library for Analog Devices Real Time Clocks.
  • Animation Tools: Simplifies creating behaviours for Servos and LEDs
  • AntiDelay: AntiDelay is a library that aims to provide non-blocking delay functionality.
  • ANTIRTOS: No any RTOS needed, you will see - seamlessly manage all your tasks without unnecessary waiting, keep your interrupts blazing fast.
  • arduino-timer: Timer library for delaying function calls
  • arduino-timer-api: Simple cross-platform API for multitasking on timer interrupt handlers
  • ArduinoSensors: A Library of Libraries of Sensors
  • ArduinoThread: A simple way to run Threads on Arduino
  • ArduinoThreadRunOnce: Run an ArduinoThread just one time
  • Artron DS1338: Arduino library of RTC DS1338.
  • Async_Operations: A library for accurately keeping track of long tasks without blocking the main thread
  • AsyncDelay: Simple abstraction library implementing delays and timeouts.
  • Asynchrony: A way to schedule functions to be executed in the future, similar to asynchrony in other languages.
  • AsyncTimer: JavaScript-like async timing functions (setTimeout, setInterval).
  • avdweb_SAMDtimer: Timer library for the SAMD21 and Arduino Zero
  • avdweb_VirtualDelay: Allows using (multiple) delays without blocking code execution. Arduino Uno and Zero.
  • AVR Standard C Time Library: <h3>Real Time functions for Goldilocks ATmega1284p & ATmega2560</h3>
  • avrCalibrate: This library determines OSCCAL calibration values for MCU clock frequency and internal reference voltage and loads them at setup.
  • avrtos: RTOS for AVR Arduino microcontrollers (Uno & Mega)
  • Azure RTOS ThreadX: Azure RTOS ThreadX Library for Arduino
  • BasicTimer: Basic Timer Interface
  • Benchmark: Measure code execution time
  • BlockNot: BlockNot gives you non-blocking timers with simplicity.
  • bluemicro_engine: Engine to implement a loop in order to decouple the progression of time from user input and processor speed.
  • buildTime: Library will help you to get compile time
  • CallbackHelper: Tool to generate std::function like callback APIs without the huge memory footprint of std::function
  • CallMyFunction: Arduino library to call function with time restrictions
  • Chrono: Chronometer/stopwatch library that counts the time passed since started.
  • CleanRTOS: Makes use of FreeRTOS on ESP32 much easier and safer.
  • CMMC Easy: CMMC Easy is a library for managing time without delay function
  • CompileTime: Automatically set the hours, minutes seconds, year, month, and day in your project when uploading!
  • CoopTask: Portable C++ library for cooperative multitasking like Arduino Scheduler on ESP8266/ESP32, AVR, Linux, Windows
  • CoopThreads: Lightweight, platform agnostic, stackful cooperative threads library
  • Countimer: A simple library for creating timers and counters.
  • CronAlarms: Schedule alarms to occur at specific times with crontab syntax.
  • cronos: A std::chrono wrapper for target system's native tick count.
  • CSE_MillisTimer: Arduino library for simplifying the use of millis() based timers.
  • DCF77: Read and decode the atomic time broadcasted by the DCF77 radiostation.
  • dcf77_xtal: DCF77 decoder with excellent noise tolerance.
  • DCF77Decode: Focusing on clean code, this library implements almost the entire public DCF77 standard in C.
  • Debouncer: Debounce library for Arduino
  • DelayExec: A library to defer executions
  • DFRobot_DS1307: Define infrastructure of DFRobot_DS1307 class(SKU: DFR0151).
  • DFRobot_DS323X: DS323X driver library.
  • DMOscillator: A library that makes easy on/off control on a pin at fixed or dynamic rate.
  • DMTimer: A library that simplifies non blocking recurrent calls.
  • Dorpac-timer: A library for implementing very simple timers
  • DS1307 Emulator: An emulator of the DS1307, which transform the Arduino in an RTC chip without actually having a physical RTC.
  • DS1307newAlarms: Adding weekday alarms to the DS1307 RTC functionality
  • DS1307RTC: Use a DS1307 Real Time Clock chip with the Time library
  • DS3231: Arduino library for the DS3231 real-time clock (RTC)
  • DS3231-RTC: C++ Library for the DS3231 real-time clock (RTC) module, ready to use on Arduino IDE and PlatformIO.
  • DS3231_RTC: Arduino library for the DS3231 real-time clock (RTC)
  • ds3231FS: Arduino Library for Maxim Integrated DS3231 Real-Time Clock.
  • DS3232RTC: Arduino Library for Maxim Integrated DS3232 and DS3231 Real-Time Clocks.
  • DST RTC: Arduino library for automatically adjusting RTC time for Daylight Saving Time (DST)
  • DTime: Date plus Time workaround service
  • DueTimer: Timer Library fully implemented for Arduino DUE
  • EasyNTPClient: Library to read time from Network Time Protocol (NTP) servers.
  • EasyTask: A lightweight but powerful implementation of tasking manager.
  • EdgieD: Simple, generalised edge detection for variables as well as input signals
  • elapsedMillis: Makes coding responsive sketches easier.
  • ESP32Time: Set and retrieve internal RTC time on ESP32 boards.
  • ESPPerfectTime: SNTP library that provides more accurate time for ESP8266/ESP32.
  • EspSleep: Library for esp8266 unlimited deep sleep period
  • Every: Non-blocking replacements for delay().
  • everytime: A easy to use library for periodic code execution.
  • EveryTimer: A library providing the possibility to call a function at specific time intervals.
  • Executive: Execute routines to specified schedule
  • ezTime: ezTime - pronounced "Easy Time" - is a very easy to use Arduino time and date library that provides NTP network time lookups, extensive timezone support, formatted time and date strings, user events, millisecond precision and more.
  • FaBo 215 RTC PCF2129: A library for FaBo RTC I2C Brick
  • fast_samd21_tc: TC3, TC4 or TC5 timer library for SAMD21 microcontrollers.
  • FastTimer: Arduino Library for managing time section, can be extended for requesting Unix/RFC3339 timestamp by NTP
  • FC0005748911: Firechip - Micro Crystal RV-8263 Arduino Library a Real-Time Clock Module with I2C-Bus
  • FifteenStep: A general purpose Arduino MIDI sequencer library.
  • FireTimer: Simple and non-blocking library to time the execution of processes
  • flex_DST: A library for observing DST according to user predefined parameters.
  • FreeRTOS: FreeRTOS Real Time Operating System implemented for Arduino Uno R3, Nano, Leonardo, Mega, and related Microchip ATmega devices.
  • FreqPeriodCounter: Smart library with comprehensive functions for counting (multiple) frequencies. For Arduino Uno and Zero.
  • FrequencyTimer2: Generate a frequency using Timer2
  • frt: Lightweight, easy-to-use wrapper around the Arduino_FreeRTOS_Library.
  • Geekble_LieDetector: Library for Geekble LieDetector
  • Geekble_Oscillator: Generate pulse from 31.25KHz to 8MHz
  • Grove - RTC DS1307: Arduino library to control Grove - RTC DS1307.
  • GyverBeeper: Async tone generator with amount and time settings
  • GyverBlinker: Async LED blinker and task count timer
  • GyverNTP: Library for async receiving precise time from NTP server
  • GyverOS: Simple task manager for Arduino
  • GyverTimer: Simple timer with period/timeout modes on millis
  • GyverTimers: Library for control hardware timers on ATmega328p and ATmega2560
  • HaCTimers: An event driven arduino Timer.
  • HeliOS: An open source, community delivered, embedded operating system project.
  • iarduino_RTC: Библиотека для работы с часами реального времени.
  • IntervalCallback: Library to call a callback repetively after a certain time.
  • IntervalTimerEx: IntervalTimerEx subclasses the Teensy IntervalTimer to allow for a variety of callable objects as timer callbacks.
  • JC_Sunrise: Arduino library to calculate sunrise and sunset times.
  • jm_Scheduler: A Cooperative Scheduler Library for Arduino.
  • Jobber: simulated Threading for Arduino & Co.
  • ledflasher: Responsively flash LEDs
  • LedTask: The Arduino library shows the power of non-preemptive multitasking.
  • leOS: Simple scheduler that run little tasks within IRSs
  • leOS2: Simple scheduler based on watchdog that runs little tasks within IRS
  • looper: Proto-scheduler based on the use of millis()
  • M5_RTC_Module: A library for using the RTC-Module from iotec for the M5-Stack.
  • Max31328RTC: Library for Max31328 Real Time Clock.
  • MCP79412RTC: Arduino library for the Microchip MCP79411/12 Real-Time Clock/Calendar.
  • MicroBeaut: MicroBeaut Standard Library for Arduino.
  • MicroNMEA: Compact Arduino library to parse NMEA sentences.
  • MillisCounter: Arduino library to count up and down time using the millis() function.
  • MillisTimer: A timer library for working with millis().<br />
  • MillisTimerLib: Library to use the Millis function as a task scheduler.
  • MilliStopper: Easy to use and lightweight stopper
  • MKL_RTClib: A fork of Jeelab, fantastic RTC library.
  • msTask: Use hardware Timer1 to run tasks in time preset
  • MsTimer2: Run an interrupt function using Timer2
  • muTimer: Arduino library to easily use on/off delays and cycle timers with non-blocking functions.
  • MyAlarm: A library that manage alarms and timers based tasks.
  • MyDelay: Arduino library that provides a non-blocking repeating timer with callback functionality.
  • NE555: Simulation of the function from a NE555 timer chip. ;)
  • Neotimer: "A powerful non-blocking timer"
  • NGLedFlasher Library: Arduino library for Flashing more then one LED
  • NoDelay: Arduino library to make use of the Millis funtion for non Blocking Delays.
  • NodeRedTime: Fetch Unix Epoch timestamp from Node-Red flow.
  • NonBlockingDelay: Non-blocking delay library for embedded systems, using a .hpp header.
  • NTimer: Timing for events, asynchronus delays
  • NTP: NTP library
  • NtpClientLib: Ntp Client Library
  • NTPtime: NTPtime, UNIXtime and TimeFunc give you full control and more manipulation with time.
  • Nusabot Simple Timer: Simple library to launch timed actions.
  • OneShot: Generates an event that occurs only once at a specified interval.
  • OnlyTimer: Simple timer based on millis function.
  • PagonGameDev GameLoop: "Library for Creating Game with GameLoop"
  • PCF8523: Arduino Library for PCF8523 Real-Time Clock
  • PCF8563_RTC: A library that interfaces with the PCF8563 RTC.
  • PCF8583: PCF8583 Real Time Clock and Event Counter Library for Arduino
  • PersistentQueue: Implementation of a queue that persists messages to flash.
  • PollingTimer: Arduino library to manage timing and event in a flexible way with polling
  • precise_sntp: This library is an implementation of the Simple Network Time Protocol (SNTPv4) for the arduino platform providing sub-second precision.
  • ProcessScheduler: An OOP multitasking library
  • Profiler: Easily profile your Arduino functions to see how much time they take. The output can be disabled and enabled at runtime. Very lightweight.
  • ptScheduler: Arduino timing library for writing non-blocking periodic tasks without using delay or millis routines.
  • PWMFreak: Configures the PWM frequency on a pin
  • QuarkTS: An open-source OS for embedded applications that supports prioritized cooperative scheduling, time control, inter-task communications primitives, hierarchical state machines and CoRoutines.
  • r4SwRTC: A simple software RTC library for Arduino UNO R4.
  • RBD_Timer: Manage many timed events.
  • ReefwingTimer: A non blocking Scheduler based on millis().
  • Rocket Scream RTCAVRZero: Minimalistic RTC (Real Time Counter) implementation for MegaAVR 0-series MCU.
  • roo_scheduler: Allows scheduling delayed and/or repetitive tasks.
  • roo_time: Basic management of elapsed time, wall time, and date time, with multi-timezone support.
  • roo_time_ds3231: Arduino driver for DS3231 real-time clock, compliant with roo_time.
  • RP2040_RTC: This library enables you to use RTC from RP2040-based boards such as Nano_RP2040_Connect, RASPBERRY_PI_PICO
  • RT-Thread: Real Time Operating System porting for Arduino SAM and SAMD boards
  • RTC: Library for I2C based RTCs (DS1307, DS3231, PCF8563, PCF8523, MCP7940).
  • RTC RV-3028-C7 Arduino Library: A library to drive the RV-3028-C7 extremely precise, extremely low power, real-time clock
  • RTC3231: A modified RTClib library to handle DS3231 RTC only.
  • Rtc_Pcf8563: A library that interfaces the Phillips PCF8563 Real Time Clock chip.
  • RTC_RX8025T: Arduino library for the RX8025T real time clock (RTC)
  • RTCCounter: Provides use of the RTC peripheral in 32bit counter mode. For Arduino SAMD21 boards only.
  • RTCDS1307: Library for rtc 1307
  • RTCDue: Use for the RTC inside the SAM3X8E from the Arduino DUE
  • RTClib: A fork of Jeelab's fantastic RTC library
  • RTCtime: A "Standard C Runtime" compatible library for interfacing the DS1307 and DS3231 Real Time Clock modules.
  • RTCTimer: An Arduino library to easily perform scheduled tasks.
  • RTCx: Library to access DS1307, DS1337/8, MCP7941x and PCF85263 real-time clocks.
  • RTL8720_RTC: This library enables you to use RTC from RTL8720-based boards such as RTL8720DN, RTL8722DM, RTL8722CSM.
  • RV-1805-C3: Library for Micro Crystal RV-1805-C3 extreme low power RTC module.
  • RV-3028-C7: Library for Micro Crystal RV-3028-C7 extreme low power RTC module.
  • RV3028: Basic library for the RV-3028-C7 RTC
  • RV8803Tiny: A library to drive the RV8803 extremely precise, extremely low power, real-time clock from new ATTINY series that run on MegaTinyCore.
  • RX8025: Control RX8025 chip or the solar calendar to the lunar calendar.
  • SandTimer: Easy to use and lightweight timer
  • SceneManager: cooperative multi-scene manager for Arduino
  • SchedulerESP8266: A library to create timed schedules.
  • ScheduleTable: This library allows to schedule multiple actions along time.
  • secTimer: Simple seconds counter
  • Seeed Arduino RTC: RTC library for SAMD21 and SAMD51.
  • SeqTimer: Small piece of sequential Timer class (does not modify hw timers)
  • simpleDSTadjust: Automatic Daylight Saving Time adjust functionality for Arduino/ESP8266
  • simpleEvents: Implement simple event loops for micro-controllers using Arduino’s millis().
  • SimpleTicker: A library for creating Tickers, which will notify user that a given period has elapsed. Replaces delay() and allows users to write non-blocking code.
  • SimpleTime: SimpleTime functionality for Arduino
  • SimpleTimeout: Minimal, production-ready timeout library for Arduino.
  • Simpletimer: this is simple class you can use to manage time and tasks
  • SimpleTiming: A library which helps you to write non-delaying timers
  • SimplifiedTimer: Simple arduino timer.
  • SimplyAtomic: A library for creating portable atomic blocks within your program
  • slight_easing: very simple easing functions.
  • slight_Fade: Timed value fading.
  • SmallRTC: Replacement RTC library for Watchy.
  • Smart_Duty_Cycling: Automatic duty cycle generation for your Arduino program.
  • SoftTimer: SoftTimer is a lightweight pseudo multitasking solution for Arduino.
  • SoftTimers: The SoftTimers arduino library is a collection of software timers. The library aims at greatly simplifying multitask complexity.
  • SoftwareTimer: Software timer library
  • solar2lunar: Arduino library for convert Gregorian calendar to Vietnamese lunar.
  • Soldered PCF85063A RTC Arduino Library: PCF85063A Board Arduino Library
  • SparkFun Clock 5P49V60 Arduino Library: Library that enables all functionality for the SparkFun Clock Generator 5P49V60.
  • SparkFun Qwiic RTC RV1805 Arduino Library: A library to drive the RV-1805 extremely precise, extremely low power, real-time clock
  • spin-timer: Universal Timer with 1 millisecond resolution, supporting OOP principles.
  • SSVLongTime: Singleton class to return uptime in seconds.
  • SSVNTPCoreClass: Singleton class to get real time over NTP. Based on esp8266 core function configTime(). Supports auto DST per time zone.
  • SSVTimer: One more non-blocking timer class based on millis() function.
  • Stamp: Library for time keeping and manipulation
  • StensTimer: An accessible Arduino timer library that enables you to use callbacks on class-instances as well as static callbacks (most commonly used).
  • STM32duino FreeRTOS: Real Time Operating System implemented for STM32
  • STM32duino RTC: Allows to use the RTC functionalities of STM32 based boards.
  • STM32F1_RTC: Allows to use the RTC functionalities of STM32F1xx based boards using external low speed oscillator.
  • StopWatch_RT: Arduino Library implementing a stopwatch.
  • Strober: Easy to use and lightweight led light pattern player
  • SuperTimers: A Simple Timer Implementation that allows you to set a time and then check if the time has passed. You can set time in millis or minutes.
  • Switch2_lib: A clone of Switch_lib (O.Goma) library for switching digital pins with timers, adding milliseconds
  • Switch_lib: A library for switching digital pins with timers, temporization and periods
  • Task by Makuna: A library that makes creating complex mulitple task projects easy.
  • Task Scheduler: Lightweight and fast preemptive scheduler for ATMega and SAM3X Arduino Boards.
  • Tasker: Get rid of delay() calls, schedule tasks/functions instead.
  • TaskJockey: A simple, light-weight cooperative task manager for Arduino, ESP32, STM32, and similar systems
  • TaskManager: cooperative multi-task manager for Arduino
  • Taskrunner: Allows arduino to run scheduler which can run functions at specific frequency
  • TaskScheduler: Cooperative multitasking for Arduino, ESPx, STM32 and other microcontrollers.
  • TCone: MicroBeaut-TCone Library with Timer and Counter One.
  • TeensyTimerTool: Generic Interface to Teensy Timers
  • ThreadedTimer: A threaded timing library for mbed Arduinos
  • Ticker: A library for creating Tickers which can call repeating functions. Replaces delay() with non-blocking functions.
  • TickTwo: A library for creating Tickers which can call repeating functions. Replaces delay() with non-blocking functions. Recommanded for ESP and Arduino boards with mbed behind.
  • Time: Timekeeping functionality for Arduino
  • TimeAlarms: Perform tasks at specific times or after specific intervals.
  • TimedState: An Arduino Library providing utilities for controlling program state over time without delay().
  • TimeInterrupt: Allows for timer interrupts on various platforms.
  • TimeOut: An Arduino library that creates timer callbacks.
  • TimeoutCallback: Library to call a callback after a certain time.
  • TimeProfiler: Time profiler for Arduino
  • Timer: A library for creating start / stop Timers
  • TimerEvent: TimerEvent is a non-blocking alternative to the delay() function.
  • TimerFa: Software Timer
  • TimerFive: Use hardware Timer5 for finer PWM control and/or running an periodic interrupt function
  • TimerFour: Use hardware Timer4 for finer PWM control and/or running an periodic interrupt function
  • TimerFour32u4: Allow usage of the 10-bit hardware high speed Timer4 on ATMega16u4 and ATMega32u4.
  • TimerMs: Advanced software timer (based on millis())
  • TimerOne: Use hardware Timer1 for finer PWM control and/or running an periodic interrupt function
  • TimerOne_V2: Use hardware Timer1 for finer PWM control and/or running an periodic interrupt function
  • Timers: LightWeight Timers library
  • timersapi: Library for timers, countdowns and counters.
  • TimersOneForAll: Make full use of all your hardware timers on your Arduino board. 充分利用你开发板上所有的硬件计时器
  • TimerThree: Use hardware Timer3 for finer PWM control and/or running an periodic interrupt function
  • TimerUtils: A library for making frequent tasks easy
  • Timezone: Arduino library to facilitate time zone conversions and automatic daylight saving (summer) time adjustments.
  • TinyRTCLib: A tiny version of RTCLib, for use with TinyWireM
  • TinyScheduler: A lightweight and flexible task scheduling library for Arduino, allowing users to manage time-based events such as timeouts, periodic tasks, and repeated executions with an intuitive API.
  • tinyTimeR: Easily implement timer interrupts.
  • Tweakly: A bizarre library, with the familiarity of Wiring and the power of real-time processes, advanced pin functions, and bouncing free.
  • uClock: BPM clock generator for Arduino platform.
  • uICAL: Library for parsing iCalendar file format.
  • UniversalTimer: Easy to use, multifunctional and non-blocking timer.
  • UnixTime: Unix time stamp to date time conversion and vice versa
  • Uptime: Get the device uptime in years, months, days, hours, minutes, seconds, milliseconds, total days, and total seconds.
  • Uptime Library: Uptime library for Arduino boards and compatible systems
  • uTimerBrokerLib: Broker for multiple timed functions for uTimerLib
  • uTimerLib: Tiny and cross-device compatible timer library
  • uUnixDate: Tiny and simplified library to convert to and from UNIX timestamps
  • VariableTimedAction: A library for creating timed events/actions.
  • vn_lunar: Arduino library for convert Gregorian calendar to Vietnamese lunar.
  • WD Easy: WD timer
  • WeeklyAlarm: weekday timer ( thermostat like scheduler )
  • wiring-timer: Universal Timer with 1 millisecond resolution, based on system uptime (i.e. Arduino: millis() function or STM32: HAL_GetTick() function), supporting OOP principles.
  • Yet Another Arduino Debounce Library: An asynchronous Arduino Library for debouncing
  • ZeroTC45: Allows use of the ARM Cortex-M0 TC4 and TC5 counters for periodic interrupts.