I am building an irrigation controller using a UNO, it currently has a RTC , 4 keys managed by PCF8574, 4 relays controlled by the same PCF8574, a sd_card, and a 2x16 LCD and a moisture sensor.
The idea is that when powered on the irrigation schedule is read from a file on the sd_card and then the program is run which will turn on and off the relays.
Individually all the bits work, i can read and write to the sd_card, can see buttons pressed can turn on and off relays, can get the time from the rtc.
BUT, I find that the lcd and/or the RTC interfere with the sd_card. As the sd_card is not an i2c device I am at a loss to understand why,
Is anyone aware of why this would be the case and maybe point me to a discussion on the matter.
Posting a schematic as you have wired it would help us. Frizzy pictures do not do much. Also post links to technical information on each of the hardware devices.
srnet asked a really important question : what is happening ? interfering can be so many things. Does the I2C bus halt ? Does the RTC not have the time anymore ?
This forum can put a sketch between code text, so we prefer that instead of links or attachments. That's how it is.
For those of us who are used to look at schematics, a Fritzing or Tinkercad picture can be really hard to understand. We have to convert it in our head to a normal schematic. That is not impossible, but we just like to emphasize that we don't like Fritzing picture.
Someone should make a T-shirt for nerds with the text: "Don't show me a Fritzing picture"
You can draw a schematic on a piece of paper and make a photo of it.
KiCad is free and it can import Eagle *.sch files.
Some use a online schematic service, but I'm struggling too often with those.
You see, if you know the background, then the others were reasonable and to the point
KiCad is free although a donation is asked for but not required. It will work on most operating systems. I use Linux and my buddy uses Windows. That should fit your budget. I have been using it for several years and I like it. All of the PCBs I did with it came back correct.
How much memory usage does the compiler show? The SD library will need 512 bytes of ram for a buffer. My guess, without being able to compile the code, is that you are low on ram (dynamic memory).
Your sketch is using RTC_millis, which is a software RTC based off the millis counter, so no wiring problems from that.
Use the F() macro for any printed text literals, that will save some ram.