I have a due, and several I2C shields.
I use them on I2C bus one and on I2C bus 2
When i power on my arduino without the serial monitor the system boots and won't find my shields
not always 99 out of 100 he don't find them.
it are only the I2C devices on I2Cbus 2. (Wire1.)
When i connect it to my laptop and open serial monitor. the due restarts and always find them.
when i disconnect it again it keeps find them until a certain point in time. then he won't find them at all.
only a boot with serial monitor open will fix this.
so what is different
The difference is that the shields are already powered when the DUE is reset by the serial monitor. You may have a shield that doesn’t come up before the DUE when you power them both simultaneously.
Test: Can you power up (without serial monitor) and then press the ‘reset’ button on the DUE? Does that do the same thing as the method you already know works?
If that test is successful then you need to work out why your shields are slow and maybe add some delays in your setup() function to allow them time to come up.
I did the tests. and yes a reset work.
but my setup will take about 40 seconds.
I moved the check sensor script to the end of the setup and still not working without a reset.
If i move the check sensors to the beginning of the setup right after the serial.begin and wire1.begin. and putt in the power and open the serial monitor immediately it works fine.
so the 40 seconds delay wont help.