Question about a performance of Arduino USB driver

We would like to confirm one performance of Arduino USB driver.

We could successfully communicate between only one host PC and eight Arduino UNOs at the same time in case of using ‘single task’.

On the other hand, we need faster communication speed on the same hardware condition, so we are considering usage of ‘multi tasking’ on the PC by using VB.NET. Then we would like to know if Arduino USB driver supports ‘multi tasking’ to establish more quick simultaneous communication. It is not sure but for example, multi buffers preparation, some blocking overwrite, etc.
We will probably try that but we strongly want the conviction in advance.

Nobuo_Koike:
We could successfully communicate between only one host PC and eight Arduino UNOs at the same time in case of using ‘single task’.

Do you mean that on one PC you have 8 USB connections each one linked to a different Uno?

If I've got that wrong it would help if you give the correct explanation.

Then, by reference to that, what are you hoping to do?

At the moment this seems like an XY Problem and it would be a great idea if you explain the project, rather than your idea for a solution.

...R

Hi Robin2 and all,

Thank you for the reply and sorry for confusing you.
It is the first time for me to use this forum.

My question is which Arduino USB driver supports "multitask" function of PC or not.

Do you mean that on one PC you have 8 USB connections each one linked to a different Uno?

Yes. We connect one PC (Windows 8 which is multitask OS) and eight UNOs through USB hub.
This is an example. It is no problem, even if it is one PC directly connects to two or three Arduinos without USB hub. What we want to know is which Arduino USB driver supports multitask of PC.

I about to try that and confirm the result but my colleagues strongly requested me to confirm the specification of Arduino USB driver in advance. At the result, I couldn’t find the specification, so I am asking many friends through this forum.

Thanks,

Let me improve or correct my previous for further understanding.

multitask ---> multi-thread
single task ---> single-thread

If you are using a genuine Arduino the Windows driver is usbser.sys. It is provided by Microsoft. The driver has no practical limits to the number of threads / processes / serial ports.

Hi Coding Badly,

Thank you for the good news.

If possible, would you kindly let me know the evidence?
Anything is OK. For instance, where the specification is described, why you think so and so on.

We will greatly appreciate your answer.

Nobuo_Koike:
If possible, would you kindly let me know the evidence?

If Microsoft supply the driver isn’t that a question to ask on a Microsoft support Forum?

I still have a strong suspicion that we have no idea what you are really trying to do.

…R

Nobuo_Koike:
If possible, would you kindly let me know the evidence?

Evidence of what? That usbser.sys is used for genuine Arduino boards? That usbser.sys is copyright by Microsoft? That an NT kernel driver has no practical limits?

For instance, where the specification is described, why you think so and so on.

"And so on"? Forget it. Even if you paid me I am not writing you a dissertation on usbser.sys and how it relates to Arduino.

If you have specific questions, ask.

Yes, we only want to confirm that usbser.sys is used for genuine Arduino boards "exactlly".
So I used the word, 'evidence' by chance. Sorry for confusing. I'm not native speaker in English.

It is very important for us to use multi-thread for establishing communication speed-up between PC and UNOs without problem.

Thanks,

In the Arduino IDE installation directory there is a folder named drivers. In that folder are four files with a .inf extension. Those files are used by the operating system to install the appropriate driver. The files are text. I suggest opening them using your favourite text editor.

The arduino.inf file covers many boards. By searching arduino.inf for ".sys" you can find the kernel driver that is used for those boards which is usbser.sys.

Ditto for the genuino.inf file.

Ditto for the arduino-org.inf file.

The Arduino Gemma however needs a different driver as indicated by the arduino_gemma.inf file. It uses libusb0.sys.

So, usbser.sys is used for all the Arduino boards except the Gemma.

Hello Coding Badly,

Thank you for the reply in detail.

Your answer is appropriate and very helpful for us.

Thanks,

You are welcome.