Maker Pro
Maker Pro

USB test

V

Victor

Jan 1, 1970
0
Hello,

I'm searching for a PC software that to send commands through a USB port.
Does anyone know about one ?

Thanks.
V.
 
J

Joel Kolstad

Jan 1, 1970
0
Victor said:
I'm searching for a PC software that to send commands through a USB port.
Does anyone know about one ?

I'm assuming you mean, "from user mode?" If you only want to talk to HID
devices, in Windows XP and above you don't need any software -- it's built
into the OS. For arbitrary devices and commands, I've used DriverX USB in
the past, but it's not free. I believe there are some open-source packages
out there that do roughly the same thing, however -- I'm certain there are
for Linux, if that'll work for you.

I also seem to recall that supposedly in Vista there were going to open up
USB more completely in user mode, but I could just be making that up.

---Joel
 
V

Victor

Jan 1, 1970
0
Joel Kolstad a écrit :
I'm assuming you mean, "from user mode?" If you only want to talk to HID
devices, in Windows XP and above you don't need any software -- it's built
into the OS. For arbitrary devices and commands, I've used DriverX USB in
the past, but it's not free. I believe there are some open-source packages
out there that do roughly the same thing, however -- I'm certain there are
for Linux, if that'll work for you.

I also seem to recall that supposedly in Vista there were going to open up
USB more completely in user mode, but I could just be making that up.

---Joel
I don't understand what do you mean by "in Windows XP and above you
don't need any software"...
In fact I'm searching for something like "Docklight" but for USB...
 
R

Roger Hamlett

Jan 1, 1970
0
Victor said:
Hello,

I'm searching for a PC software that to send commands through a USB
port.
Does anyone know about one ?
The problem here is that USB, is not a simple interface like the serial
port. Everything is packetised, and involves layers of negotiation from
both ends. The 'host', will normally send a packet, with a type,
direction, device address, and endpoint number defined. Then there is a
packet either to or from the host (depending on direction), or a 'no data'
indication. Then there is an acknowledgement from the other end. There are
more complex forms with an extra packet.
At the driver 'end', there is the USB stack (handling the packets), and
then the PC side driver, talking to this.
There are a number of 'standard' packet forms (HID device etc.), where the
driver is present in Windows, and the simplest USB implementations, will
take advantage of these. A lot of the initial communication, is the same
whatever the device, so the hub driver, will receive a notification when a
device is attached, and automatically develops a 'request device
identifier' packet, and then sets up the initial 'pipe'.
A connection to a specific device, is a 'pipe', and you can generate an
IRP (I/O request packet), to the PC host controller, which then handles
the physical translation across the USB interface.
So the problem is that you can't just 'send a command', and expect
anything to happen. There has to be a complete packet, with all the
handling associated with this, and several parts of this will
automatically happen when a device is attached, without any further
software being needed.
There are dozens of 'USB monitor' applications (some free), which allow
you to snoop on the transactions, and in some cases allow them to be
displayed ordered by device, and command type. These are pretty much
essential when configuring a new device.

Best Wishes
 
V

Victor

Jan 1, 1970
0
Roger Hamlett a écrit :
The problem here is that USB, is not a simple interface like the serial
port. Everything is packetised, and involves layers of negotiation from
both ends. The 'host', will normally send a packet, with a type,
direction, device address, and endpoint number defined. Then there is a
packet either to or from the host (depending on direction), or a 'no data'
indication. Then there is an acknowledgement from the other end. There are
more complex forms with an extra packet.
At the driver 'end', there is the USB stack (handling the packets), and
then the PC side driver, talking to this.
There are a number of 'standard' packet forms (HID device etc.), where the
driver is present in Windows, and the simplest USB implementations, will
take advantage of these. A lot of the initial communication, is the same
whatever the device, so the hub driver, will receive a notification when a
device is attached, and automatically develops a 'request device
identifier' packet, and then sets up the initial 'pipe'.
A connection to a specific device, is a 'pipe', and you can generate an
IRP (I/O request packet), to the PC host controller, which then handles
the physical translation across the USB interface.
So the problem is that you can't just 'send a command', and expect
anything to happen. There has to be a complete packet, with all the
handling associated with this, and several parts of this will
automatically happen when a device is attached, without any further
software being needed.
There are dozens of 'USB monitor' applications (some free), which allow
you to snoop on the transactions, and in some cases allow them to be
displayed ordered by device, and command type. These are pretty much
essential when configuring a new device.

Best Wishes
Hi Roger and many thanks for all the explanations! I don't know much
about USB and thought I could find something like it exists for RS232.
In fact I'm working on a project that involves a PICDEM FS USB board
(from Microchip) and in a older project an ex-colleague was using a
basic GUI (using .NET) to send commands to the same board.

The problem now, is that we don't have the source code anymore (anyway I
haven't got a clue about programming with .NET...:) and the executable
is a little useless for me and moreover I can't get it working since it
throws me a "SecurityException" as soon as I run it.

Well, I've found something using Java (javax.usb) so I'll try a little
that way...

Bye.
 
Top