If it doesn’t go into flashing mode on platformio, navigate to directory where firmware.bin file is located. For me it was “/home/jonny/projects/esp32_walkie_talkie/esp32_cam_audio_atomic14/.pio/build/seeed_xiao_esp32s3”, so basically replace everything before “/.pio” with the path to your project. Next try uploading sketch manually with esptool.py, so for me the command was “esptool.py --port /dev/ttyACM0 --baud 115200 write_flash 0x1000 ./firmware.bin” (note, my board was on port /dev/ttyACM0). This will solve the refusing to upload problem. So, once it has uploaded manually, you can then flash with platformio upload button. Basically, I think there is some kind of bug which causes the board to refuse to upload (a fatal error occurred: No serial data received), and the manual upload tends to fix the board. The next handful of uploads will work and then you will have to do the manual upload described above if the bug occurs again, and this will fix it for another few uploads, wash, rinse repeat for further bugs.