At the moment I run a Windows10 platform but I plan to migrate to Ubuntu 24.04.
Currently I variously use Arduino as ISP via a COM port, USBASP via USB port and more recently via python script pymcuprog with modified USB to serial card for writing to series 0, 1, 2 devices.
I am new to Unix.
How do I get the platformio.ini to reference the upload port I want to use?
I have PlatformIO running on an Ubuntu platform. I can compile but I do not know how to reference the COM port or USB port.
SOLUTION - if you’re using a serial card in a COM port, plug it in and do a pio device list
from a PlatformIO terminal to see how Ubuntu references your device - but also check on the permissions care of the link to the post by Max Gerhardt below. (This doesn’t work for USBASP progranners)
Here’s the platformio.ini I was using:
; PlatformIO Project Configuration File
;
; Build options: build flags, source filter
; Upload options: custom upload port, speed and extra flags
; Library options: dependencies, extra library storages
; Advanced options: extra scripting
;
; Please visit documentation for the other options and examples
; https://docs.platformio.org/page/projectconf.html
[env:attiny85]
platform = atmelavr
board = attiny85
framework = arduino
; device is USBASP V2.0 with updated firmware
upload_protocol = custom
; upload_port = usb *** this used to work on my Windows platform ***
upload_port = /dev/usb0
upload_flags =
-C
${platformio.packages_dir}/tool-avrdude/avrdude.conf
-p
$BOARD_MCU
-P
$UPLOAD_PORT
-c
usbasp
upload_command = avrdude $UPLOAD_FLAGS -U flash:w:$SOURCE:i
And here’s the error just after compile as it tries but fails on the upload:
Advanced Memory Usage is available via "PlatformIO Home > Project Inspect"
RAM: [====== ] 59.8% (used 306 bytes from 512 bytes)
Flash: [== ] 24.5% (used 2006 bytes from 8192 bytes)
Building .pio/build/attiny85/firmware.hex
Configuring upload protocol...
AVAILABLE: custom
CURRENT: upload_protocol = custom
Uploading .pio/build/attiny85/firmware.hex
avrdude: Warning: cannot open USB device: Permission denied
avrdude: error: could not find USB device with vid=0x16c0 pid=0x5dc vendor='www.fischl.de' product='USBasp'
Please could you aim me at the appropriate documentation - as I said I’m new to Unix as in, I installed it today.
If I use an Arduino Uno and hook this up via a serial cable, then do a
pio device list
I can see a /dev/ttyACM0
If I change my upload_port to upload_port = /dev/ttyACM0
the error indicates
Uploading .pio/build/attiny85/firmware.hex
avrdude: ser_open(): can't open device "/dev/ttyACM0": Permission denied
avrdude done. Thank you.
*** [upload] Error 1
So I have two issues, one is how to grant permissions but the other is both this and also how to reference my USBASP programmer if I use that - it never shows up in the device list as in pio device list
I’m making progress but v slowly.
I found this related post from Max Gerhardt but it didn’t help me.
AH - forgot to log out and back in. I can now successfully program an Attiny85 target with Arduino as ISP.
I’m still struggling with the USBASP programmer but I’ll open another post.