I finally got it working. Agreed its an older version, we are a little limited due to Vendor older product. The solution was : (1) Update to Ubuntu kernel 5.4.0-150-generic (2) sudo apt-get update (3) sudo apt-get install linux-modules-extra-5.4.0-150-generic Then I plugged in the USB GPS device, it found it, mounted /dev/ttyUSB0 and off it went. Seems even though I was running 5.4.0-84-generic previously, it seems the -84 version it wasnt quite good enough to handle the USB serial properly. Thanks everyone for your help. Edit : If you want to run the identical python code on a Rapsberry Pi 4 B ( because the powers that be possibly wont let you upgrade your linux kernel ) then for a Raspberry Pi 4 B with a kernel 6.1.0-rpi7-rpi-v8 and with all the latest pi updates installed ( as at 14/01/2024 ) , once you plug in the same GlobalSat BU-353N5 USB GPS, it accesses the ttyUSB0 port ( make sure you install pyserial python package first ), and it just works.