Closed
Description
I updated CircuitPython on my Trellis M4 and any code involving the NeoPixels is failing to function properly.
The failure is:
- All of the NeoPIxels will turn bright white (evidently
(255, 255, 255)
). - After a seemingly consistent period of time (a few seconds), CIRCUITPY will disconnect, all of the NeoPixels will become a dimmer white (as though it's more like
(45, 45, 45)
or something), and the status DotStar LED on the back will turn a slightly purple-tinged red (which is to say, you can see that there is a little blue to it, but it is primarily red). - If connected to the serial console, no errors show up, there is nothing there to indicate what happened.
- Pressing buttons on the front does nothing at this point.
- A single reset returns it to the bootloader and TRELM4BOOT mounts.
- However, attempting to load the same or a different version of CircuitPython at this point does not change the state of the board - copy the build, TRELM4BOOT will disconnect, and then the board will restart with the same purple-red status LED on the back and no CIRCUITPY drive will mount.
The resolution is:
- Unplug the board.
- Plug it back in.
- IMMEDIATELY double-tap reset to get into the bootloader.
- Load an earlier version of CircuitPython onto the TRELM4BOOT drive. This returns it to a functional state.
Tested with the following examples:
- This demo starts with a rainbow already lit up, and lights up every LED the same color when you press a button. When the newer version of CircuitPython is loaded, on a button press, it flickers solid white as well as the correct color, it continues to do so for a short period of time, and then drops into the failure steps listed above.
https://github.com/adafruit/Adafruit_CircuitPython_TrellisM4/blob/master/examples/neopixel_trellism4.simpletest.py - This demo starts with all the LEDs off and you can toggle individual buttons on and off with different colors. When a newer version of CircuitPython is loaded, it starts up with all the LEDS white, button presses will toggle individual buttons colors while flashing all the pixels white as well, and then after a short period of time drop into the failure steps listed above.
https://github.com/adafruit/Adafruit_CircuitPython_TrellisM4/blob/master/examples/trellism4_neopixel_toggle.py - To verify that this isn't an issue with the Adafruit_CircuitPython_TrellisM4 library, I created a simple code.py that used
neopixel
and turned on the first NeoPixel. With the newer version of CircuitPython loaded, it turns on the first LED, flashes white for a bit, then drops into the failure steps listed above.
Issue reproduced with the following versions:
adafruit-circuitpython-trellis_m4_express-en_US-20181110-50f5d27.uf2
adafruit-circuitpython-trellis_m4_express-en_US-20181109-97bc951.uf2
The following versions do not have the issue:
adafruit-circuitpython-trellis_m4_express-en_US-20181107-d08747d.uf2
adafruit-circuitpython-trellis_m4_express-en_US-20181105-283e072.uf2