compatibility issues between arduino uno and surface go tablet

Hi everyone!

It's been a while i'm stuck trying to get my arduino uno to work smoothly with my surface go, a windows tablet with USB type C connection. the bonding between the two is achieved through this usb 3.1 hub. When i try to write a sketch the loading often fails with the following error message:

ser_open(): can't set com-state for "\\.\COM3"

The arduino uno is correctely selected in the IDE and the same hold true for the serial com port, which is recognized.

Troubleshooting i attempted myself:

  1. i tried my arduino uno on a different computer. it seems to work quite well. so we can conclude the board and the usb cable are not faulty.

  2. i shorted the TX and RX pins and through a serial terminal i tried to communicate and receive from the board. only occasionally the board seems to be working. most of the times however the communication 'get stuck' at some point i.e. i do not receive what i try to communicate after a few seconds of communications. when this happens the sketch loading fails as reported.

  3. i tried to search through the processes looking for something asking or making use of the serial port. i did this using microsoft process explorer. nothing seems to be using the com port besides arduino or the serial terminal itself when the board fails.

the troubleshooting suggests the problem having place in the hub, the type-c usb port or with the drivers of the two. where should i go from here? i really want my tablet to work smoothly with arduino :(. .@ other surface and arduino user: which hub do you use to connect the two?

hope to hear from you soon and thank you all in advance. i want to thank big time the developer team too: i think arduino is really what technology should be and what we should struggle towards.

Whilst I dont have a surface to check there are some known issues with USB 3.0 chipsets.

In those cases inserting a self powered USB 2.0 hub (not usb powered) between the Arduino's and the computer most often fixes things. This tends to act as a throttle (simplified explanation).

Thank you a lot! any idea if it is possible to make this chipset behave as a 2.0 or emulate the 2.0 one? so sick of usb dongles :(

Totally unsure with your hardware.

However a quick google suggests that some BIOS settings can lock the USB ports to USB 2.0 compatibility on some hardware.

Other suggestions indicate better quality USB 3.0 cables may also help although from experience here that is very hit and miss.

Just remember that if you do find the option to lock your ports to USB 2.0 that would most likely lock ALL your ports to USB 2.0

My suggestion would be to explore the BIOS options and also double check all software is up to date. Quite some time ago MS released a USB driver update that also caused issues and in that case some people had success rolling that update back

It is not just Arduino that has this issue but some other USB 2.0 hardware as well. It is quite well documented for various hardware.