Yes it's good, mrdude wrote the audio engine as a seperate program specifically to decode and play mod files which are free from mod archive. These are the music that was used in old demos from the demoscene. I wanted to run the graphics on one core and the audio on another core so the graphics wouldn't interfere with audio playback. When programming something that's constantly running - like the graphics routine we usually put things like that in tasks which can be given a priority. Since music playback or button code/touch code should always be responsive when something else is running, it's better to assign that to a different core (sort of like using threads in a computer program) so nothing can interfere with it - does that make sense? That's also why i added touch detection to the program as I wanted to see how it would react if running music.
On another note I found you're not the only one having issues with usbhost drivers on the newest esp32 boards (3.3.11)
https://github.com/espressif/arduino-esp32/issues/12783
FIX:
Above setup() add this:
Code:
static bool usb_enum_filter(const usb_device_desc_t* desc, uint8_t* bConfigurationValue) {
return true; // Allow all USB devices to enumerate
}
Then inside setup look for these lines:
Code:
usb_host_config_t host_config = {};
host_config.skip_phy_setup = false;
host_config.intr_flags = ESP_INTR_FLAG_LEVEL1;
host_config.enum_filter_cb = usb_enum_filter; // <-- ADD THIS LINE
That should fix 3.3.11 injection and be backwards compatible.
As for the issue with sleep, here's a pedometer firmware I compiled (from volos github)
https://docs.waveshare.com/ESP32-S3-Touch-AMOLED-1.8/Resources-And-Documents
Wakeup is working fine from the touch screen so I guess it's a code issue. Use the attached firmware to test your chip though just to be sure.