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()