Closed drewandre closed 3 years ago
Did you have the same issue with your environment with a WS2811 format string, and with bluetooth disabled?
Thanks for the report, I'll give it a try.
Oh, please notice, you're using the 4.2 SKD with master, which is post 4.2. Don't do that.
When using master, you should generate your own SDKCONFIG based on the master you have. Basically, remove sdkconfig, run menuconfig and set for your chip, and run. Espressif's SDKCONFIG is simply not very stable, it seems they are always adding and removing things.
There's nothing specific in the FastLED config that requires sdkconfig settings (afaik so far :-). I will update the doc to make that more clear.
Hi @bbulkow -- when you suggest trying WS2811 with bluetooth disabled, you're basically asking if the example runs after a fresh clone, right? Because the LED_TYPE
is already WS2811 and bluetooth is disabled in the example on the master branch. But to answer your question, yeah it runs out of the box.
I re-generated the sdkconfig from scratch like you suggested. After enabling bluetooth (not even in dual-mode like I previously mentioned, just all default bluetooth configurations), setting the LED type to APA102 and settings it's data pin to 19 (with a clock pin of 15), I get the same error as above even with the (awesome) changes you pushed to master four days ago to address flickering.
Sorry if I was unclear. I was asking if you could try your test case using a fresh sdkconfig. In your description, you've mismatched using the "sdkconfig4.2" with a master tree. Can you do exactly what you did, but instead of using one of the checked in sdkconfig, delete the sdkconfig completely, do an idf.py menuconfig to create a new one, set whatever you want to set, and try again?
Hey @bbulkow, in my comment above I mentioned that I did generate the sdkconfig from scratch like you suggested. I totally blew away all sdkconfig files and re-ran menuconfig to generate a new one. Let me know if I can help debug at all!
Good news is it's reproducing on my machine, and the exact line is related to another issue raised about the RTC vs non-RTC pins, so there's almost certainly a reasonable solution lurking about. The difference between pin 15 and 19 is that 15 is RTC capable, and 19 is not, so that call appears to be locking the pin for RTC access when that's not allowed. I think the solution is to sense which pins require RTC locking and only make that call. And, the reason this only happens with APA102's is they use the GPIO interface, WS281x use RMT which doesn't go down this code path. The correct answer for the APAs is to actually use the SPI hardware, which is something I might take a look at in the coming weeks.
There was a code error around checking for RTC pins and doing the right thing, and the deprecation of the old API in 4.1, and my poor understanding of the issue in my workaround. I believe I have re-coded correctly for the new API with changelist 81e041d2554fee36be9df2ff8e9303753e926536 , please let me know if the problem has not be resolved.
Going to mark this as resolved. Please reopen if problem has not been resolved with today's checkins.
Hi @bbulkow, thanks again for a great port and for keeping this port maintained with the latest esp32 fastled improvements. With dual mode bluetooth controller enabled on esp-idf v4.2, trying to run your
fastfade
on a single APA102 status led throws a LoadProhibited exception if my data pin is GPIO 19. The animation appears to run fine on WS2812B leds using GPIO 19 for data out.I basically just cloned the master branch, enabled bluetooth and flashed the app. I have no bluetooth-specific code, just the component enabled and set to dual mode.
Steps to reproduce:
addLeds
call and switch with the APA102 example you already had in there, but with GPIO 19 as data.Other than this, there are no changes to the main.cpp file. Immediately after "entering app main, call add leds" is logged, the error below is thrown (full application log pasted for context). Is there something about GPIO 19 that I may not understand? I see that it's used as an SPI pin according to this article, but the official datasheet doesn't seem to suggest that GPIO 19 is reserved when BT is in use.
Thanks!