I'm using microcontrollers, but this seems to be a linux-based issue that I've run into quite frequently.
It seems like USB devices end up there when you connect them (I actually have to access them manually through the CLI to get them to work, so I can usually find them easily), either being assigned /dev/ttyacm0 or /dev/ttyusb0. Both use a generic serial protocol to display information, but at the app I'm using (an IDE) doesn't seem to have the same access to the serial protocol that I can get when I'm reading from it in a more 'bare metal' approach.
It seems like some apps might not have certain permissions when it comes to /dev/ttyacm0 / /dev/ttyusb0 but I can't figure it out exactly. On windows, the same IDE immediately knows what to do and reads from the serial protocol, so I'm wondering if there's some kind of soft lockout going on here by default.
I'm thinking about maybe elevating permissions from my IDE to start with to see if that changes anything, but it's strange that it has enough permissions to reprogram my boards without any issue. It's the smallest things that can be the most frustrating at times, because while it's technically still usable this way there's really no means of debugging without having that console handy.
I definitely wouldn't want to do that in that case. Even if it's a fresh install, that'll set me back a ways! I'm curious as to whether drives can just have a, "Hey, anyone / anything can access this" kind of permission somewhere that I don't know about, because Linux seems to really snap that window of access time down for security reasons or something, whereas Windows just lets everything access it all the time (probably to a fault!)