Sudden Failure of 3/4 of Flex LEDs [solved]

My Flex worked fine for a day - next day only the first 8 LEDs were working, and nothing I do programmatically gets the other LEDs to illuminate. No errors are returned. Mode is 2 - I have tried other modes but that didn’t address the problem.

Is the problem most likely some sort of fault at LED 9? Might I be able to cut the flex in half and try to resolder at LED 10? I have to call in a favour from a neighbour to get the resoldering done, so would like to pick the most likely path to success.

Thanks for any guidance.

FYI - here’s my Test Code if anyone wants to use it

"""
flexTest.py for BlinkStick Flex


"""
### Imports
from blinkstick import blinkstick
from time import sleep
import random

### Inits and Globals

blinkDict = {"Flex":{"Serial":"BS036480-3.1"}}

#Build out an array of green to yellow to red values
ledQty = 32
maxIntensityVal = 64   #theoretical max is 255
greenToRed = []
gradGran = int(maxIntensityVal/(ledQty/2))
for intensity in range(0,maxIntensityVal,gradGran):
    redLevel = intensity
    greenLevel = maxIntensityVal - intensity
    greenToRed.append([redLevel, greenLevel, 0])
for intensity in range(maxIntensityVal,0,-gradGran):
    redLevel = intensity
    greenLevel = maxIntensityVal - intensity
    greenToRed.append([redLevel, greenLevel, 0])

greenToRed.reverse()

#Run this test a bunch of times

for _ in range(50):
    ### Flex
    bstick = blinkstick.find_by_serial(blinkDict["Flex"]["Serial"])
    print("Morphing the Flex")
    d = 20
    for i in range(31):
        try:
            thisIndex = i
            thisRed = greenToRed[i][0]
            thisGreen = greenToRed[i][1]
            thisBlue = greenToRed[i][2]
            thisDuration = i + d #cycle through different durations
            print("Morphing LED {}".format(thisIndex))
            bstick.morph(index=thisIndex, red=thisRed, green=thisGreen, blue=thisBlue, duration = thisDuration)
        except Exception as e:
            print("Nope - LED:{}, ".format(i), e)

    for i in range(31,0,-1):
        try:
            thisIndex = i
            thisRed = greenToRed[i][0]
            thisGreen = greenToRed[i][1]
            thisBlue = greenToRed[i][2]
            thisDuration = i + d #cycle through different durations
            print("Morphing LED {}".format(thisIndex))
            bstick.pulse(index=thisIndex, red=thisRed, green=thisGreen, blue=thisBlue, duration = thisDuration)
        except Exception as e:
            print("Nope - LED:{}, ".format(i), e)

    print("Blinking the Flex")
    d =20
    for i in range(31):
        try:
            thisIndex = i
            thisRed = greenToRed[i][0]
            thisGreen = greenToRed[i][1]
            thisBlue = greenToRed[i][2]
            thisDuration = d + i
            print("Blinking LED {}".format(thisIndex))
            bstick.blink(index=thisIndex, red=thisRed, green=thisGreen, blue=thisBlue, delay = thisDuration)
        except Exception as e:
            print("Nope - LED:{}, ".format(i), e)

    for i in range(31,0,-1):
        try:
            thisIndex = i
            thisRed = greenToRed[i][0]
            thisGreen = greenToRed[i][1]
            thisBlue = greenToRed[i][2]
            thisDuration = d + i
            print("Blinking LED {}".format(thisIndex))
            bstick.blink(index=thisIndex, red=thisRed, green=thisGreen, blue=thisBlue, delay = thisDuration)
        except Exception as e:
            print("Nope - LED:{}, ".format(i), e)

print("Turning Flex off")    
bstick.turn_off()

Can you try and use function SetLedCount(32) and see if it fixes the problem? You can also use the following command

blinkstick --set-led-count 32

That was it!

Thanks so much for your quick response Arvydas