DeviceOS 3.2.0 crashing during OTA from 3.1.0

could it be that the firmware is taking a long time(or blocking/crapped out) before running the setup() function?
This can happen if a constructor of a class that is called before setup() takes long time to finish.

While troubleshooting my issue, I got a lot of solid white and even blinking white too.
I could not pinpoint the reason for the blinking white yet.

But I can tell you how to “artificially create” a solid white.

imagine there is MyClass declared before setup():

MyClass _myClass;

setup()
{
  blahblah;
}
loop()
{
  blahblah2;
}

Now, make the constructor of MyClass take a loooong time:

MyClass::MyClass()
{
  int i = 1;
  while (i <= 100000000000) {
    ++i;
  }
}

and there you will get a solid white situation. Seems to me is like the “pre-boot” phase of DeviceOS.

For some esoteric reason, the delay() function does not work here. It seems ignored.

Back to your code, could it be that something blocking was added? something that takes a long time? something that under some situations can stop the code from going further?

Do you have the System.disableUpdates() called before setup() gets called (example: in a constructor of a class that gets instantiated before loop() )?

Cheers

1 Like