Snow Flakes, data signal?

I just received my Lucky Resistor Snow Flakes. I have one that does not respond to the button unit. If it’s the first one in the chain non of them will respond, button presses do nothing. It does the two LED’s on power on, then just slowly cycles through all the different patterns. If I take it out of the chain the remaining 4 work as advertised and respond to button presses. Add that one dud snow flake as the last one and it just cycles through the patterns as if the button hasn’t been pressed while all the others work as they should.
I have verified that all the cables are good, its now running 4 snow flakes with the 5 short cables, and those same 4 snow flakes worked with the long cable on the button. I’m thinking that one snow flake is not getting the Data in signal?
The button unit looks pretty basic but I can’t find a schematic for it. I poked around on the Lucky Resistor github page for it but couldn’t find it. Does anybody know what it sends to the first snow flake? I’m resisting soldering wires on instead of the ribbon cable, for the time being anyway.

I soldered a three wire cable to the + D - solder pads in the IN side and if I run the following python code I can switch it change pattern mode and switch the pattern. I have D connected to GPIO 23. It looks like its a High signal that switched modes.

Must be an issue with the ribbon cable connector on the IN side?

@hel @Matt

#!/usr/bin/python3

import os
import time, datetime
import RPi.GPIO as GPIO

GPIO.setmode(GPIO.BCM)  
GPIO.setwarnings(False)
GPIO.setup(23, GPIO.OUT)

GPIO.output(23, 1)         # set GPIO23 to 1/GPIO.HIGH/True  
time.sleep(0.5)                 # wait half a second  
GPIO.output(23, 0)         # set GPIO23 to 0/GPIO.LOW/False  
time.sleep(1.0)                 # wait a second

GPIO.output(23, 1)         # set GPIO23 to 1/GPIO.HIGH/True  
time.sleep(0.5)                 # wait half a second 
GPIO.output(23, 0)         # set GPIO23 to 0/GPIO.LOW/False  
time.sleep(1.0)                 # wait a second
 
GPIO.cleanup()        

The following will turn all the LED’s off.

#!/usr/bin/python3

import os
import time, datetime
import RPi.GPIO as GPIO

GPIO.setmode(GPIO.BCM)  
GPIO.setwarnings(False)
GPIO.setup(23, GPIO.OUT)

GPIO.output(23, 1)         # set GPIO23 to 1/GPIO.HIGH/True  
time.sleep(7.5)                 # wait seven and a half a second  
GPIO.output(23, 0)         # set GPIO23 to 0/GPIO.LOW/False  
time.sleep(1.0)                 # wait a second

 
GPIO.cleanup()