turning on the radio corrupted the framebuffer / screen / something. genuinely how

okay so status update / solution:

by enabling the wifi component in the ESP-IDF, even though I didn't call any wifi-related code, it still allocated static memory buffers. if i comment out the wifi code, the linker helpfully optimizes out the entire wifi component and that memory isn't allocated!

now why would a few small memory buffers cause such a huge issue?

when it draws the framebuffer to the screen, the esp_lcd component helpfully queues a bunch of DMA transactions. max dma size is 32768, framebuffer is 230k bytes. but for some reason it can't DMA from the external memory, so for each dma transaction it allocates internal memory and copies the data there, and then... boom, out of memory. what a beyond fucking stupid oversight

i can't reprogram the esp_lcd component, soooo am i back to writing raw spi transactions 😭 its whatever but what the fuck yo

@ntoskrnl ...if it's this complicated, no wonder I get nowhere with my 8266 and Arduino IDE XD

None of the boilerplate WiFi code seems to work on my network. I think I'm running WPA2.

@frosty yeah I tend to dislike stuff that adds abstraction and takes away control so that's why I basically never recommend arduino on esp :P You can't control what assumptions they make for you, you can't debug stuff when it goes wrong, ... etc
@ntoskrnl I do know some of the modules have configuration options for memory use - maybe you have luck with those?

@varbin oh thats possible, im not sure ive actually checked the sdkconfig for esp_lcd

I swear I thought the external memory was DMAable, but ... idk, i guess not. If there's an option to have it do polling transfers instead of queued, that would work since one-at-a-time and the display runs at 80 MHz (st7789 my beloved)