Closed kattni closed 5 years ago
Just a thought. I found that setting all of the pixels white causes an over current condition so some of this issue may be masked by that. I have reproduced this issue on my trellis m4.
Thank you for the detailed report. I was able to reproduce this on my end. I believe @jerryneedell is right that the bad failure mode is a result of overdrawing the usb line with all white pixels.
The question is, why the white pixels? Well, I haven't figured it out. It appears that the neopixel clocking is slightly slower than in d08747d. The zero high time is 0.5 us instead of 0.38 us which is enough to be a one. I get these numbers on a Metro M4 without neopixels attached so it isn't a fundamental power issue on the Trellis. I also tested the sleep duration between neopixel writes and its consistently 1.004 seconds between both commits. So, this makes me think we're hitting some sort of caching boundary or memory bus contention we weren't hitting before. I have no idea exactly what it is.
I wonder if the instruction/data cache is on at the right time? Maybe that got lost in some refactoring? It gets turned on in the beginning, and also gets turned off/on during some external flash operations.
I still have this issue. Currently my board is in a bricked state from accidentally turning all the pixels white. They turn white for a second, then the drive disappears and the board is stuck with all yellowish looking pixels
@estiens The problem is getting your board into bootloader mode. Then you can load the Trellis M4 .uf2 listed in the Trellis learn guide that does not have this problem. What I'd suggest trying is this:
If this doesn't work it may be possible to pull down the input to the first NeoPixel to ground with, say a 1k resistor, to avoid illuminating them, and then double-click.
@estiens If your code is the source of all white pixels we can give you a safe-mode only build to use to change it.
Here is a safe-mode build. I built this last night but then thought you probably had a clock issue. Unzip before using. trellis_m4-SAFE-MODE.uf2.zip
I updated CircuitPython on my Trellis M4 and any code involving the NeoPixels is failing to function properly.
The failure is:
(255, 255, 255)
).(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).The resolution is:
Tested with the following examples:
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