Hi,
I want to use an Atmel-ICE as a programmer on macOS Catalina (10.15.7)
With AVRDude I have no problems: $avrdude -c atmelice_isp -p ATmega2560 -v
can find the Atmel-ICE device: avrdude: usbdev_open(): Found Atmel-ICE CMSIS-DAP, serno: J41800033909
But when I try to use the Atmel-ICE with PlatformIO it fails.
My platformio.ini: [env:megaatmega2560] platform = atmelavr framework=arduino board = megaatmega2560 upload_protocol = atmelice_isp upload_port = usb
results into: could not open port usb: [Errno 2] No such file or directory: 'usb'
Without upload_port = usb the error is: Looking for upload port... Error: Please specify 'upload_port' for environment or use global '--upload-port' option.
Indeed it should be added to those docs, but the main docs for “How to program an AVR with a programmer” are at Atmel AVR — PlatformIO latest documentation – the Atmel-ICE is not explicitly mentioned there (which it also should be), but the “usual” way would be to use upload_protocol = custom and then fill in the upload_command and upload_flags value which are correct for the Atmel-ICE (most importantly -c atmelice_isp).
That this works is kind of a side-effect and not actually indended. As you can read in the doc you’ve linked yourself, the supported platform is Atmel SAM, not Atmel AVR, which is what you’re using the programmer for at the moment.
The platform-atmelavr scripts work however in a way that take the upload_protocol = xyz value and use in the -c xyz invocation of avrdude. Which partly works, if it wasn’t for the check that expects a serial device and its existence before upload (require_upload_port).
So actually for stability, i’d recommend more
board_upload.require_upload_port = no
upload_protocol = custom
upload_port = usb
upload_flags =
-C
; use "tool-avrdude-megaavr" for the atmelmegaavr platform
$PROJECT_PACKAGES_DIR/tool-avrdude/avrdude.conf
-p
$BOARD_MCU
-P
$UPLOAD_PORT
-c
atmelice_isp
upload_command = avrdude $UPLOAD_FLAGS -U flash:w:$SOURCE:i
Thanks a lot for all this information! I was searching a couple of days for all of it … seems not so many people are using Atmel-ICE on macOS with PlatformIO.
If you will stay in Berlin I’ll spend you a beer
PS:
Wow! If I do a google search like "require_upload_port" site:docs.platformio.org it doesn’t show any result.
Is there any equivalent platformio.ini entry for debugging?