I’m using the e/MCP4725 library, and it works fine in 2 scenarios, and doesn’t work in another (direct number wire). Basically, can work with deprecated triangle wave, but not the updated triangle wave. I couldn’t get it to update with any kind of number wired directly, even when changing the number to trigger the pulse-on-change inside the mcp4725 node.
Works using the example node with the library, with the deprecated triangle-wave node, directly wired to the mcp4725
Works using updated triangle-wave node only when going through a select node.
Seams like a potential safety issue with the i2c communication. The clocks can’t match, or one dominates the i2c bus. In my case, the ADS1115 appears to dominate. If you choose different clock speeds, then the speeds have to be out of phase… and never match on moment to UPD, I’m not sure the best way to get that…
One option is to use prime numbers, but I’m not sure if they could overlap ever…
But, what happens if you have a lot of i2c devices? Then, you need a new node that XOD doesn’t have in the the CORE, the Select-Pulse Node (but doesn’t work for this)
But, that node method doesn’t work! Likely has something to do with the time to write and read-back from the I2C bus… I’m not sure, but not all methods work…
Now, if all the I2C devices want to be read as fast as possible, then you can make a daisy chain, but have to add the DONE pulse node out of the MCP4725, and place a defer. Using BUS instead of wires, naming convention can be “DEV#-out”, and the last I2C DEVICE wired back to the start.