Hi Max,
Python version is 3.6.9
Mint is running on bare metal (both versions).
I hadn’t tried upgrading PIO to the dev version, bu I have now. Same result.
I’ll try it on my other Mint, and Manjaro, which I have in another partition. I’ve also got Fedora Silverblue in yet another partition, so maybe I’ll give that a crack as well.
EDIT On my clean Mint 19.3, Python is V3.6.9.
with VS Code OSS: Upgraded PIO to --dev, problem persist (in fact both. Still get the udev problem, and it can’t find my Due on /dev/ttyACM0 with or without the upload_port specified). Same problems with my Mega2560.
With VS Code MS version (flatpak): For mega2560, still get the udev missing message, but it does upload to the board successfully.
For my Due, I still get the udev missing message, and it also will not upload to my Due, the error is “No device found on ttyACM0”.
For my STM32F401RE board, I get the udev missing message and I can’t upload to it. This time the message is “Failed to init device”. (at least it found the port). I also got a message saying stddef.h missing. I found one buried deep in the platformio libraries, and added a build_flags = -I/home/ian/.platformio/packages/toolchain-gccarmnoneeabi/lib/gcc/arm-none-eabi/9.2.1/include, which solved that particular problem, but not the others.
I’ll try Manjaro next.
:-\ Ian
EDIT 2
On Manjaro:
Upload to Due works. No udev message.
Upload to Mega2560 works. No udev message.
Upload to STM32F401RE does not work. Error message is “Failed to init device”. No udev message.
Python3 is, believe it or not, V3.8.2! Maybe I should upgrade Python on my Mint installs…
Ian
EDIT 3
Thought I’d sussed it for a minute. Realised that Code-OSS was a flatpak and maybe MS VS Code wasn’t. I have to go back and check. I’m sitting here in Fedora Silverblue, which is driven by flatpaks (sort of) and both versions of VS code (OSS and MS) are flatpaks. So they should both not work, right? Well, yes and no. Both versions give me the udev missing error, which I suspect may be related to the flatpak not being given access to the directory(ies) where the udev rules reside. The OSS version also cannot find the Due, whereas the MS version can and successfully uploads the program. I thought it would need information from the udev rules to be able to do that, but apparently not.
I’ll go back and recheck what’s flatpak ans what isn’t.

EDIT 4
Back in primary Mint. both versions of VS Code are flatpaks. My next experiment is to download and install the .deb version of MS VS Code from the website.
My suspicions are vindicated. The .deb version does find the udev rules, and successfully uploads a program. I suspect a flatpak problem…
I don’t know if there is a non-flatpak version of Code-OSS, but I suspect not. I looked, but could only find an AppImage, that did not work. Anyway I’m giving up for now. At lest MS VS Code works, so I’ll stick with that for now.