RTC DS3231 can't dispay plain hours eg 12:00

Hallo XODers,
first let me state, that I like XOD very much. Very good work having develloped the platform, thx for that.
Actually I have Problems to get a RTC DS 3231 busy:
I use the standard the xod RTC-node
Every time the seconds-transition from 59 to 0 (change of minutes ) an Error appears for that second.
Every time the minutes-transition from 59 to 0 (change of hours) an Error appears for that minute.

I wonder if this is an issue of my RTC hardware, or is it an issue within the node?
Can anybody help solving the problem, pls?

13uli Hi mate!
It looks like an XOD I2C working bug!
We will definitely fix this bug in the next release.

But, by now you can fix it by changing the C++ code inside of the xod/i2c/read-byte node.

That’s how it should look like.
Please response if the error is gone. Thank you!

#pragma XOD error_raise enable

struct State {
};

{{ GENERATED_CODE }}

void evaluate(Context ctx) {
    if (!isInputDirty<input_READ>(ctx))
        return;

    auto wire = getValue<input_I2C>(ctx);
    if (!wire->available()) {
        raiseError(ctx);
        return;
    }

    auto res = wire->read();
    if (res == -1) {
        raiseError(ctx); // Can't read byte
        return;
     }

    emitValue<output_BYTE>(ctx, (uint8_t)res);
    emitValue<output_DONE>(ctx, 1);
}
1 Like

Hi gabbapeople,
Thx for your quick reply.
You are a wizzard, your coding did the trick !!
I loaded the RTC to 2018-12-31, 23:59:45 tested the Newyear-transition and everything is working just fine. After 15 sec the Display showed 2019-01-01, 00:00:00 without any error, great!!
I’m very happy, thanks a lot.