         delay(500);
         }
 
+    Serial.print(" 0x");
+    Serial.println(CalibNew, HEX);
     return CalibNew;
     }
 
 uint32_t
-MeasureMillisPerRtcSecond(
+MeasureMicrosPerRtcSecond(
     void
     )
     {

    /* wait for the next second to start, and capture millis() */
    do	{
        now = RTC->TR & (RTC_TR_ST | RTC_TR_SU);
        end = millis();
        } while (second == now);

    /* return the delta */

    CalibLow = 0;
    CalibHigh = 0;
    mSecondLow = 0;
    mSecondHigh = 2000000;
    fHaveSeenLow = fHaveSeenHigh = false;

    /* loop until we have a new value */
    do	{
        /* meassure the # of millis per RTC second */
        mSecond = MeasureMicrosPerRtcSecond();

        /* invariant: */
        if (Calib == CalibNew)
            mSecondNew = mSecond;

        /* if mSecond is low, this meaans we must increase the system clock */
        if (mSecond <= 1000000)
            {
            Serial.print('-');
            /*
