Short between G28 and 3V3 it's for safe-boot (booting without executing micropython scrips or loading previous OTA firmware). This is not required.
Let's simplify and isolate problems.
upload scripts with Atom
Here make a simple print("hello") , no UART usage, yet; it should work
usage of UART class.
Here if you just want to output messages, print() method should be enough. UART 0 is already indirected to P0/P1, thru print(). The second UART (#1), it's for communicating with another device connected to the Expansion Board (not with the USB/FTDI chip).
@johand Thanks for the info, I'm able to reproduce the issue. There's indeed a problem in the upload feature, which has been solved in the latest versions of Atom. The VSC plugin is a bit behind code wise. We're working on a refactor of the Atom upload feature right now, when that's done we'll upgrade VSC as well to be up to date with it. That'll solve this issue.
For now either be a bit patient with uploading with VSC or temporarily switch to Atom for this project. Sorry for the inconvenience!