FastLed.show() causing issues

Hello

I am using NodeMCU with WS2812B output via D5 with FastLED library.

The prog is a simple NTP clock and the code works fine.

The issue pertains when I call FastLED.show();. In the sketch the LED[0] blinks every time I call FastLED.show(); when i call the blinking routine for leds[56] and leds[57] this happens.

Tried routing the blinker leds ( seconds display blinking ) via another port ( D6 for instance ) but the problem persists.

Any help will be appreciated. Stay well and keep safe.

Regards
Vijay

I'd say your issue is right there in the code, in code tags, you failed to post.

So the games goes like this.

You present a problem. We ask questions. The more you present to us up front the less questions we ask and the quicker to a solution we get. If we find we are asking too many questions, we give up.

It's just best to spill the beans. Post code. Post images of your project. Post error messages. Post other what-not that you think we may need to help you solve your issue. Help us help you.

Without seeing your code and a schematic, it will be difficult to advise.

WS2812B are 5V devices; your NodeMCU is a 3.3V device. You might need a level shifter (e.g. two ports of a 74HC14 in series).

Preferably a 74HCT14.

Which Arduino IDE Version are you using?
Which ESP8266 Core are you using?

Make a small sketch which shows your problem and post it in code tags to the forum.

This could very well be the issue if it's always the first LED in a string because each LED buffers the data to the next WS28xx chip. I drive my WS28xx strips with a Wemos D1 Mini and have few problems most of the time.

If you don't have a buffer in the data line from the ESP, you could always put a sacrificial WS28XX LED close to the ESP GPIO pin. The downside is that your display LEDS start with LED[1] instead of [0].

Hello
Sorry for this delayed response for your helpful comments.
@Idahowalker : I understand what you mean and thought the experts there would quite understand what I had posted as a query.
I am using 1.8.16 IDE as well the Beta version and tried compiling with both and had the same issue.
@SteveMann: I was happy to hear that I was not the only one facing the issue and quite agree to " sacrificing led[0] :slight_smile:

However, I have 2 strips from different manufacturers. One a black strip and the other a white. My errors were cropping up while using the black strip while the white strip worked flawlessly. I presume it has it has something to do with the chipset imbedded within the LED's from different manufacturers. Hope I am right about that !

I have also uploaded a short Video @ : New Clock - YouTube

Thank you all your help.

Regards
Vijay


My Code -

// Prog Date : 4 Nov 2021
// Changes Color every minute
// Change to Show 12 hrs format
//If Wifi Disconnects inside loop show WiFi red-white blink
// Added DTH 22 - Temperature / Humidty module
// Displaying of Temperature/Humdity incorporated
#define FASTLED_ESP8266_RAW_PIN_ORDER
#define FASTLED_INTERRUPT_RETRY_COUNT 0
#include<ESP8266WiFi.h>
#include <FastLED.h>
#include <NTPClient.h>
#include <WiFiUdp.h>
#include <DHT.h>
#define LED_TYPE WS2812
#define COLOR_ORDER GRB
#define PIN D5
#define NUM_LEDS 88
#define DHTPIN D6
//#define DHTTYPE DHT11   // DHT 11
#define DHTTYPE DHT22   // DHT 22  (AM2302), AM2321
//#define DHTTYPE DHT21   // DHT 21 (AM2301)
DHT dht(DHTPIN, DHTTYPE);
float Td; // Dew Point
int h1; int t1; int Td1;
CRGB leds[NUM_LEDS];

int speedx = 10;
int brightness = 45;
int colors;
bool blinker; int colorval = 160; int briteval = 45;
int i; int j; int zulu; int l = 0; int ledcount; int numbers = 0;
int nos = 0; int hourt; int hrt; int hru; int mit; int miu;
int favcol = colorval;  int favbri = briteval;
const char *ssid     = "Vijay Kumar";
const char *password = "korgn$567$";
String datex, yearx, monthx, hourx, minsx, secox, dotw, dotw1;
int datex1, yearx1, monthx1, hourx1, minsx1, secox1, dotw1x;

//For UTC -5.00 : -5 * 60 * 60 : -18000
//For UTC +1.00 : 1 * 60 * 60 : 3600
//For UTC +0.00 : 0 * 60 * 60 : 0
// For UTC +5.30 : 5.5 * 60 *60 :19800 -- INDIA (+5.5hrs NOT 5hrs & 30mins)

const long utcOffsetInSeconds = 19800;
char daysOfTheWeek[7][12] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
// Define NTP Client to get time
WiFiUDP ntpUDP;
NTPClient timeClient(ntpUDP, "pool.ntp.org", utcOffsetInSeconds);

void setup() {
  dht.begin();
  FastLED.addLeds<WS2812, PIN, GRB>(leds, NUM_LEDS);
  Serial.begin(115200);
  WiFi.begin(ssid, password);
  while ( WiFi.status() != WL_CONNECTED ) {
    leds[43] = CHSV(0, 255, 45);
    FastLED.show();
    delay (250);
    leds[43] = CHSV(0, 1, 45);
    FastLED.show();
    delay(250);
    // Serial.print ( "." );
  }
  leds[43] = CHSV(0, 0, 0);
  FastLED.show();
  timeClient.begin();
}
void loop() {
  while ( WiFi.status() != WL_CONNECTED ) {
    leds[43] = CHSV(0, 255, 45);
    FastLED.show();
    delay (250);
    leds[43] = CHSV(0, 1, 45);
    FastLED.show();
    delay(250);
    // Serial.print ( "." );
  }
  /*
    if (WiFi.status() == WL_CONNECTED) {
       Serial.println( "Connected ..");
      }
  */
  timeClient.update();
/*
  Serial.println(daysOfTheWeek[timeClient.getDay()]);
   Serial.print(", ");
   Serial.print(timeClient.getHours());
   Serial.print(":");
   Serial.println(timeClient.getMinutes());
   Serial.print(":");
   Serial.println(timeClient.getSeconds());
   Serial.println(timeClient.getFormattedDate());
   
*/
  datex = (timeClient.getFormattedDate()).substring(8, 10);
  monthx = (timeClient.getFormattedDate()).substring(5, 7);
  yearx = (timeClient.getFormattedDate()).substring(2, 4);

  hourx = (timeClient.getHours());
  minsx = (timeClient.getMinutes());
  secox = (timeClient.getSeconds());

  dotw = (daysOfTheWeek[timeClient.getDay()]);

  hourx1 = hourx.toInt(); minsx1 = minsx.toInt(); secox1 = secox.toInt();
  if ( hourx1 > 12) {
    hourx1 = hourx1 - 12;
  }
  if (hourx1 == 0) {
    hourx1 = 12;
  }

  dotw1 = dotw.substring(0, 3);

  if (dotw == "Monday") {
    dotw1x = 1;
  }
  if (dotw == "Tuesday") {
    dotw1x = 2;
  }
  if (dotw == "Wednesday") {
    dotw1x = 3;
  }
  if (dotw == "Thursday") {
    dotw1x = 4;
  }
  if (dotw == "Friday") {
    dotw1x = 5;
  }
  if (dotw == "Saturday") {
    dotw1x = 6;
  }
  if (dotw == "Sunday") {
    dotw1x = 7;
  }
  //Serial.println(dotw1);
  //Serial.println(dotw);
  //Serial.println(dotw1x);
  datex1 = datex.toInt(); monthx1 = monthx.toInt(); yearx1 = yearx.toInt();

  hrt = hourx1 / 10; // hour tens digit
  hru = hourx1 % 10; // hour unit digit
  mit = minsx1 / 10; // Mins tens digit
  miu = minsx1 % 10; // Mins unit digit
  /*
    Serial.print(datex1); Serial.print("/"); Serial.print(monthx1); Serial.print("/"); Serial.println(yearx1);
    Serial.print(hourx1); Serial.print(":"); Serial.print(minsx1); Serial.print(":"); Serial.println(secox1);
    Serial.println(dotw1);
  */
  // delay(1000);
  //if (secox1 == 0) {
    cleanup();
    colorval = random(255);
    doClockDisplay();
  //}
  if (secox1 == 50) {
    cleanup();
    doday();

    hrt = int(datex1 / 10);
    hru = int(datex1 % 10);
    mit = int(monthx1 / 10);
    miu = int(monthx1 % 10);
    cleanup();
    DateDisplay();

    tempread();
    displaytemp();

    //cleanup();


  }
  doblinks();
}
//***************************************************************************
void doClockDisplay() {

  for (zulu = 1; zulu < 5; zulu += 1) {
    if (zulu == 1) {
      hourt = hrt;
      ledcount = 0;
    }
    if (zulu == 2) {
      hourt = hru;
      ledcount = ledcount + 22;
    }

    if (zulu == 3) {
      hourt = mit;
      ledcount = ledcount + 22;
    }
    if (zulu == 4) {
      hourt = miu;
      ledcount = ledcount + 22;
    }

    switch (hourt) {
      case 0:
        // 0
        if (zulu > 1) {
          for (int i = 0 + ledcount; i < 18 + ledcount; i += 1) {
            leds[i] = CHSV( colorval, 255, briteval );
          }
          for (int i = 18 + ledcount; i < 21 + ledcount; i += 1) {
            leds[i] = CHSV(0, 0, 0);
          }
          //FastLED.show();
          break;
        }
        if (zulu == 1) {
          for (int i = 0 + ledcount; i < 21 + ledcount; i += 1) {
            leds[i] = CHSV(0, 0, 0);
          }
          //FastLED.show();
          break;
        }
      case 1:
        // 1
        for (int i = 3 + ledcount; i < 9 + ledcount; i += 1) {
          leds[i] = CHSV( colorval, 255, briteval);
        }
        for (int i = 0 + ledcount; i < 3 + ledcount; i += 1) {
          leds[i] = CHSV( 0, 0, 0);
        }
        for (int i = 9 + ledcount; i < 21 + ledcount; i += 1) {
          leds[i] = CHSV( 0, 0, 0);
        }
        //FastLED.show();
        break;
      case 2:
        // 2
        for (int i = 0 + ledcount; i < 6 + ledcount; i += 1) {
          leds[i] = CHSV( colorval, 255, briteval);
        }
        for (int i = 9 + ledcount; i < 15 + ledcount; i += 1) {
          leds[i] = CHSV( colorval, 255, briteval);
        }
        for (int i = 18 + ledcount; i < 21 + ledcount; i += 1) {
          leds[i] = CHSV( colorval, 255, briteval);
        }
        for (int i = 15 + ledcount; i < 18 + ledcount; i += 1) {
          leds[i] = CHSV( 0, 0, 0);
        }
        for (int i = 6 + ledcount; i < 9 + ledcount; i += 1) {
          leds[i] = CHSV( 0, 0, 0);
        }
        //FastLED.show();
        break;
      case 3:
        // 3
        for (int i = 0 + ledcount; i < 12 + ledcount; i += 1) {
          leds[i] = CHSV( colorval, 255, briteval);
        }
        for (int i = 18 + ledcount; i < 21 + ledcount; i += 1) {
          leds[i] = CHSV( colorval, 255, briteval);
        }
        for (int i = 12 + ledcount; i < 18 + ledcount; i += 1) {
          leds[i] = CHSV( 0, 0, 0);
        }
       // FastLED.show();
        break;
      case 4:
        // 4
        for (int i = 3 + ledcount; i < 9 + ledcount; i += 1) {
          leds[i] = CHSV( colorval, 255, briteval);
        }
        for (int i = 15 + ledcount; i < 21 + ledcount; i += 1) {
          leds[i] = CHSV( colorval, 255, briteval);
        }
        for (int i = 0 + ledcount; i < 3 + ledcount; i += 1) {
          leds[i] = CHSV( 0, 0, 0);
        }
        for (int i = 9 + ledcount; i < 15 + ledcount; i += 1) {
          leds[i] = CHSV( 0, 0, 0);
        }
       // FastLED.show();
        break;
      case 5:
        // 5
        for (int i = 0 + ledcount; i < 3 + ledcount; i += 1) {
          leds[i] = CHSV( colorval, 255, briteval);
        }
        for (int i = 6 + ledcount; i < 12 + ledcount; i += 1) {
          leds[i] = CHSV( colorval, 255, briteval);
        }
        for (int i = 15 + ledcount; i < 21 + ledcount; i += 1) {
          leds[i] = CHSV( colorval, 255, briteval);
        }
        for (int i = 3 + ledcount; i < 6 + ledcount; i += 1) {
          leds[i] = CHSV( 0, 0, 0);
        }
        for (int i = 12 + ledcount; i < 15 + ledcount; i += 1) {
          leds[i] = CHSV( 0, 0, 0);
        }
       // FastLED.show();
        break;
      case 6:
        // 6
        for (int i = 0 + ledcount; i < 3 + ledcount; i += 1) {
          leds[i] = CHSV( colorval, 255, briteval);
        }
        for (int i = 6 + ledcount; i < 21 + ledcount; i += 1) {
          leds[i] = CHSV( colorval, 255, briteval);
        }
        for (int i = 3 + ledcount; i < 6 + ledcount; i += 1) {
          leds[i] = CHSV( 0, 0, 0);
        }
       // FastLED.show();
        break;
      case 7:
        // 7
        for (int i = 0 + ledcount; i < 9 + ledcount; i += 1) {
          leds[i] = CHSV( colorval, 255, briteval);
        }
        for (int i = 9 + ledcount; i < 21 + ledcount; i += 1) {
          leds[i] = CHSV( 0, 0, 0);
        }
       // FastLED.show();
        break;
      case 8:
        // 8
        for (int i = 0 + ledcount; i < 21 + ledcount; i += 1) {
          leds[i] = CHSV( colorval, 255, briteval);
        }
       // FastLED.show();
        break;
      case 9:
        // 9
        for (int i = 0 + ledcount; i < 12 + ledcount; i += 1) {
          leds[i] = CHSV( colorval, 255, briteval);
        }
        for (int i = 15 + ledcount; i < 21 + ledcount; i += 1) {
          leds[i] = CHSV( colorval, 255, briteval);
        }
        for (int i = 12 + ledcount; i < 15 + ledcount; i += 1) {
          leds[i] = CHSV( 0, 0, 0);
        }
        //FastLED.show();
        break;
        FastLED.show();
    }
  }
}
//**********************************************************************
void cleanup() {
  for (int r = 0; r <= 88; r += 1) {
    leds[r] = CHSV(0, 0, 0);
  }
  FastLED.show();
}
//**************************************************************************
void DateDisplay() {
  for (zulu = 1; zulu < 5; zulu += 1) {
    if (zulu == 1) {
      hourt = hrt;
      ledcount = 0;
    }
    if (zulu == 2) {
      hourt = hru;
      ledcount = ledcount + 22;
    }

    if (zulu == 3) {
      hourt = mit;
      ledcount = ledcount + 22;
    }
    if (zulu == 4) {
      hourt = miu;
      ledcount = ledcount + 22;
    }
    leds[43] = CHSV(colorval, 255, briteval); // Decimal Point
   // FastLED.show();
    switch (hourt) {
      case 0:
        // 0
        if (zulu > 1) {
          for (int i = 0 + ledcount; i < 18 + ledcount; i += 1) {
            leds[i] = CHSV( colorval, 255, briteval );
          }
          for (int i = 18 + ledcount; i < 21 + ledcount; i += 1) {
            leds[i] = CHSV(0, 0, 0);
          }
//          FastLED.show();
          break;
        }
        if (zulu == 1) {
          for (int i = 0 + ledcount; i < 21 + ledcount; i += 1) {
            leds[i] = CHSV(0, 0, 0);
          }
//          FastLED.show();
          break;
        }
      case 1:
        // 1
        for (int i = 3 + ledcount; i < 9 + ledcount; i += 1) {
          leds[i] = CHSV( colorval, 255, briteval);
        }
        for (int i = 0 + ledcount; i < 3 + ledcount; i += 1) {
          leds[i] = CHSV( 0, 0, 0);
        }
        for (int i = 9 + ledcount; i < 21 + ledcount; i += 1) {
          leds[i] = CHSV( 0, 0, 0);
        }
//        FastLED.show();
        break;
      case 2:
        // 2
        for (int i = 0 + ledcount; i < 6 + ledcount; i += 1) {
          leds[i] = CHSV( colorval, 255, briteval);
        }
        for (int i = 9 + ledcount; i < 15 + ledcount; i += 1) {
          leds[i] = CHSV( colorval, 255, briteval);
        }
        for (int i = 18 + ledcount; i < 21 + ledcount; i += 1) {
          leds[i] = CHSV( colorval, 255, briteval);
        }
        for (int i = 15 + ledcount; i < 18 + ledcount; i += 1) {
          leds[i] = CHSV( 0, 0, 0);
        }
        for (int i = 6 + ledcount; i < 9 + ledcount; i += 1) {
          leds[i] = CHSV( 0, 0, 0);
        }
//        FastLED.show();
        break;
      case 3:
        // 3
        for (int i = 0 + ledcount; i < 12 + ledcount; i += 1) {
          leds[i] = CHSV( colorval, 255, briteval);
        }
        for (int i = 18 + ledcount; i < 21 + ledcount; i += 1) {
          leds[i] = CHSV( colorval, 255, briteval);
        }
        for (int i = 12 + ledcount; i < 18 + ledcount; i += 1) {
          leds[i] = CHSV( 0, 0, 0);
        }
//        FastLED.show();
        break;
      case 4:
        // 4
        for (int i = 3 + ledcount; i < 9 + ledcount; i += 1) {
          leds[i] = CHSV( colorval, 255, briteval);
        }
        for (int i = 15 + ledcount; i < 21 + ledcount; i += 1) {
          leds[i] = CHSV( colorval, 255, briteval);
        }
        for (int i = 0 + ledcount; i < 3 + ledcount; i += 1) {
          leds[i] = CHSV( 0, 0, 0);
        }
        for (int i = 9 + ledcount; i < 15 + ledcount; i += 1) {
          leds[i] = CHSV( 0, 0, 0);
        }
 //       FastLED.show();
        break;
      case 5:
        // 5
        for (int i = 0 + ledcount; i < 3 + ledcount; i += 1) {
          leds[i] = CHSV( colorval, 255, briteval);
        }
        for (int i = 6 + ledcount; i < 12 + ledcount; i += 1) {
          leds[i] = CHSV( colorval, 255, briteval);
        }
        for (int i = 15 + ledcount; i < 21 + ledcount; i += 1) {
          leds[i] = CHSV( colorval, 255, briteval);
        }
        for (int i = 3 + ledcount; i < 6 + ledcount; i += 1) {
          leds[i] = CHSV( 0, 0, 0);
        }
        for (int i = 12 + ledcount; i < 15 + ledcount; i += 1) {
          leds[i] = CHSV( 0, 0, 0);
        }
 //       FastLED.show();
        break;
      case 6:
        // 6
        for (int i = 0 + ledcount; i < 3 + ledcount; i += 1) {
          leds[i] = CHSV( colorval, 255, briteval);
        }
        for (int i = 6 + ledcount; i < 21 + ledcount; i += 1) {
          leds[i] = CHSV( colorval, 255, briteval);
        }
        for (int i = 3 + ledcount; i < 6 + ledcount; i += 1) {
          leds[i] = CHSV( 0, 0, 0);
        }
//        FastLED.show();
        break;
      case 7:
        // 7
        for (int i = 0 + ledcount; i < 9 + ledcount; i += 1) {
          leds[i] = CHSV( colorval, 255, briteval);
        }
        for (int i = 9 + ledcount; i < 21 + ledcount; i += 1) {
          leds[i] = CHSV( 0, 0, 0);
        }
 //       FastLED.show();
        break;
      case 8:
        // 8
        for (int i = 0 + ledcount; i < 21 + ledcount; i += 1) {
          leds[i] = CHSV( colorval, 255, briteval);
        }
  //      FastLED.show();
        break;
      case 9:
        // 9
        for (int i = 0 + ledcount; i < 12 + ledcount; i += 1) {
          leds[i] = CHSV( colorval, 255, briteval);
        }
        for (int i = 15 + ledcount; i < 21 + ledcount; i += 1) {
          leds[i] = CHSV( colorval, 255, briteval);
        }
        for (int i = 12 + ledcount; i < 15 + ledcount; i += 1) {
          leds[i] = CHSV( 0, 0, 0);
        }
 //       FastLED.show();
        break;
    }
  }
  FastLED.show();
  delay(2000);
}
//*******************************************************************************
// DAY DISPLAY
void doday() {
  
  switch (dotw1x) {
    case 1: //Monday
      for (int i = 0; i < 9; i += 1) {
        leds[i] = CHSV(colorval, 255, briteval);//M
      }
      for (int i = 12; i < 18; i += 1) {
        leds[i] = CHSV(colorval, 255, briteval);//M
      }
      for (int i = 28; i < 37; i += 1) {
        leds[i] = CHSV(colorval, 255, briteval);//o
      }
      for (int i = 40; i < 43; i += 1) {
        leds[i] = CHSV(colorval, 255, briteval); //o
      }
      for (int i = 50; i < 53; i += 1) {
        leds[i] = CHSV(colorval, 255, briteval);//n
      }
      for (int i = 56; i < 59; i += 1) {
        leds[i] = CHSV(colorval, 255, briteval);//n
      }
      for (int i = 62; i < 65; i += 1) {
        leds[i] = CHSV(colorval, 255, briteval);//n
      }
      FastLED.show();
      break;
    //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++mon end
    case 2: //Tuesday

      for (int i = 9; i < 21; i += 1) {
        leds[i] = CHSV(colorval, 255, briteval);//t
      }
      for (int i = 28; i < 37; i += 1) {
        leds[i] = CHSV(colorval, 255, briteval);//u
      }
      for (int i = 44; i < 47; i += 1) {
        leds[i] = CHSV(colorval, 255, briteval);// E
      }
      for (int i = 53; i < 65; i += 1) {
        leds[i] = CHSV(colorval, 255, briteval);// E
      }
      FastLED.show();
      break;
    //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++tue end
    case 3: //Wednesday

      for (int i = 3; i < 18; i += 1) {
        leds[i] = CHSV(colorval, 255, briteval);//W
      }
      for (int i = 22 ; i < 25 ; i += 1) {
        leds[i] = CHSV(colorval, 255, briteval);// E
      }
      for (int i = 31 ; i < 43 ; i += 1) {
        leds[i] = CHSV(colorval, 255, briteval);// E
      }

      for (int i = 47 ; i < 59 ; i += 1) {
        leds[i] = CHSV(colorval, 255, briteval);//big small d
      }
      for (int i = 62 ; i < 65 ; i += 1) {
        leds[i] = CHSV(colorval, 255, briteval);//big small d
      }
      FastLED.show();
      break;
    //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++wed end
    case 4: //Thursday

      for (int i = 9; i < 21; i += 1) {
        leds[i] = CHSV(colorval, 255, briteval);//t
      }
      for (int i = 28; i < 31; i += 1) {
        leds[i] = CHSV(colorval, 255, briteval);//h
      }
      for (int i = 34; i < 43; i += 1) {
        leds[i] = CHSV(colorval, 255, briteval);//h
      }
      for (int i = 50; i < 59; i += 1) {
        leds[i] = CHSV(colorval, 255, briteval);//u
      }
      FastLED.show();
      break;
    //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++thu end
    case 5: //Friday

      for (int i = 0; i < 3; i += 1) {
        leds[i] = CHSV(colorval, 255, briteval);//F
      }
      for (int i = 12; i < 21; i += 1) {
        leds[i] = CHSV(colorval, 255, briteval);//F
      }
      for (int i = 34; i < 37; i += 1) {
        leds[i] = CHSV(colorval, 255, briteval);//r
      }
      for (int i = 40; i < 43; i += 1) {
        leds[i] = CHSV(colorval, 255, briteval);//r
      }
      for (int i = 56 ; i < 59 ; i += 1) {
        leds[i] = CHSV(colorval, 255, briteval);//i
      }
      FastLED.show();
      break;
    //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++fri end
    case 6: //Saturday

      for (int i = 0; i < 3; i += 1) {
        leds[i] = CHSV( colorval, 255, briteval);//S
      }
      for (int i = 6; i < 12; i += 1) {
        leds[i] = CHSV( colorval, 255, briteval);//S
      }
      for (int i = 15; i < 21; i += 1) {
        leds[i] = CHSV( colorval, 255, briteval);//S
      }
      for (int i = 22; i < 31; i += 1) {
        leds[i] = CHSV( colorval, 255, briteval);//A
      }
      for (int i = 34; i < 43; i += 1) {
        leds[i] = CHSV( colorval, 255, briteval);//A
      }
      for (int i = 53; i < 65; i += 1) {
        leds[i] = CHSV(colorval, 255, briteval);//t
      }
      FastLED.show();
      break;
    //++++++++++++++++++++++++++++++++++++++++++++++++++++++++Sat end
    case 7: //Sunday

      for (int i = 0; i < 3; i += 1) {
        leds[i] = CHSV( colorval, 255, briteval);//S
      }
      for (int i = 6; i < 12; i += 1) {
        leds[i] = CHSV( colorval, 255, briteval);//S
      }
      for (int i = 15; i < 21; i += 1) {
        leds[i] = CHSV( colorval, 255, briteval);//S
      }
      for (int i = 28; i < 37; i += 1) {
        leds[i] = CHSV(colorval, 255, briteval);//u
      }
      for (int i = 50; i < 53; i += 1) {
        leds[i] = CHSV(colorval, 255, briteval);//n
      }
      for (int i = 56; i < 59; i += 1) {
        leds[i] = CHSV(colorval, 255, briteval);//n
      }
      for (int i = 62; i < 65; i += 1) {
        leds[i] = CHSV(colorval, 255, briteval);//n
      }
      FastLED.show();
      break;
  } // END switch day
  //colorval = favcol; briteval = favbri;
  delay(2000);
  //cleanup();
} // END doday
//********************************************************************************
void displaytemp() {
  cleanup();
  int t1t = t1 / 10;
  int t1u = t1 % 10;
  for (zulu = 1; zulu < 3; zulu++) {
    if (zulu == 1) {
      hourt = t1t;
      ledcount = 0;
    }
    if (zulu == 2) {
      hourt = t1u;
      ledcount = ledcount + 22;
    }

    switch (hourt) {
      case 0:
        // 0
        if (zulu > 1) {
          for (int i = 0 + ledcount; i < 18 + ledcount; i += 1) {
            leds[i] = CHSV( colorval, 255, briteval );
          }
          for (int i = 18 + ledcount; i < 21 + ledcount; i += 1) {
            leds[i] = CHSV(0, 0, 0);
          }
          FastLED.show();
          break;
        }
        if (zulu == 1) {
          for (int i = 0 + ledcount; i < 21 + ledcount; i += 1) {
            leds[i] = CHSV(0, 0, 0);
          }
          FastLED.show();
          break;
        }
      case 1:
        // 1
        for (int i = 3 + ledcount; i < 9 + ledcount; i += 1) {
          leds[i] = CHSV( colorval, 255, briteval);
        }
        for (int i = 0 + ledcount; i < 3 + ledcount; i += 1) {
          leds[i] = CHSV( 0, 0, 0);
        }
        for (int i = 9 + ledcount; i < 21 + ledcount; i += 1) {
          leds[i] = CHSV( 0, 0, 0);
        }
        FastLED.show();
        break;
      case 2:
        // 2
        for (int i = 0 + ledcount; i < 6 + ledcount; i += 1) {
          leds[i] = CHSV( colorval, 255, briteval);
        }
        for (int i = 9 + ledcount; i < 15 + ledcount; i += 1) {
          leds[i] = CHSV( colorval, 255, briteval);
        }
        for (int i = 18 + ledcount; i < 21 + ledcount; i += 1) {
          leds[i] = CHSV( colorval, 255, briteval);
        }
        for (int i = 15 + ledcount; i < 18 + ledcount; i += 1) {
          leds[i] = CHSV( 0, 0, 0);
        }
        for (int i = 6 + ledcount; i < 9 + ledcount; i += 1) {
          leds[i] = CHSV( 0, 0, 0);
        }
        FastLED.show();
        break;
      case 3:
        // 3
        for (int i = 0 + ledcount; i < 12 + ledcount; i += 1) {
          leds[i] = CHSV( colorval, 255, briteval);
        }
        for (int i = 18 + ledcount; i < 21 + ledcount; i += 1) {
          leds[i] = CHSV( colorval, 255, briteval);
        }
        for (int i = 12 + ledcount; i < 18 + ledcount; i += 1) {
          leds[i] = CHSV( 0, 0, 0);
        }
        FastLED.show();
        break;
      case 4:
        // 4
        for (int i = 3 + ledcount; i < 9 + ledcount; i += 1) {
          leds[i] = CHSV( colorval, 255, briteval);
        }
        for (int i = 15 + ledcount; i < 21 + ledcount; i += 1) {
          leds[i] = CHSV( colorval, 255, briteval);
        }
        for (int i = 0 + ledcount; i < 3 + ledcount; i += 1) {
          leds[i] = CHSV( 0, 0, 0);
        }
        for (int i = 9 + ledcount; i < 15 + ledcount; i += 1) {
          leds[i] = CHSV( 0, 0, 0);
        }
        FastLED.show();
        break;
      case 5:
        // 5
        for (int i = 0 + ledcount; i < 3 + ledcount; i += 1) {
          leds[i] = CHSV( colorval, 255, briteval);
        }
        for (int i = 6 + ledcount; i < 12 + ledcount; i += 1) {
          leds[i] = CHSV( colorval, 255, briteval);
        }
        for (int i = 15 + ledcount; i < 21 + ledcount; i += 1) {
          leds[i] = CHSV( colorval, 255, briteval);
        }
        for (int i = 3 + ledcount; i < 6 + ledcount; i += 1) {
          leds[i] = CHSV( 0, 0, 0);
        }
        for (int i = 12 + ledcount; i < 15 + ledcount; i += 1) {
          leds[i] = CHSV( 0, 0, 0);
        }
        FastLED.show();
        break;
      case 6:
        // 6
        for (int i = 0 + ledcount; i < 3 + ledcount; i += 1) {
          leds[i] = CHSV( colorval, 255, briteval);
        }
        for (int i = 6 + ledcount; i < 21 + ledcount; i += 1) {
          leds[i] = CHSV( colorval, 255, briteval);
        }
        for (int i = 3 + ledcount; i < 6 + ledcount; i += 1) {
          leds[i] = CHSV( 0, 0, 0);
        }
        FastLED.show();
        break;
      case 7:
        // 7
        for (int i = 0 + ledcount; i < 9 + ledcount; i += 1) {
          leds[i] = CHSV( colorval, 255, briteval);
        }
        for (int i = 9 + ledcount; i < 21 + ledcount; i += 1) {
          leds[i] = CHSV( 0, 0, 0);
        }
        FastLED.show();
        break;
      case 8:
        // 8
        for (int i = 0 + ledcount; i < 21 + ledcount; i += 1) {
          leds[i] = CHSV( colorval, 255, briteval);
        }
        FastLED.show();
        break;
      case 9:
        // 9
        for (int i = 0 + ledcount; i < 12 + ledcount; i += 1) {
          leds[i] = CHSV( colorval, 255, briteval);
        }
        for (int i = 15 + ledcount; i < 21 + ledcount; i += 1) {
          leds[i] = CHSV( colorval, 255, briteval);
        }
        for (int i = 12 + ledcount; i < 15 + ledcount; i += 1) {
          leds[i] = CHSV( 0, 0, 0);
        }
        FastLED.show();
        break;
    }
  }
  for (int i = 44; i < 50; i += 1) {
    leds[i] = CHSV(colorval, 255, briteval); // deg
  }
  for (int i = 59; i < 65; i += 1) {
    leds[i] = CHSV(colorval, 255, briteval); // deg
  }
  for (int i = 50; i < 57; i += 1) {
    leds[i] = CHSV(0, 0, 0); // deg
  }
  for (int i = 66; i < 69; i += 1) {
    leds[i] = CHSV(colorval, 255, briteval); // C
  }
  for (int i = 75; i < 84; i += 1) {
    leds[i] = CHSV(colorval, 255, briteval); // C
  }
  FastLED.show();
  delay(2000);
  //**********************************************************END TEMP DISPLAY
  cleanup();
  int h1t = h1 / 10;
  int h1u = h1 % 10;
  for (zulu = 1; zulu < 3; zulu++) {
    if (zulu == 1) {
      hourt = h1t;
      ledcount = 0;
    }
    if (zulu == 2) {
      hourt = h1u;
      ledcount = ledcount + 22;
    }

    switch (hourt) {
      case 0:
        // 0
        if (zulu > 1) {
          for (int i = 0 + ledcount; i < 18 + ledcount; i += 1) {
            leds[i] = CHSV( colorval, 255, briteval );
          }
          for (int i = 18 + ledcount; i < 21 + ledcount; i += 1) {
            leds[i] = CHSV(0, 0, 0);
          }
          FastLED.show();
          break;
        }
        if (zulu == 1) {
          for (int i = 0 + ledcount; i < 21 + ledcount; i += 1) {
            leds[i] = CHSV(0, 0, 0);
          }
          FastLED.show();
          break;
        }
      case 1:
        // 1
        for (int i = 3 + ledcount; i < 9 + ledcount; i += 1) {
          leds[i] = CHSV( colorval, 255, briteval);
        }
        for (int i = 0 + ledcount; i < 3 + ledcount; i += 1) {
          leds[i] = CHSV( 0, 0, 0);
        }
        for (int i = 9 + ledcount; i < 21 + ledcount; i += 1) {
          leds[i] = CHSV( 0, 0, 0);
        }
        FastLED.show();
        break;
      case 2:
        // 2
        for (int i = 0 + ledcount; i < 6 + ledcount; i += 1) {
          leds[i] = CHSV( colorval, 255, briteval);
        }
        for (int i = 9 + ledcount; i < 15 + ledcount; i += 1) {
          leds[i] = CHSV( colorval, 255, briteval);
        }
        for (int i = 18 + ledcount; i < 21 + ledcount; i += 1) {
          leds[i] = CHSV( colorval, 255, briteval);
        }
        for (int i = 15 + ledcount; i < 18 + ledcount; i += 1) {
          leds[i] = CHSV( 0, 0, 0);
        }
        for (int i = 6 + ledcount; i < 9 + ledcount; i += 1) {
          leds[i] = CHSV( 0, 0, 0);
        }
        FastLED.show();
        break;
      case 3:
        // 3
        for (int i = 0 + ledcount; i < 12 + ledcount; i += 1) {
          leds[i] = CHSV( colorval, 255, briteval);
        }
        for (int i = 18 + ledcount; i < 21 + ledcount; i += 1) {
          leds[i] = CHSV( colorval, 255, briteval);
        }
        for (int i = 12 + ledcount; i < 18 + ledcount; i += 1) {
          leds[i] = CHSV( 0, 0, 0);
        }
        FastLED.show();
        break;
      case 4:
        // 4
        for (int i = 3 + ledcount; i < 9 + ledcount; i += 1) {
          leds[i] = CHSV( colorval, 255, briteval);
        }
        for (int i = 15 + ledcount; i < 21 + ledcount; i += 1) {
          leds[i] = CHSV( colorval, 255, briteval);
        }
        for (int i = 0 + ledcount; i < 3 + ledcount; i += 1) {
          leds[i] = CHSV( 0, 0, 0);
        }
        for (int i = 9 + ledcount; i < 15 + ledcount; i += 1) {
          leds[i] = CHSV( 0, 0, 0);
        }
        FastLED.show();
        break;
      case 5:
        // 5
        for (int i = 0 + ledcount; i < 3 + ledcount; i += 1) {
          leds[i] = CHSV( colorval, 255, briteval);
        }
        for (int i = 6 + ledcount; i < 12 + ledcount; i += 1) {
          leds[i] = CHSV( colorval, 255, briteval);
        }
        for (int i = 15 + ledcount; i < 21 + ledcount; i += 1) {
          leds[i] = CHSV( colorval, 255, briteval);
        }
        for (int i = 3 + ledcount; i < 6 + ledcount; i += 1) {
          leds[i] = CHSV( 0, 0, 0);
        }
        for (int i = 12 + ledcount; i < 15 + ledcount; i += 1) {
          leds[i] = CHSV( 0, 0, 0);
        }
        FastLED.show();
        break;
      case 6:
        // 6
        for (int i = 0 + ledcount; i < 3 + ledcount; i += 1) {
          leds[i] = CHSV( colorval, 255, briteval);
        }
        for (int i = 6 + ledcount; i < 21 + ledcount; i += 1) {
          leds[i] = CHSV( colorval, 255, briteval);
        }
        for (int i = 3 + ledcount; i < 6 + ledcount; i += 1) {
          leds[i] = CHSV( 0, 0, 0);
        }
        FastLED.show();
        break;
      case 7:
        // 7
        for (int i = 0 + ledcount; i < 9 + ledcount; i += 1) {
          leds[i] = CHSV( colorval, 255, briteval);
        }
        for (int i = 9 + ledcount; i < 21 + ledcount; i += 1) {
          leds[i] = CHSV( 0, 0, 0);
        }
        FastLED.show();
        break;
      case 8:
        // 8
        for (int i = 0 + ledcount; i < 21 + ledcount; i += 1) {
          leds[i] = CHSV( colorval, 255, briteval);
        }
        FastLED.show();
        break;
      case 9:
        // 9
        for (int i = 0 + ledcount; i < 12 + ledcount; i += 1) {
          leds[i] = CHSV( colorval, 255, briteval);
        }
        for (int i = 15 + ledcount; i < 21 + ledcount; i += 1) {
          leds[i] = CHSV( colorval, 255, briteval);
        }
        for (int i = 12 + ledcount; i < 15 + ledcount; i += 1) {
          leds[i] = CHSV( 0, 0, 0);
        }
        FastLED.show();
        break;
    }
  }

  for (int i = 44; i < 65; i += 1) { // blank
    leds[i] = CHSV(0, 0, 0); // deg
  }
  for (int i = 69; i < 75; i += 1) {
    leds[i] = CHSV(colorval, 255, briteval); // h
  }
  for (int i = 78; i < 87; i += 1) {
    leds[i] = CHSV(colorval, 255, briteval); // h
  }
  for (int i = 66; i < 69; i += 1) {
    leds[i] = CHSV(0, 0, 0); // h
  }
  for (int i = 75; i < 78; i += 1) {
    leds[i] = CHSV(0, 0, 0); // h
  }
  FastLED.show();
  delay(2000);
  cleanup();

} // END Display Temp / Humidity
//*********************************************************************
void doblinks() {

    if (blinker == true) {
      leds[43] = CHSV( colorval, 255, briteval);
    } else {
      leds[43] = CHSV(0, 0, 0);
    }
    FastLED.show();
    blinker = !blinker;
    delay(500);


}
//****************************************************************
void tempread() {
  // Wait a few seconds between measurements.
  //delay(5000);
  // Reading temperature or humidity takes about 250 milliseconds!
  // Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor)

  float h = dht.readHumidity();

  // Read temperature as Celsius (the default)
  float t = dht.readTemperature();

  // Read temperature as Fahrenheit (isFahrenheit = true)
  // float f = dht.readTemperature(true);
  h1 = int(h); t1 = int(t); Td1 = int(Td);

  // Check if any reads failed and exit early (to try again).
  // if (isnan(h) || isnan(t) || isnan(f)) {
  //  Serial.println(F("Failed to read from DHT sensor!"));
  // return;
  // Compute heat index in Fahrenheit (the default)
  // float hif = dht.computeHeatIndex(f, h);
  // Compute heat index in Celsius (isFahreheit = false)
  //float hic = dht.computeHeatIndex(t, h, false);
 
  Td = t - ((100 - h) / 5);
/*
  Serial.print(F("Humidity: "));
  Serial.print(h1);
  Serial.println("%");
  Serial.print ("Temperature: ");
  Serial.print(t1);
  Serial.println("°C ");
  Serial.print("Dew Point :");
  Serial.println(Td1);
  Serial.println();
*/
  //Serial.print(f);
  // Serial.print(F("°F  Heat index: "));
  // Serial.print(hic);
  // Serial.print(F("°C "));
  //Serial.print(hif);
  // Serial.println(F("°F"));
}
//*************************************************type or paste code here

That shouldn't make any difference as long as both are WS2812's. Maybe one is a 2812 and the other a 2812B?

@ SteveMann , Is there a way I can check this or should I try assigning LED TYPE and see if it matters. Thank you for your time.

Regards

It can't hurt to try.

Hello
Will check that out and let you know the outcome.
Have a nice day

Regards
Vijay

Hello SteveMann
I came across a solution to the flickering 1st led here:
Fix for ESP8266 interrupt handling mistakes, which were showing up on… · FastLED/FastLED@ccd2c7b · GitHub
But I am unable to figure out what I have to add to my code and where its supposed to be.
Will appreciate if you can let know.
Regards
Vijay

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.