Updating OTA is amazing

any chance you could post your code that works as an example?

Here you go. Lots of neopixel stuff to dig through, but enjoy.

#include <ESP8266mDNS.h>
#include <WiFiUdp.h>
#include <ArduinoOTA.h>
#define BLYNK_PRINT Serial
#include <SPI.h>
#include <ESP8266WiFi.h>
#include <Adafruit_NeoPixel.h>
#include <BlynkSimpleEsp8266.h>
 
/****************************** neopixels ******************************************/
#define NUM_PIXELS 16
 
/************************* WiFi Access Point *********************************/
 

 
Adafruit_NeoPixel pixels(NUM_PIXELS, 2, NEO_GRB | NEO_KHZ800);
 uint32_t Pixel1 = pixels.Color(20, 20, 0); //amber
  uint32_t Pixel2 = pixels.Color(255, 255, 0); //amber
  uint32_t Pixel3 = pixels.Color(20, 20, 0); //amber
  uint32_t Pixel4 = pixels.Color(5, 5, 20); //light blue
  uint32_t Pixel5 = pixels.Color(80, 80, 255); //light blue
  uint32_t Pixel6 = pixels.Color(5, 5, 20); //light blue
  uint32_t Pixel7 = pixels.Color(0, 0, 20); //blue
  uint32_t Pixel8 = pixels.Color(0, 0, 255); //blue
  uint32_t Pixel9 = pixels.Color(0, 0, 20); //blue
  uint32_t Pixel10 = pixels.Color(20, 0, 0); //red
  uint32_t Pixel11 = pixels.Color(255, 0, 0); //red
  uint32_t Pixel12 = pixels.Color(20, 0, 0); //red
  uint32_t Pixel13 = pixels.Color(0, 20, 0); //green
  uint32_t Pixel14 = pixels.Color(0, 255, 0); //green
  uint32_t Pixel15 = pixels.Color(0, 20, 0); //green
  uint32_t OUT = pixels.Color(0, 0, 0); //Pixel out


// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = "**********************";

// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "SPARKS";
char pass[] = "*************";
int current = 0;


void setup() {
 Blynk.begin(auth, ssid, pass, IPAddress(192,168,0,155));
  //Blynk.begin(auth, ssid, pass);
  pixels.begin();
  Serial.begin(115200);
ArduinoOTA.begin();

}
BLYNK_WRITE(V1)
{current = param.asInt(); // assigning incoming value from pin V1 to a variable
Serial.print("V1 value is: ");
Serial.println(current);
switch (current){
case 1: 
            pixels.setPixelColor(0, Pixel1);
            pixels.setPixelColor(1, Pixel2);
            pixels.setPixelColor(2, Pixel3); 
            pixels.show();
            delay(50);
            pixels.setPixelColor(0, 0);
            pixels.setPixelColor(1, 0);
            pixels.setPixelColor(2, 0); 
            pixels.show();
            delay(50);
            pixels.setPixelColor(0, Pixel1);
            pixels.setPixelColor(1, Pixel2);
            pixels.setPixelColor(2, Pixel3); 
            pixels.show();
break;

case 2: 
            pixels.setPixelColor(3, Pixel4);
            pixels.setPixelColor(4, Pixel5);
            pixels.setPixelColor(5, Pixel6); 
            pixels.show();
            delay(50);
            pixels.setPixelColor(3, 0);
            pixels.setPixelColor(4, 0);
            pixels.setPixelColor(5, 0); 
            pixels.show();
            delay(50);
            pixels.setPixelColor(3, Pixel4);
            pixels.setPixelColor(4, Pixel5);
            pixels.setPixelColor(5, Pixel6); 
            pixels.show();
break;

case 3: 
            pixels.setPixelColor(6, Pixel7);
            pixels.setPixelColor(7, Pixel8);
            pixels.setPixelColor(8, Pixel9); 
            pixels.show();
            delay(50);
            pixels.setPixelColor(6, 0);
            pixels.setPixelColor(7, 0);
            pixels.setPixelColor(8, 0); 
            pixels.show();
            delay(50);
            pixels.setPixelColor(6, Pixel7);
            pixels.setPixelColor(7, Pixel8);
            pixels.setPixelColor(8, Pixel9); 
            pixels.show();
break;

case 4: 
            pixels.setPixelColor(9, Pixel10);
            pixels.setPixelColor(10, Pixel11);
            pixels.setPixelColor(11, Pixel12); 
            pixels.show();
            delay(50);
            pixels.setPixelColor(9, 0);
            pixels.setPixelColor(10, 0);
            pixels.setPixelColor(11, 0); 
            pixels.show();
            delay(50);
            pixels.setPixelColor(9, Pixel10);
            pixels.setPixelColor(10, Pixel11);
            pixels.setPixelColor(11, Pixel12); 
            pixels.show();
break;

case 5: 
            pixels.setPixelColor(12, Pixel13);
            pixels.setPixelColor(13, Pixel14);
            pixels.setPixelColor(14, Pixel15); 
            pixels.show();
            delay(50);
            pixels.setPixelColor(12, 0);
            pixels.setPixelColor(13, 0);
            pixels.setPixelColor(14, 0); 
            pixels.show();
            delay(50);
            pixels.setPixelColor(12, Pixel13);
            pixels.setPixelColor(13, Pixel14);
            pixels.setPixelColor(14, Pixel15); 
            pixels.show();
break;

case 6: 
            colorWipe(pixels.Color(0, 0, 0), 500); // Black/off
            pixels.show();
            for(int j=100; j>1; j--) {
   
   pixels.setPixelColor(0, Pixel1);
   pixels.setPixelColor(1, Pixel2);
   pixels.setPixelColor(2, Pixel3);
   pixels.show();
   delay(j);
   pixels.setPixelColor(0, 0);
   pixels.setPixelColor(1, 0);
   pixels.setPixelColor(2, 0);
   pixels.setPixelColor(3, Pixel4);
   pixels.setPixelColor(4, Pixel5);
   pixels.setPixelColor(5, Pixel6);
   pixels.show();
   delay(j);
   pixels.setPixelColor(3, 0);
   pixels.setPixelColor(4, 0);
   pixels.setPixelColor(5, 0);
   pixels.setPixelColor(6, Pixel7);
   pixels.setPixelColor(7, Pixel8);
   pixels.setPixelColor(8, Pixel9);
   pixels.show();
   delay(j);
   pixels.setPixelColor(6, 0);
   pixels.setPixelColor(7, 0);
   pixels.setPixelColor(8, 0);
   pixels.setPixelColor(9, Pixel10);
   pixels.setPixelColor(10, Pixel11);
   pixels.setPixelColor(11, Pixel12);
   pixels.show();
   delay(j);
   pixels.setPixelColor(9, 0);
   pixels.setPixelColor(10, 0);
   pixels.setPixelColor(11, 0);
   pixels.setPixelColor(12, Pixel13);
   pixels.setPixelColor(13, Pixel14);
   pixels.setPixelColor(14, Pixel15);
   pixels.show();
   delay(j);
   pixels.setPixelColor(12, 0);
   pixels.setPixelColor(13, 0);
   pixels.setPixelColor(14, 0);
   pixels.show();
   delay(j);
   pixels.show();
   
   }
break;

case 7:
pixels.setPixelColor(1,255,255,255);
pixels.show();
delay(50);
pixels.setPixelColor(0,0);
pixels.setPixelColor(1,0);
pixels.setPixelColor(2,0);
pixels.setPixelColor(3,0);
pixels.setPixelColor(4,0);
pixels.setPixelColor(5,0);
pixels.setPixelColor(6,0);
pixels.setPixelColor(7,0);
pixels.setPixelColor(8,0);
pixels.setPixelColor(9,0);
pixels.setPixelColor(10,0);
pixels.setPixelColor(11,0);
pixels.setPixelColor(12,0);
pixels.setPixelColor(13,0);
pixels.setPixelColor(14,0);
pixels.setPixelColor(15,0);
pixels.show();
break;



  
  }}

  void loop() {
  Blynk.run();
  ArduinoOTA.handle();
    

}








void colorWipe(uint32_t c, uint8_t wait) {
  for(uint16_t i=0; i<pixels.numPixels(); i++) {
    pixels.setPixelColor(i, c);
    pixels.show();
    delay(wait);
  }}

It could be these two libraries?

#include <ESP8266mDNS.h>
#include <WiFiUdp.h>

Including these makes no differenceā€¦

Are you doing anything hardware related? like anything attached to GPIO0 to do with WTD reset?

Looking like this issue: https://github.com/esp8266/Arduino/issues/1017

nope. I donā€™t have to touch a thing on the board to make it work. I donā€™t have to go into bootloader mode or anything., The only thing attached to it is the neopixels. If you upload my code does it work? It takes about a minute after I upload OTA for the board to reset and start working.

1 Like

Mine is being a pain then because after it uploads OTA and gets to ā€œ100%ā€¦ Endā€ā€¦ it then shows the wtd errors.

It sucks too because im not at home to physically cycle the power to see if it is just a reboot problem

And youā€™re sure you have the right board chosen in arduino with all the various options correct?

Yup its the same/only board and settings I have ever used.

I donā€™t know. Iā€™ve updated my sketch about 20 times without a problem. Did you roll back to the correct python?

Yup running correct Python.
I actually am starting to think its my boardā€¦ I really need to get home and cycle the power and maybe set up a proper hardware reset so that if it crashes it actually resets itself.

Interested in hearing how you get on with this ā€¦

Which version of IDE are you running? Im using 1.6.9ā€¦ but wondering if I should update to 1.6.10

Iā€™m using arduino 1.6.9

Okay I updated ot 1.6.10 and no joy. ā€¦

I think the issue is ESP.restart();ā€¦ it looks like whenever this command is run, it crashes the hardware and then requires a power cycle to work.

So after it uploads OTAā€¦ it then runs ESP.restart(); and crashes.

Okay IDE 1.6.10 doesnt even show Network Com ports availableā€¦

Gonna have to roll back.

What firmware are you both running?

Im runing NodeNCU 0.9.6-dev_20150627 on all my esp8266-12ā€™s

Iā€™ve never checked? How would I check?

Use: AT+GMR

20 characters

I didnt think AT commands worked after flashing with ArduinoIDE?

In that case i donā€™t know how to checkā€¦