Also worth noting that ChatGPT and Gemini both suggest the "double-reset trick" where you press the Upload button, then double-press the reset button the firmware as soon as the "Performing 1200-bps touch reset on serial port..." message appears. Here is the error I get if I do this:
avrdude: Version 6.3-20190619
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2014 Joerg Wunsch
System wide configuration file is "/Users/zach/Library/Arduino15/packages/arduino/tools/avrdude/6.3.0-arduino17/etc/avrdude.conf"
User configuration file is "/Users/zach/.avrduderc"
User configuration file does not exist or is not a regular file, skipping
Using Port : /dev/cu.usbmodem4101
Using Programmer : jtag2updi
Overriding Baud Rate : 115200
avrdude: jtagmkII_getsync(): sign-on command: status -1
avrdude: ser_recv(): read error: Device not configured
avrdude: jtagmkII_getsync(): sign-on command: status -1
avrdude: ser_send(): write error: Device not configured
avrdude: jtagmkII_send(): failed to send command to serial port
avrdude: ser_recv(): read error: Device not configured
avrdude: jtagmkII_getsync(): sign-on command: status -1
avrdude: ser_send(): write error: Device not configured
avrdude: jtagmkII_send(): failed to send command to serial port
avrdude: ser_recv(): read error: Device not configured
avrdude: jtagmkII_getsync(): sign-on command: status -1
avrdude: ser_send(): write error: Device not configured
avrdude: jtagmkII_send(): failed to send command to serial port
avrdude: ser_recv(): read error: Device not configured
avrdude: jtagmkII_getsync(): sign-on command: status -1
avrdude: ser_send(): write error: Device not configured
avrdude: jtagmkII_send(): failed to send command to serial port
avrdude: ser_recv(): read error: Device not configured
avrdude: jtagmkII_getsync(): sign-on command: status -1
avrdude: ser_send(): write error: Device not configured
avrdude: jtagmkII_send(): failed to send command to serial port
avrdude: ser_recv(): read error: Device not configured
avrdude: jtagmkII_getsync(): sign-on command: status -1
avrdude: ser_send(): write error: Device not configured
avrdude: jtagmkII_send(): failed to send command to serial port
avrdude: ser_recv(): read error: Device not configured
avrdude: jtagmkII_getsync(): sign-on command: status -1
avrdude: ser_send(): write error: Device not configured
avrdude: jtagmkII_send(): failed to send command to serial port
avrdude: ser_recv(): read error: Device not configured
avrdude: jtagmkII_getsync(): sign-on command: status -1
avrdude: ser_send(): write error: Device not configured
avrdude: jtagmkII_send(): failed to send command to serial port
avrdude: ser_recv(): read error: Device not configured
avrdude: jtagmkII_getsync(): sign-on command: status -1
avrdude: ser_send(): write error: Device not configured
avrdude: jtagmkII_send(): failed to send command to serial port
avrdude: ser_recv(): read error: Device not configured
avrdude: jtagmkII_getsync(): sign-on command: status -1
avrdude: ser_send(): write error: Device not configured
avrdude: jtagmkII_send(): failed to send command to serial port
avrdude: ser_recv(): read error: Device not configured
avrdude: jtagmkII_getsync(): sign-on command: status -1
avrdude: ser_send(): write error: Device not configured
avrdude: jtagmkII_send(): failed to send command to serial port
avrdude: ser_recv(): read error: Device not configured
avrdude: jtagmkII_getsync(): sign-on command: status -1
avrdude: ser_send(): write error: Device not configured
avrdude: jtagmkII_send(): failed to send command to serial port
avrdude: ser_recv(): read error: Device not configured
avrdude: jtagmkII_getsync(): sign-on command: status -1
avrdude: ser_send(): write error: Device not configured
avrdude: jtagmkII_send(): failed to send command to serial port
avrdude: ser_recv(): read error: Device not configured
avrdude: jtagmkII_getsync(): sign-on command: status -1
avrdude: ser_send(): write error: Device not configured
avrdude: jtagmkII_send(): failed to send command to serial port
avrdude: ser_recv(): read error: Device not configured
avrdude: jtagmkII_getsync(): sign-on command: status -1
avrdude: ser_send(): write error: Device not configured
avrdude: jtagmkII_send(): failed to send command to serial port
avrdude: ser_recv(): read error: Device not configured
avrdude: jtagmkII_getsync(): sign-on command: status -1
avrdude: ser_send(): write error: Device not configured
avrdude: jtagmkII_send(): failed to send command to serial port
avrdude: ser_recv(): read error: Device not configured
avrdude: jtagmkII_getsync(): sign-on command: status -1
avrdude: ser_send(): write error: Device not configured
avrdude: jtagmkII_send(): failed to send command to serial port
avrdude: ser_recv(): read error: Device not configured
avrdude: jtagmkII_getsync(): sign-on command: status -1
avrdude: ser_send(): write error: Device not configured
avrdude: jtagmkII_send(): failed to send command to serial port
avrdude: ser_recv(): read error: Device not configured
avrdude: jtagmkII_getsync(): sign-on command: status -1
avrdude: ser_send(): write error: Device not configured
avrdude: jtagmkII_send(): failed to send command to serial port
avrdude: ser_recv(): read error: Device not configured
avrdude: jtagmkII_getsync(): sign-on command: status -1
avrdude: ser_send(): write error: Device not configured
avrdude: jtagmkII_send(): failed to send command to serial port
avrdude: ser_recv(): read error: Device not configured
avrdude: jtagmkII_getsync(): sign-on command: status -1
avrdude: ser_send(): write error: Device not configured
avrdude: jtagmkII_send(): failed to send command to serial port
avrdude: ser_recv(): read error: Device not configured
avrdude: jtagmkII_getsync(): sign-on command: status -1
avrdude: ser_send(): write error: Device not configured
avrdude: jtagmkII_send(): failed to send command to serial port
avrdude: ser_recv(): read error: Device not configured
avrdude: jtagmkII_getsync(): sign-on command: status -1
avrdude: ser_send(): write error: Device not configured
avrdude: jtagmkII_send(): failed to send command to serial port
avrdude: ser_recv(): read error: Device not configured
avrdude: jtagmkII_getsync(): sign-on command: status -1
avrdude: ser_send(): write error: Device not configured
avrdude: jtagmkII_send(): failed to send command to serial port
avrdude: ser_recv(): read error: Device not configured
avrdude: jtagmkII_getsync(): sign-on command: status -1
avrdude: ser_send(): write error: Device not configured
avrdude: jtagmkII_send(): failed to send command to serial port
avrdude: ser_recv(): read error: Device not configured
avrdude: jtagmkII_getsync(): sign-on command: status -1
avrdude: ser_send(): write error: Device not configured
avrdude: jtagmkII_send(): failed to send command to serial port
avrdude: ser_recv(): read error: Device not configured
avrdude: jtagmkII_getsync(): sign-on command: status -1
avrdude: ser_send(): write error: Device not configured
avrdude: jtagmkII_send(): failed to send command to serial port
avrdude: ser_recv(): read error: Device not configured
avrdude: jtagmkII_getsync(): sign-on command: status -1
avrdude: ser_send(): write error: Device not configured
avrdude: jtagmkII_send(): failed to send command to serial port
avrdude: ser_recv(): read error: Device not configured
avrdude: jtagmkII_getsync(): sign-on command: status -1
avrdude: ser_send(): write error: Device not configured
avrdude: jtagmkII_send(): failed to send command to serial port
avrdude: ser_recv(): read error: Device not configured
avrdude: jtagmkII_getsync(): sign-on command: status -1
avrdude: ser_send(): write error: Device not configured
avrdude: jtagmkII_send(): failed to send command to serial port
avrdude: ser_recv(): read error: Device not configured
avrdude: jtagmkII_getsync(): sign-on command: status -1
avrdude: ser_send(): write error: Device not configured
avrdude: jtagmkII_send(): failed to send command to serial port
avrdude: ser_recv(): read error: Device not configured
avrdude: jtagmkII_getsync(): sign-on command: status -1
avrdude: jtagmkII_getsync(): timeout/error communicating with programmer (status -1)
avrdude done. Thank you.
Failed uploading: uploading error: exit status 1