How could devices be recognized in PC without manual driver installation?

Thread Starter

Hyunduk Shin

Joined Feb 3, 2015
10
Hi.

I purchased an external USB ODD and connected to my PC where OS is Windows 10.

Then I surprised to see that the ODD is recognized by my PC immediately.

Is it possible an embedded system can be recognized by PC without installing driver?

If driver installation was done by windows 10 without my knowledge, how does manufacturer of the ODD make it possible?

The reason for this question is that I want to develop an embedded system that does not require manual driver installation for user.

Would you please tell me how the device is recognized by PC without driver installation?
 

Papabravo

Joined Feb 24, 2006
22,075
Windows has a large database of existing devices. Some devices are smart enough to allow a generic windows driver to install a better driver right from the device.
 

Thread Starter

Hyunduk Shin

Joined Feb 3, 2015
10
Thank you for your comments.

I understood that the LG ODD device was developed following Windows standard driver.

If my understanding is correct, could you explain the generic windows driver? Is it called WinUSB(Winusb.sys)?

I heard about a standard driver that is National Instruments IVI driver (https://www.ni.com/ivi/what.htm). Is IVI driver like WinUSB?

Is it easy to develop an embedded system following Windows or NI driver standard?
 

Papabravo

Joined Feb 24, 2006
22,075
There is nothing easy about doing something with Windows. We spent almost six moths debugging a DSP with a USB interface just to get the damn thing to enumerate. Every time we botched the enumeration process we left the registry corrupted and the device would be ignored. So we ended up writing a registry cleaner that would remove the detritus from the registy so we could try the enumeration process again. We finally had to break down and buy a USB traffic analyzer (about US$4600.00) so we could understand where and how the enumeration process was failing. Once we understood that we were quickly able to make an HID for the measurement sensors and a Mass Storage Device for the serial EEPROM which held the firmware for the DSP.
 

Papabravo

Joined Feb 24, 2006
22,075
Is it easy to develop an embedded system following Windows or NI driver standard?

What do you actually mean by this ?

Do you want to develop a hardware device that interfaces by a generic driver ?

Device driver development is a long and arduios task, not for the feint of heart.

I wrote one many moons ago using assembly for Win95, but that was connected to a simple device on a Parallel port and handled am interrupt.

The WDK now uses C and other such confusing things. To tell the truth I really stopped playing around with device drivers after XP.
No i two u's
arduous
And I certainly agree about the difficulties of driver development. Debugging a driver is a serious PITA.
 

NorthGuy

Joined Jun 28, 2014
611
We spent almost six moths debugging a DSP with a USB interface just to get the damn thing to enumerate.
It is not that bad. It took me about two weeks to go from knowing nothing about USB HID to a working HID device on PIC16F1454. And I didn't have a USB analyzer.
 

ErnieM

Joined Apr 24, 2011
8,415
Is it possible an embedded system can be recognized by PC without installing driver?

If driver installation was done by windows 10 without my knowledge, how does manufacturer of the ODD make it possible?

The reason for this question is that I want to develop an embedded system that does not require manual driver installation for user.

Would you please tell me how the device is recognized by PC without driver installation?
If your embedded system uses a standard windows driver then yes, it will be recognized without any driver installation as Windows already has the driver installed. Things like optical disk drives, or any drive, are fairly standard items Windows knows all about and need no further drivers.

Ever stick a thumb drive into your computer and it gets recognized without a driver load? That's because the device represents itself as a standard type (class) of Windows hardware.

I've made several embedded devices using USB that need no Windows driver as they appear to Windows as standard devices. Offhand I know I have used the COM class for a virtual serial port and some disk type so my SD drive would appear as any other USD drive does.

The next question is what do you want your device to do?
 

Thread Starter

Hyunduk Shin

Joined Feb 3, 2015
10
Thank you for your answers.

I realized that development of device driver is a difficult task.

I also realized that the LG USB ODD was recognized to a typical device of Windows 10.

And that is because "the device represents itself as a standard type (class) of Windows hardware."

I would like to answer your questions.

Is it easy to develop an embedded system following Windows or NI driver standard?

What do you actually mean by this ?
-> I wonder which one is easier between two cases below.
1) Developing a device driver following Windows standard driver so that the driver is recognized without driver installation.
2) Developing a device driver freely.
I think the first case could be easier because I just use Windows's drivers without development in the first case. Is my expectation correct?

The next question is what do you want your device to do?
I would like to develop a controller for an actuator. The actuator is mirror system (MOEMS: Micro-Opto-Electro-Mechanical Systems).



Thank you.
 

ErnieM

Joined Apr 24, 2011
8,415
-> I wonder which one is easier between two cases below.
1) Developing a device driver following Windows standard driver so that the driver is recognized without driver installation.
2) Developing a device driver freely.
I think the first case could be easier because I just use Windows's drivers without development in the first case. Is my expectation correct?
Number 1 is not possible, not unless you convince the Microsoft Corporation to include your new standard driver in their next update, and also convince the entire world to install that update.

What IS possible is to have your device use a driver of a class already supports and thus installed with Windows. Your device description is quite sketchy, but I would imagine something like a CDC or Communication Device Class would work well for you. That is the class that covers virtual COM ports, connections thru USB that appear to your Windows programs as a COM port.

Unless you have a very high data rate that should work well and have zero development costs on either end of the USB.
 
Top