Time and Attendence

I currently work for a company that is contracted out by a larger organization to provide Time and Attendence units for the Hourly employees to clock in and clock out.

It is connected by a secured network connection (Cat5), transmitted to a server and taken from their.

Me and a co worker got this idea to make our own version of the Units by using an adrino, shields, keypads, barcode scanners and the likes. and we were wondering if this would be even fesable?

So i ask you all, would such a device be able to be created in order to replace the currently used ones?

What we do is supply them the smooth operation and fix the units and ability for them to do so. The units themselves we buy from another company that charges XXXX more then what it would cost the arduino parts.

Our companys main office creates T&A software, but no hardware is produced. We are trying to come up with an idea that would allow us a cheeper, user friendly version that we don't have to just through hoops to get command code, spec sheets, replacement parts, and tech. sheets.

Something like

   +----------+    +------------+    +-----------+
   | KeyPad   |--->| Arduino    +--->| SDCARD    |
   +----------+    |            +    +-----------+
                   |            |
                   |            |
                   |            |    +-----------+
                   |            +--->| EtherNet  |
                   +-----^------+    +-----------+
                   | Real Time  |
                   | Clock      |

Go to the tutorial pages and the playground, almost every part you need is described there.

Something like

You can drop the clock if you have Ethernet. Even with the RTC you'll be syncing with network-based time, so why bother with the RTC.

Even with the RTC you'll be syncing with network-based time, so why bother with the RTC.

I would use the RTC for time keeping under normal operation, and sync it only once per day or week with NTP (if really needed)

  • time based upon millis() has an undefined starting point, so you need either RTC or NTP or both
  • you don't want to bother an NTP stratum server for every action you do, they definitely don't like that
  • and, it takes serious time to fetch time over NTP.
    ==> so an RTC is imho preferred over NTP , but the most robust and accurate will be in the mix.

Last but not least the device should be able to log time-entries if the ethernet connection failed, so for that an RTC is also mandatory.


Perhaps the Time library in the playground could be useful for this application.

It supports time information that can be synchronized to NTP (or an RTC) every 5 minutes (or at any user defined interval).
There is an example sketch for synching with NTP and another that syncs with an RTC
The library can found here

OK, never used that library,

Do you have any idea about its accuracy / timedrift ? an DS1301 RTC can drift a couple seconds per day IIRC. -- update -- I meant DS1307

In my experience, on a standard Arduino board with a crystal, the internal clock is accurate to a few seconds a day.
The Arduino Uno uses a ceramic resonator and the accuracy drops significantly, but should still be accurate enough to keep time within a second if synched every few minutes.