After searching for a while and only finding a 4 paragraph explanation on how to use OTA updates, I tried to do an OTA update on multiple devices and none of them have worked.
I have a few questions I’d like help answering.
- How does the device receive the update? (I read a post from ~2 years ago that said it was sent via SMS?)
- Does the device need to be powered on for the OTA update? i.e. My application puts the Dash into Deep Sleep and only wakes up once every 5 minutes for about 15 seconds to get readings from sensors.
- Is there a certain signal strength needed for the Dash to receive the update?
- Do OTA updates incur data charges?
- Is there a way to track OTA update history via the Dashboard?
- What version of the firmware is best for OTA updates? (Some are running 0.9.14 and others on 0.10.3)
- When the reset button is pressed, does the Dash disconnect from the Cloud?
Here is what I have tried so far:
My original code was using a VL53L0X sensor from Adafruit. This device would come on and detect if there was something in front of it and transmitting that to the cloud. After updating the code, I wanted to try an OTA update. I followed the instructions for doing the OTA update and got this message from the Arduino IDE console:
Pushing firmware to device ID #(my 6 digit device ID)
Uploading
Firmware ID #(my 4 digit firmware ID) created
Executing push to device
OTA update sent
Update Complete
This is the same message I get every time I try and push an update via OTA. My most recent effort to reduce the number of variables is by opening and activating a new Dash and loading the most basic program on it.
void setup() {
HologramCloud.setRGB(0xFFC0CB); // Pink
HologramCloud.connect();
}
void loop() {
if (HologramCloud.isConnected()) { HologramCloud.setRGB(0xFF0000); } // Red
// if (HologramCloud.isConnected()) { HologramCloud.setRGB(0x00FF00); } // Green
// if (HologramCloud.isConnected()) { HologramCloud.setRGB(0x0000FF); } // Blue
}
I am simply loading this code onto a Dash with an if statement uncommented in the loop. When I do an upload via USB, then the code works. The RGB LED is pink until it connects after which it is Red in this case. After I ensure that the code is working, I comment out the line and uncomment another color. This time, I push the update OTA. It gives me the same message in the Arduino IDE console.
I have noticed that (sometimes not always) when I still have the Dash plugged in via USB that it will make the disconnecting sound in Windows and then the reconnecting sound even though I have not unplugged it. There is no change in the color of the LED even after this. I assume this means that some sort of update has reached the device and was reset.
I have also tried removing the USB cable from the Dash allowing it to be powered off completely. Then I insert a battery and allow it to boot. When it boots, there has not been any change. (OTA update did not work).
I have also tried loading the dash_repl_basic example on the device to make sure that everything was kosher on the Dash. It connected to the cloud, it could read information about the battery, it could send messages to the cloud, etc. I have also tried giving the Dash an SMS number in hopes that the post from 2 years ago was correct about sending update notifications to the device via SMS. That did not work either.
Any help or further guidance would be great. @ChrisGammell