Arduino LED Matrix Ghosting with 74HC595

I have noticed that there were some threads about ghosting LEDs on matrixes. I have been reading up on it and trying some approaches suggested such as "blanking out the LEDs" to no luck for the last hour. It seems my top two rows have the most amount of ghosting.

Here is the thread I was trying to understand: 74HC595 ghosting/shadowing problem - Interfacing - Arduino Forum

void intro_scroll() {
   for (int p = 0; p < 8; p++)
  {

    r++;
    
    // take the latchPin low so
    // the LEDs don't change while you're sending in bits:
    digitalWrite(latchPin, LOW);
    // shift out the bits:

if (p < 7)
{
    shiftOut(dataPin, clockPin, MSBFIRST,  introArray[p+q]);
}


else if (p == 7)
{
shiftOut(dataPin, clockPin, MSBFIRST,  0b00000000);
}

    //take the latch pin high so the LEDs will light up:
    digitalWrite(latchPin, HIGH);

    // Increment the 4017 to scan all the rows
    if (p > 0)
    {
      digitalWrite(clock, HIGH);     
      digitalWrite(clock, LOW);
    }

    delay(1);

    if (p == 7)
    {
      // Clear the shift register so it displays correctly row 1
      digitalWrite(latchPin, LOW);
      
      shiftOut(dataPin, clockPin, MSBFIRST, 0);
      
      // reset the 4017 to go back to row 1
      digitalWrite(reset, HIGH);
      digitalWrite(reset, LOW);

      digitalWrite(latchPin, HIGH);
      
    }


// Used to display the image statically for a 100 cycles

    if (r % 100 == 0)
    {
      q++;
      if (q == (sizeof(introArray)-7))
      {
        livescount--;
      }

    }
  }
  }

Can you show us a circuit diagram?

I am attempting to change this circuit from an 8x10 LED matrix to an 8x8 LED matrix. Rows 3-8 display (fairly) fine, but I am getting a tremendous amount of ghosting in rows 1-2. I presume this to be a software issue. I think it has something to do with some data from the 74HC595 displaying prior data for some split time. I tried the solution of "blanking" data from the 595, but I am still getting this effect.

The circuit below is essentially just a 595 and a 4017 IC:

I have noticed in the code that if I don't increment the clock on the 4017 and just keep the reset of the 4017 on high that the first two rows of my LED matrix is scanned. Logically, I would assume only the first row should be changing.

I have tried other attempts such as blanking out column data between every Shiftout to no avail.

Any clues? :frowning:

Perhaps you damaged the 4017 by electrostatic discharge, the CMOS logic family should be handled very carefully. Eventually replace it by another 74595. Also check/replace the transistor of the ghosting row.

I think I found the issue! I think there is an unintended connection shown in yellow. I just can't figure out where it is happening. Any eagle eyes can spot it for me?

Problem solved. All caused by a whisker of a connection from copper residue from the etching process. Thanks all for the help!