Steve-furiousteam USB Devices Driver Download For Windows



-->

Below, we are sharing the links to USB drivers for most of the popular Android device manufacturers like Samsung, LG, Sony, Google, HTC, Motorola, Dell, etc. These USB drivers are safe to use as they are from their respective manufacturers. All the links are valid and official. We recommend you to download the latest USB drivers. Check what is the current OS Build of your Windows version by going to Settings System About. Go to Download driver and firmware for Surface, choose Surface Pro 5thgen then click Download on the next page. Choose the.msi file that matches your current OS Build and click Next. After downloading, run and install the.msi then Restart.

Important

This topic is for programmers. If you are a customer experiencing USB problems, see Troubleshoot common USB problems

This topic lists the Microsoft-provided drivers for the supported USB device classes.

  • Microsoft-provided drivers for USB-IF approved device classes.
  • For composite devices, use USB Generic Parent Driver (Usbccgp.sys) that creates physical device objects (PDOs) for each function.
  • For non-composite devices or a function of a composite device, use WinUSB (Winusb.sys).
Steve-furiousteam USB Devices Driver Download For Windows

If you are installing USB drivers: You do not need to download USB device class drivers. They are installed automatically. These drivers and their installation files are included in Windows. They are available in the WindowsSystem32DriverStoreFileRepository folder. Adlink pci-7230. The drivers are updated through Windows Update.

If you are writing a custom driver: Before writing a driver for your USB device, determine whether a Microsoft-provided driver meets the device requirements. If a Microsoft-provided driver is not available for the USB device class to which your device belongs, then consider using generic drivers, Winusb.sys or Usbccgp.sys. Write a driver only when necessary. More guidelines are included in Choosing a driver model for developing a USB client driver.

USB Device classes

USB Device classes are categories of devices with similar characteristics and that perform common functions. Those classes and their specifications are defined by the USB-IF. Each device class is identified by USB-IF approved class, subclass, and protocol codes, all of which are provided by the IHV in device descriptors in the firmware. Microsoft provides in-box drivers for several of those device classes, called USB device class drivers. If a device that belongs to a supported device class is connected to a system, Windows automatically loads the class driver, and the device functions with no additional driver required.

Hardware vendors should not write drivers for the supported device classes. Windows class drivers might not support all of the features that are described in a class specification. If some of the device's capabilities are not implemented by the class driver, vendors should provide supplementary drivers that work in conjunction with the class driver to support the entire range of functionality provided by the device.

For general information about USB-IF approved device classes see the USB Common Class Specification

The current list of USB class specifications and class codes is documented in the USB-IF Defined Class Code List.

Device setup classes

Windows categorizes devices by device setup classes, which indicate the functionality of the device.

Microsoft defines setup classes for most devices. IHVs and OEMs can define new device setup classes, but only if none of the existing classes apply. For more information, see System-Defined Device Setup Classes.

Two important device setup classes for USB devices are as follows:

  • USBDevice {88BAE032-5A81-49f0-BC3D-A4FF138216D6}: IHVs must use this class for custom devices that do not belong to another class. This class is not used for USB host controllers and hubs.

  • USB {36fc9e60-c465-11cf-8056-444553540000}: IHVs must not use this class for their custom devices. This is reserved for USB host controllers and USB hubs.

The device setup classes are different from USB device classes discussed earlier. For example, an audio device has a USB device class code of 01h in its descriptor. When connected to a system, Windows loads the Microsoft-provided class driver, Usbaudio.sys. In Device Manager, the device is shown under is Sound, video and game controllers, which indicates that the device setup class is Media.

Steve-furiousteam USB Devices Driver Download For Windows

Microsoft-provided USB device class drivers

USB-IF class codeDevice setup classMicrosoft-provided driver and INFWindows supportDescription
Audio (01h)Media
{4d36e96c-e325-11ce-bfc1-08002be10318}
Usbaudio.sys

Wdma_usb.inf

Windows 10 for desktop editions (Home, Pro, Enterprise, and Education)
Windows 10 Mobile
Windows 8.1
Windows 8
Windows 7
Windows Server 2008
Windows Vista
Microsoft provides support for the USB audio device class by means of the Usbaudio.sys driver. For more information, see 'USBAudio Class System Driver' in Kernel-Mode WDM Audio Components. For more information about Windows audio support, see the Audio Device Technologies for Windows website.
Communications and CDC Control (02h)
Ports
{4D36E978-E325-11CE-BFC1-08002BE10318}
Usbser.sys
Usbser.inf
Windows 10 for desktop editions
Windows 10 Mobile
In Windows 10, a new INF, Usbser.inf, has been added that loads Usbser.sys automatically as the function driver.

For more information, see USB serial driver (Usbser.sys)

Modem
{4D36E96D-E325-11CE-BFC1-08002BE10318}

Note Supports Subclass 02h (ACM)

Usbser.sys
Custom INF that references mdmcpq.inf
Windows 10 for desktop editions
Windows 8.1
Windows 8
Windows 7
Windows Server 2008
Windows Vista
In Windows 8.1 and earlier versions, Usbser.sys is not automatically loaded. To load the driver, you need to write an INF that references the modem INF (mdmcpq.inf) and includes [Install] and [Needs] sections.

Starting with Windows Vista, you can enable CDC and Wireless Mobile CDC (WMCDC) support by setting a registry value, as described in Support for the Wireless Mobile Communication Device Class.

When CDC support is enabled, the USB Common Class Generic Parent Driver enumerates interface collections that correspond to CDC and WMCDC Control Models, and assigns physical device objects (PDO) to these collections.

Net
{4d36e972-e325-11ce-bfc1-08002be10318}
Note Supports Subclass 0Eh (MBIM)
wmbclass.sys
Netwmbclass.inf
Windows 10 for desktop editions
Windows 8.1
Windows 8
Starting in Windows 8, Microsoft provides the wmbclass.sys driver, for mobile broadband devices. See, MB Interface Model.
HID (Human Interface Device) (03h)HIDClass
{745a17a0-74d3-11d0-b6fe-00a0c90f57da}
Hidclass.sys
Hidusb.sys
Input.inf
Windows 10 for desktop editions
Windows 10 Mobile
Windows 8.1
Windows 8
Windows 7
Windows Server 2008
Windows Vista
Microsoft provides the HID class driver (Hidclass.sys) and the miniclass driver (Hidusb.sys) to operate devices that comply with the USB HID Standard. For more information, see HID Architecture and Minidrivers and the HID class driver. For further information about Windows support for input hardware, see the Input and HID - Architecture and Driver Support website.
Physical (05h)---Recommended driver: WinUSB (Winusb.sys)
Image (06h)Image
{6bdd1fc6-810f-11d0-bec7-08002be2092f}
Usbscan.sys
Sti.inf
Windows 10 for desktop editions
Windows 8.1
Windows 8
Windows 7
Windows Server 2008
Windows Vista
Microsoft provides the Usbscan.sys driver that manages USB digital cameras and scanners for Windows XP and later operating systems. This driver implements the USB component of the Windows Imaging Architecture (WIA). For more information about WIA, see Windows Image Acquisition Drivers and the Windows Imaging Component website. For a description of the role that Usbscan.sys plays in the WIA, see WIA Core Components.
Printer (07h)USB

Note Usbprint.sys enumerates printer devices under the device set up class: Printer

{4d36e979-e325-11ce-bfc1-08002be10318}.

Usbprint.sys
Usbprint.inf
Windows 10 for desktop editions
Windows 8.1
Windows 8
Windows 7
Windows Server 2008
Windows Vista
Microsoft provides the Usbprint.sys class driver that manages USB printers. For information about implementation of the printer class in Windows, see the Printing - Architecture and Driver Support website.
Mass Storage (08h)
USBUsbstor.sysWindows 10 for desktop editions
Windows 10 Mobile
Windows 8.1
Windows 8
Windows 7
Windows Server 2008
Windows Vista
Microsoft provides the Usbstor.sys port driver to manage USB mass storage devices with Microsoft's native storage class drivers. For an example device stack that is managed by this driver, see Device Object Example for a USB Mass Storage Device. For information about Windows storage support, see the Storage Technologies website.
SCSIAdapter

{4d36e97b-e325-11ce-bfc1-08002be10318}

SubClass (06) and Protocol (62)
Uaspstor.sys
Uaspstor.inf
Windows 10 for desktop editions
Windows 10 Mobile
Windows 8.1
Windows 8
Uaspstor.sys is the class driver for SuperSpeed USB devices that support bulk stream endpoints. For more information see:
Hub (09h)USB

{36fc9e60-c465-11cf-8056-444553540000}

Usbhub.sys
Usb.inf
Windows 10 for desktop editions
Windows 10 Mobile
Windows 8.1
Windows 8
Windows 7
Windows Server 2008
Windows Vista
Microsoft provides the Usbhub.sys driver for managing USB hubs. For more information about the relationship between the hub class driver and the USB stack, see USB host-side drivers in Windows.
Usbhub3.sys
Usbhub3.inf
Windows 10 for desktop editions
Windows 8.1
Windows 8
Microsoft provides the Usbhub3.sys driver for managing SuperSpeed (USB 3.0) USB hubs.

The driver is loaded when a SuperSpeed hub is attached to an xHCI controller. See USB host-side drivers in Windows.

CDC-Data (0Ah)---Recommended driver: WinUSB (Winusb.sys)
Smart Card (0Bh)SmartCardReader

{50dd5230-ba8a-11d1-bf5d-0000f805f530}

Usbccid.sys (Obsolete)Windows 10 for desktop editions
Windows 7
Windows Server 2008
Windows Vista
Microsoft provides the Usbccid.sys mini-class driver to manage USB smart card readers. For more information about smart card drivers in Windows, see Smart Card Design Guide.

Note that for Windows Server 2003, Windows XP, and Windows 2000, special instructions are required for loading this driver because it might have been released later than the operating system.

Note Usbccid.sys driver has been replaced by UMDF driver, WUDFUsbccidDriver.dll.

WUDFUsbccidDriver.dll
WUDFUsbccidDriver.inf
Windows 8.1
Windows 8
WUDFUsbccidDriver.dll is a user-mode driver for USB CCID Smart Card Reader devices.
Content Security (0Dh)---Recommended driver: USB Generic Parent Driver (Usbccgp.sys). Some content security functionality is implemented in Usbccgp.sys. See Content Security Features in Usbccgp.sys.
Video (0Eh)Image
{6bdd1fc6-810f-11d0-bec7-08002be2092f}
Usbvideo.sys

Usbvideo.inf

Windows 10 for desktop editions

Windows Vista

Microsoft provides USB video class support by means of the Usbvideo.sys driver. For more information, see 'USB Video Class Driver' under AVStream Minidrivers.

Note that for Windows XP, special instructions are required for loading this driver because it might have been released later than the operating system.

Personal Healthcare (0Fh)---Recommended driver: WinUSB (Winusb.sys)
Audio/Video Devices (10h)----
Diagnostic Device (DCh)---Recommended driver: WinUSB (Winusb.sys)
Wireless Controller (E0h)

Note Supports Subclass 01h and Protocol 01h

Bluetooth

{e0cbf06c-cd8b-4647-bb8a-263b43f0f974}

Bthusb.sys

Bth.inf

Windows 10 for desktop editions
Windows 10 Mobile
Windows 8.1
Windows 8
Windows 7
Windows Vista
Microsoft provides the Bthusb.sys miniport driver to manage USB Bluetooth radios. For more information, see Bluetooth Design Guide.
Miscellaneous (EFh)Net

{4d36e972-e325-11ce-bfc1-08002be10318}

Note Supports SubClass 04h and Protocol 01h

Rndismp.sys
Rndismp.inf
Windows 10 for desktop editions
Windows 8.1
Windows 8
Windows 7
Windows Vista
Prior to Windows Vista, support for CDC is limited to the RNDIS-specific implementation of the Abstract Control Model (ACM) with a vendor-unique protocol (bInterfaceProtocol) value of 0xFF. The RNDIS facility centers the management of all 802-style network cards in a single class driver, Rndismp.sys. For a detailed discussion of remote NDIS, see Overview of Remote NDIS. The mapping of remote NDIS to USB is implemented in the Usb8023.sys driver. For further information about networking support in Windows, see the Networking and Wireless Technologies website.
Application Specific (FEh)---Recommended driver: WinUSB (Winusb.sys)
Vendor Specific (FFh)--Windows 10 for desktop editions
Windows 10 Mobile
Recommended driver: WinUSB (Winusb.sys)

Related topics

Contents

  • 2 Reference Hardware
  • 3 Reference Firmware
  • 5 The USB Generic HID C# Class Library
    • 5.1 Using the class-library

If you’ve dabbled with PIC18F microcontrollers and the USB Generic HID standard before (perhaps you’ve even tried my Building a PIC18F USB device project) then you will have noticed that there is a lot of complexity in supporting USB on both the PIC18F and the Windows host-side of things.

Getting beyond the basic steps of reading a switch and flashing an LED (how many projects have you built to flash LEDs?!) is actually quite a large task with a steep learning-curve.

To make things easier on the hobbyist who wishes to delve into more exciting projects, I’ve developed a framework for producing USB devices which covers both the Windows host-side application development and the PIC18F firmware itself. The framework consists of a Visual Studio C# class library (which handles all of the intricacy of dealing with the Windows specific SDKs and operating system requirements), a windows reference application (which demonstrates how to use the class library and acts as a testing front-end for the library), a simple USB hardware reference design and (last but not least!) a PIC18F4550 firmware which communicates with the class library.

In essence this means that you can rapidly develop and test a USB device and the Windows host-application with a minimum of USB Generic HID protocol knowledge. The class library gives you a very simple interface to the USB device from C# and the firmware serves as an example of how to create the specific software needed on the PIC for your device design.

The framework includes the ability to pass commands and responses to and from the USB device as well as bi-directional bulk-transfer of data allowing you to build more complex data-capture applications which require more information to be passed quickly from host to device and vice-versa.

In this article I will go over each element of the framework and show how you can use it to develop your own creative USB devices.

For the impatient, here is a quick YouTube video of the framework in action. The LCD driver example shown in the video can be downloaded below:

Version 3 of the USB library and firmware is now available (2011-10-16). I’ve made several major and minor enhancements to the library as well as some bug fixing. Here is a list of the enhancements and changes:

  • Firmware
    • Firmware is now targeted for the Microchip C18 compiler (and is no longer compatible with Hi-Tech PICC18)
    • Microchip’s Application Library (containing the USB stack) is now separated from the framework code and is installed standalone
    • The firmware now supports version 2.9a of the USB stack
    • Support for USB bootloaders is now included (lightly tested at the moment)
    • Both interrupt driven USB polling and non-interrupt driven USB polling are now supported
    • Debug stream now supports dynamic text so you can place live variables and other information into the in-built debug functions
    • Open-source firmware code now separated correctly from Microchip stack code
    • General code clean-up with better (and more concise) comments and notes
  • Host Reference Application
    • Fixed memory leakage issue in non-Managed code (readRawReportFromDevice method)
    • Changed the method used for registering to receive device event notifications. This is now handled by the library and does not need a WndProc override in the user code
    • General code clean-up

In addition I’ve also updated all of the circuit diagrams and included a new schematic for the PIC18F2550.

Please ensure that you specify which version of the USB framework you are using when asking for help in the comments.

The reference hardware is extremely simple and can be built on a breadboard if required. I’ve made the pin-out of the hardware identical to the PIC DEM FS USB board available from Microchip to allow you to buy a reference board (if you want to!), you can also use my clone of the Microchip board – the PIC USB Development Board. If you don’t have the time/money/inclination to make a reference board here is a circuit schematic of the minimum required hardware for the reference board for both the PIC18F4550 and PIC18F2550 microcontrollers:

PIC18F4550 Circuit Schematic

PIC18F2550 Circuit Schematic

Breadboard Layout

The next picture shows the reference hardware built on an experimenter’s breadboard (using the PIC18F4550):

The reference hardware provides 4 LEDs which are used to show the status of the USB device as it processes the various requests that can be sent to it from the Windows host-application. The 4 LEDs (from left-to-right) mean:

  1. Power is on – device is ready
  2. USB enumerated – device is ready to communicate
  3. Success indicator (this flashes as commands are correctly processed)
  4. Failure indicator (this flashes if a command was not correctly processed)

The board provides all you need to add in your own devices and circuity as you require, you can even remove the LEDs, the only part the firmware truly requires is the USB port and its associated hardware.

Self-Powered USB Devices

The reference hardware shown above is for a bus-powered USB device (it takes its power directly from the host computer). This requires the fewest parts and gives you a very simple circuit, however the current draw of the device is limited to 100mA. If you want to build devices that consume more power (to drive more hardware such as relays, motors, arrays of LEDs, etc.) you will need to make the device self-powered.

All systems Windows 10 x64 Windows 10 x86 Windows 8.1 x64 Windows 8.1 x86 Windows 8 x64 Windows 8 x86 Windows 7 x64 Windows 7 x86 Windows XP x86 VIA Telecom USB ETS 1.1.0.9 ( ) Download driver. Select Update Driver. If Windows doesn't find a new driver, you can try looking for one on the device manufacturer's website and follow their instructions. Reinstall the device driver. In the search box on the taskbar, enter device manager, then select Device Manager. Right-click (or press and hold) the name of the device, and select Uninstall. Mtp Usb Device Driver Windows 10 free download - MTP Device, USB Mass Storage Device, USB Video Device, and many more programs. Telecom usb devices driver download for windows 10

The following circuit schematic shows a simple self-powered version of the reference board. A LM7805 5V regulator is added to regulate the DC input. The 5V input from the USB bus is directed to RA0 on the PIC18F4550 which allows the firmware to detect when the USB cable is connected and disconnected. You can omit this power-sense feature, however that means that your firmware will need to constantly poll the USB stack to see if a cable is connected.

The reference firmware is based on Microchip’s USB stack version 2.9a. The firmware provides both the USB stack and a simple structure for building PIC18F USB HID firmware around. The firmware provided performs a number of tests (along with the Windows C# application) which allow quick verification that the firmware and application libraries are functioning correctly.

In the firmware you will find (located in the main.c source file) an implementation for several commands that are mirrored in the reference application:

  • 0x80: Single packet write to device – This command receives a single command and data packet from the host (which is 64 bytes long), the packet should contain the command byte (in the first byte of the packet) and then the numbers 1-63 in the remaining bytes. This allows the firmware to confirm that the whole packet was received correctly.
  • 0x81: Single packet read/write – This is similar to 0x80, however the firmware generates a return packet (filled with similar data) and passes it back to the host
  • 0x82: Single packet write, 128 packet read – This command receives a single packet from the host and, in return, sends back 128 64 byte packets containing data. This command simulates the requirements of bulk data transfer from the device to the host (for applications like data-capture, etc.)
  • 0x83: 128 packets write, single packet read – This command receives a command from the host followed by 128 64 byte packets containing data. This is basically the opposite of 0x82 where the host is bulk transferring data to the USB device (used in applications like display drivers, etc.)
  • 0x84: Single packet write, time-out on read – This command is a little different from the others. It’s used to simulate a failure scenario on the host-side where a command is sent and the host expects a reply, but the firmware does not reply (simulating a bug in the firmware). This really doesn’t do much on the PIC device side, but it is useful for testing what the host-application does when the event occurs.

Not only does the reference firmware provide a test environment for the host class library, but it also serves as an example of how to communicate bi-directionally with the host for both simple command and response as well as bulk data transfer.

The reference firmware is GPL’d open-source, so you are free to use it and adapt it to your requirements. Also if you have any suggestions for improvement I’d love to hear from you in the comments.

Installing and compiling the reference firmware

The reference firmware is targeted for the Microchip C18 compiler (and will not work with other PIC compilers without alteration). The firmware also relies on the Microchip USB stack (which is linked in enabling the code to be easily updated as new versions of the stack are release).

To install the firmware you will need to create a directory in which to place both the library and the firmware. You then have to run the Microchip Application Library installer and instruct it to install into a directory called “Microchip Solutions v2011-07-14” under the directory you created in the last step. The firmware is only tested against version 2.9a of the stack (which is contained in the v2011-07-14 installer) and you can download the library installer [http://ww1.microchip.com/downloads/en/softwarelibrary/microchip-application-libraries-v2011-07-14-windows-installer.exe here].

Next grab a copy of the firmware zip file (at the bottom of this article) and unzip it with the application library. If all goes well you should now have two sub-directories in the same directory called “Microchip Solutions v2011-07-14” and “USB_GenericHID_Firmware_3_0_0_0”. Now double-click on the “USB_GenericHID_Firmware_3_0_0_0” directory and load the project file USB_GenericHID_Firmware_3_0_0_0.mcp.

If you alter the relative location of either the library or the firmware you will need to change the include path in the firmware project to tell MPLAB where to find the application library. You can do this in MPLAB by going Project -> Build Options Project -> Directories -> Include search path and changing the relative path to match your set-up.

The reference application uses the C# class library to communicate with the reference firmware. It provides a simple interface to the 5 commands available allowing you to select which command you would like to send. The application also creates the commands and data to send to the device as well as interpreting the data and responses sent back by the firmware to confirm that everything worked as it should.

Here you can see the GUI interface from the reference application running on a computer with Windows 7:

The 5 tests correspond to the 5 commands provided by the firmware. When you click on a test button the command is sent to the firmware and both the firmware (through the success and failure LEDs) and the host (providing a ‘test passed’ or ‘test failed’ message) provides feedback on the success of the test.

Furthermore, the C# class library provides USB device ‘events’ to the application letting it know when the USB device is attached and detached from the host. This is tested by removing and plugging in the USB connector whilst watching the status bar at the bottom of the window. If all is well you should see ‘device attached’ and ‘device detached’ messages. Also, the application disables (greys-out) the test buttons when no device is found.

The underlying C# USB generic HID class-library provides a base-class on which to build applications. The reference application defines a class for its own ‘specialised’ USB device which then inherits all of the accessible functions from the base-class. The application then extends the base-class to include its own methods for communicating with the device. Simply put, the specialised class has to provide an interface from the commands the device must support (0x80, 0x81, etc.) to the ‘raw’ send and receive methods provided by the class library.

This allows you to be very flexible in how you communicate with the firmware since you are free to define your own commands in any way you like.

Steve-furiousteam usb devices driver download for windows 7

Whenever changes, bug-fixed or modifications are performed on the USB generic HID class-library you can use the reference firmware and application to test to ensure that the library is still functioning correctly, this saves a lot of time later on when unforeseen issues pop up (as they always do!).

There are two ways to approach the class-library namely “How do I use it?” and “How does it work?”.

If you are interested in the inner workings of the class library I suggest you load it up into Visual Studio and take a look at the code. I’ve tried to structure it as clearly as possible and also comment it well. Most of the complexity is borrowed, adapted and (in certain cases!) written from scratch. By making the class-library specific to the issues of Generic HID communication with microcontrollers I’ve managed to remove a lot of the complexity of writing truly generic drivers.

There is also a lot of built-in debugging information. If you compile the reference application in Visual Studio’s ‘debug’ mode you will see a complete log of the application (and class-library’s) activities once you exit the application.

Using the class-library

Once you’ve included the class library in your project (for an example of how to do this simply take a look at the reference application project files which are included below), you will need to add in some lines of C# code to your main form to get the class-library up and running.

First up is the code which needs to go into the class constructor of your main form (usually called Form1()):

This code does 3 things:

  1. Firstly it initiates the usbReferenceDevice class (which is a specialised form of the libraries base-class) and passes the VID and PID of the target device
  2. It adds a ‘listener’ function to the form which receives the events generated by the USB device (attach and detach events)
  3. Finally it performs a first-attempt at discovering the target USB device (the device might already be plugged in, so no notifications will be sent, even though the device is there)

Next up are two more items required by the class-library:

The first command generates an ‘instance’ of the usb device class which is used by the first code example to get the class up and running.

The second method is the USB event listener which is called by the class library when the USB device is detached or attached and allows the application to perform tasks such as updating the status bar and enabling/disabling form controls (this event driven method avoids the usual polling mechanisms most form-applications use to monitor the USB state and is far more efficient).

Once this is done you are free to add whichever windows, buttons and controls your application requires. The primary integration of the class library is deliberately as simple as possible. However to communicate with your USB device there is a little more work to be done.

To represent your own particular USB device you must generate a class which represents the device. This is as simple as adding a class to your project. The class must inherit the base library class and also define some methods to allow your application to communicate with the USB device. Don’t worry if this sounds complex, it really isn’t, and the reference application provides all the example code you need in the usbReferenceDevice.cs source file.

The first part of this class defines the class itself and creates it’s own ‘constructor’ to allow you to add in any initialisation your own device might need. The code looks like the following:

In the code example you can see the correct way of defining the class (using the class library as the base) and how to ‘pass-through’ the VID and PID from your constructor to the class library.

Once this is done you are free to add in whatever methods your device requires. Primarily, these will be methods which communicate to and from the device. In the reference application you have 5 example methods which use the four different communication commands supported by the reference firmware (as well as the 5th command which is purely for demonstrating how the class reacts to firmware bugs).

Here is an example method which sends a command to the USB device:

Steve-furiousteam usb devices driver download for windows 7

As you can see from the source it’s very simple, the class library takes care of all the details. You simply assemble the command and data you wish to send and call the write method, then all that’s left it to test the result to ensure it was successful.

Steve-furiousteam Usb Devices Driver Download For Windows 7

There are very few ‘public’ methods that the class provides, but here is a list of them and what they are used for:

findTargetDevice()

This method searches for the USB device based on the VID and PID which was supplied when the object was created.

handleDeviceNotificationMessages()

Steve-furiousteam Usb Devices Driver Download For Windows 8.1

This method deals with interpreting the windows notifications received by the application and seeing if they could relate to the USB device. If they do, then the method starts searching for the USB device, or registers it as detached dependent on the messages received.

onUsbEvent()

This method is part of the event mechanism used by the class-library to inform your application of the USB device being attached or detached.

readMultipleReportsFromDevice()

This method is used for incoming bulk data transfers, see the usbReferenceDevice.cs source file (in the reference application) for details of how this is used.

readSingleReportFromDevice()

This method is used to get a single report packet from the USB device. Again, usbReference.cs is the best place for an example of how it’s used.

registerForDeviceNotifications()

This method is used to instruct windows to send device notifications to your application (which are then picked up by handleDeviceNotificationMessages() for processing)

writeRawReportToDevice()

This method is used for sending commands and data to the USB device. Again, usbReference.cs is the best place for an example of how it’s used.

isDeviceAttached

This property can be tested to see if a USB device is present. It has a value of true if the device is attached and false if the device is detached.

The C# class-library and the reference application are both released under the GPL so you are free to use them and adapt them to your needs. I don’t pretend to be an expert in C# (!) so if you have any suggestions for improvements, or bug reports, let me know in the comments!

With a complete reference environment and test suite you have everything you need to create your own advanced USB projects. There is no end to the hardware you can interface to your PC using USB and PIC microcontrollers. Even if you’re not a great fan of the PIC, the class-library is generic to all microcontrollers which support Generic HID protocol communication.

Steve-furiousteam Usb Devices Driver Download For Windows 10

As with all learning-experiences, start simple and slow and gradually dig deeper in to the way the class-library operates and how Windows applications are created in C#. There are endless possibilities for your next hack!

Currently the class-library doesn’t support more than one USB device with the same VID and PID as this makes the device selection process more difficult (for both the library and the application). I’ve included some pretty comprehensive device enumeration methods in the class, so adding in support should be straight-forward. I hope to support this soon in an updated version of the library.

Visual Studio 2010 C# project files and source for the Reference Application and the Generic HID USB class-library version 3_0_0_0:

Download PCI Ethernet Drivers version A01 for Windows to net driver. 3Com EtherLink PCI Fiber NIC (3C900B-FL) 3Com EtherLink PCI TPO NIC (3C900B-TPO). 3Com EtherLink PCI Fiber NIC (3C900B-FL) 3Com EtherLink PCI TPO NIC (3C900B-TPO). Update Windows network adapter drivers for your Acer Ferrari laptop. 3com etherlink pci fiber nic (3c900b-fl) driver

The MPLAB PIC18F4550 firmware project and source files for Microchip C18:

Steve-furiousteam Usb Devices Driver Download For Windows Xp

The three schematic drawings featured in this article (in Eagle CAD format):

To demonstrate the flexibility of the framework I created a simple USB device which allow you to control an LCD display from Windows. The display is a simple HD44780 compatible 16×2 character display. Please see the PC Case USB LCD project page for more details.

Building a PIC18F USB device – Note: this is based on the old C++ library, I hope to update it soon

Steve-furiousteam USB Devices Driver Download For Windows

PC Case USB LCD – Note: this is based on the version 2 framework, I hope to update it soon

Open Source Visual C++ Class for USB Generic HID Communication – This project is obsolete, the C# library is the only version which is under current development.