USB Development
Apparently, logging USB traffic for USB development requires the Logger utility for the USB Prober app. However, the logger utility must be loaded by the user for security or other reasons. I see online that Logger utility to match OS version up to 10.3.7 is made available by Apple, along with stern warnings to match your software version with the Utility version or suffer the consequences.
Where do I find the 10.9.3 USB logger utility?
I've found the IOUSBFamily Log Release for OS X 10.9.2
It seems registered vendors are given a monopoly for some months on new systems? Or is version 10.9.2 IOUSBFamily Log Release supposed to be loaded for version 10.9.3 OS? Or is the release just something that somebody somewhere at Apple has to get around to getting done after OS versions are released?
Similar Messages
-
XCode USB Development on 64bit. Writepipe Failing to send data
Hi,
I'm using writepipe for data transfer to my custom HID device on USB. When I build the app in Xcode on OSX Lion and boot my Mac in 32 bit mode then the HID data transfer with writepipe works fine. But when I boot my Mac in 64 bit mode and run my app in XCode writepipe returns with errors "404f" and "2ed".
I've had a various look at other forums and there's nothing out there helpful. Why would writepipe work in 32 bit mode but not in 64 bit mode?
Are there alternatives to writepipe? I don't want to get a USB analyzer to see what the data is doing. Is this a timing issue if so what does Lion 64 bit do different to Lion 32 bit?
Regards,
SajThe Developer Forum is here https://discussions.apple.com/community/developer_forums
Might be best to ask there.
Stefan -
XCode HID USB Development on 64bit. Writepipe Failing to send data
Hi,
I'm using writepipe for data transfer to my custom HID device on USB. When I build the app in Xcode on OSX Lion and boot my Mac in 32 bit mode then the HID data transfer with writepipe works fine. But when I boot my Mac in 64 bit mode and run my app in XCode writepipe returns with errors "404f" and "2ed".
I've had a various look at other forums and there's nothing out there helpful. Why would writepipe work in 32 bit mode but not in 64 bit mode?
Are there alternatives to writepipe? I don't want to get a USB analyzer to see what the data is doing. Is this a timing issue if so what does Lion 64 bit do different to Lion 32 bit?
Regards,
SajK T wrote:
Have you used USBProber to sniff the connection for clues?
Hi,
I have tried the USB Prober (but this doesn't seem to give any useful feedback) and also the usbtracer program. I have looked at various forums online and below is a common response.
" The main architectureal difference between the 27" i7 iMac (as well as any of the new MacBook Pro's 15" and 17") is that there are no OHCI or UHCI USB controllers; there are 2 EHCI controllers, along with 2 high speed hubs inside the machine. That means that any device that you attach will be attached to the high speed hub. All devices are still supported, but now they are ultimately attached to the high speed controller and so the low level timing might be different. They are also attached through a hub and not directly to the root hub (even high speed devices).
The errors that you describe indicate that the device is either not responding to the requests or stalling the requests.
My question is why can I transfer data in 32 bit mode on the same machine, yet in 64 bit I cannot. The above response doesnt seem to answer that because writepipe works fine in 32 bit mode on the same machine. Is USB timing different in 32 bit mode regardless of the architectureal difference ?
Below is snippet of the usbtracer tool output:
32521.035 EHCI::powerChangeDone (0xffffff8007dae000) from state (4) to state (4)
32521.060 -> Controller::Control Start (0xffffff8007dae000) Bus: 0xfa, Address: 2, Endpoint: 0, (out) bmRequestType: 0x23, bRequest: 0x03, wValue: 0x0004, wIndex: 0x0003, wLength: 0x0000
32521.095 <- Controller::Control End (0xffffff8007dae000) error 0x0
32521.114 EHCI::Primary Interrupt (0xffffff8007dae000) enabledInterrupts 0x0000001f activeInterrupts 0x00000001, Frame: 206478, microframe: 1
32521.164 -> EHCI::Begin PollInterrupts (0xffffff8007dae000) _errorInterrupt 0 _completeInterrupt 1 _portChangeInterrupt 0
32521.165 EHCI::PollInterrupts (0xffffff8007dae000) Completion Interrupt
32521.168 -> Controller::Return Isoc Done Q Start (0xffffff8007dae000) pEP 0x7f9e300 pTD 0x0
32521.169 <- Controller::Return Isoc Done Q End (0xffffff8007dae000)
32521.170 -> Controller::Return Isoc Done Q Start (0xffffff8007dae000) pEP 0x7f9e400 pTD 0x0
32521.170 <- Controller::Return Isoc Done Q End (0xffffff8007dae000)
32521.175 Controller::Complete (0xffffff8007dae000) completion: 0xffffff7f809754fe, status: 0x0
32521.176 -> Controller::PacketHandler (0xffffff8007dae000) Bus: 0xfa, Address: 2, Endpoint: 0 status 0x0 bufferSizeRemaining 0
32521.177 <- Controller::PacketHandler (0xffffff8007dae000) Bus: 0xfa, Address: 2, Endpoint: 0 todo 0x40 status 0x0
32521.178 Controller::Complete (0xffffff8007dae000) completion: 0xffffff7f809754fe, status: 0x0
32521.178 -> Controller::PacketHandler (0xffffff8007dae000) Bus: 0xfa, Address: 2, Endpoint: 0 status 0x0 bufferSizeRemaining 0
32521.189 Controller::Complete (0xffffff8007dae000) completion: 0xffffff7f8096fb25, status: 0x0
32521.194 <- Controller::PacketHandler (0xffffff8007dae000) Bus: 0xfa, Address: 2, Endpoint: 0 todo 0x0 status 0x0
32521.208 EHCI::PollInterrupts (0xffffff8007dae000) Frame Rollover Interrupt
32521.209 <- EHCI::End PollInterrupts (0xffffff8007dae000)
32521.260 EHCI::powerChangeDone (0xffffff8007dae000) from state (4) to state (4)
32523.382 OutstandingIO::HubDecrement (0xffffff8007f6cc00) serial #: 549, IO: 1, needInterruptRead: no
32523.505 EHCI::Primary Interrupt (0xffffff8007dae000) enabledInterrupts 0x0000001f activeInterrupts 0x00000003, Frame: 206480, microframe: 1
32523.531 -> EHCI::Begin PollInterrupts (0xffffff8007dae000) _errorInterrupt 2 _completeInterrupt 1 _portChangeInterrupt 0
32523.532 EHCI::PollInterrupts (0xffffff8007dae000) Error Interrupt
32523.536 -> Controller::Return Isoc Done Q Start (0xffffff8007dae000) pEP 0x7f9e300 pTD 0x0
32523.537 <- Controller::Return Isoc Done Q End (0xffffff8007dae000)
32523.538 -> Controller::Return Isoc Done Q Start (0xffffff8007dae000) pEP 0x7f9e400 pTD 0x0
32523.539 <- Controller::Return Isoc Done Q End (0xffffff8007dae000)
32523.556 Controller::Complete (0xffffff8007dae000) completion: 0xffffff7f80973952, status: 0xe00002ed
32523.562 Controller::Interrupt Complete (0xffffff8007dae000) Bus: 0xfa, Address: 5, Endpoint: 1, (in) actual: 0, status: 0xe00002ed
32523.570 Controller::CompleteTS (0xffffff8007dae000) completion: 0xffffff7f80af89c2, status: 0xe00002ed
32523.573 HID::InterruptRead (0xffffff8009648400) error: 0xe00002ed, _deviceHasBeenDisconnected = 0
32523.578 HID::InterruptRead (0xffffff8009648400) Checking to see if HID device is still connected
32523.617 -> Controller::Interrupt Start (0xffffff8007dae000) Bus: 0xfa, Address: 5, Endpoint: 1, (in) reqCount: 50
32523.624 <- Controller::Interrupt End (0xffffff8007dae000) error 0x0, (completion timeout: 0, noData timeout: 0)
32523.625 HID::RearmInterruptRead (0xffffff8009648400) returning error 0x0
32523.635 EHCI::PollInterrupts (0xffffff8007dae000) Completion Interrupt
32523.636 -> Controller::Return Isoc Done Q Start (0xffffff8007dae000) pEP 0x7f9e300 pTD 0x0
32523.636 <- Controller::Return Isoc Done Q End (0xffffff8007dae000)
32523.637 -> Controller::Return Isoc Done Q Start (0xffffff8007dae000) pEP 0x7f9e400 pTD 0x0
32523.637 <- Controller::Return Isoc Done Q End (0xffffff8007dae000)
32523.645 <- EHCI::End PollInterrupts (0xffffff8007dae000)
32523.706 HID::CheckForDeadDevice (0xffffff8009648400) _retryCount: 3, _deviceHasBeenDisconnected = 0
32523.736 -> Controller::Control Start (0xffffff8007dae000) Bus: 0xfa, Address: 2, Endpoint: 0, (in) bmRequestType: 0xa3, bRequest: 0x00, wValue: 0x0000, wIndex: 0x0003, wLength: 0x0004
32523.738 EHCI::powerChangeDone (0xffffff8007dae000) from state (4) to state (4)
32523.767 <- Controller::Control End (0xffffff8007dae000) error 0x0
32523.861 EHCI::Primary Interrupt (0xffffff8007dae000) enabledInterrupts 0x0000001f activeInterrupts 0x00000001, Frame: 206480, microframe: 1
32523.901 -> EHCI::Begin PollInterrupts (0xffffff8007dae000) _errorInterrupt 0 _completeInterrupt 1 _portChangeInterrupt 0
32523.901 EHCI::PollInterrupts (0xffffff8007dae000) Completion Interrupt
32523.902 -> Controller::Return Isoc Done Q Start (0xffffff8007dae000) pEP 0x7f9e300 pTD 0x0
32523.903 <- Controller::Return Isoc Done Q End (0xffffff8007dae000)
32523.903 -> Controller::Return Isoc Done Q Start (0xffffff8007dae000) pEP 0x7f9e400 pTD 0x0
32523.903 <- Controller::Return Isoc Done Q End (0xffffff8007dae000)
32523.904 Controller::Complete (0xffffff8007dae000) completion: 0xffffff7f809754fe, status: 0x0
32523.905 -> Controller::PacketHandler (0xffffff8007dae000) Bus: 0xfa, Address: 2, Endpoint: 0 status 0x0 bufferSizeRemaining 0
32523.905 <- Controller::PacketHandler (0xffffff8007dae000) Bus: 0xfa, Address: 2, Endpoint: 0 todo 0x60 status 0x0
32523.906 Controller::Complete (0xffffff8007dae000) completion: 0xffffff7f809754fe, status: 0x0
32523.906 -> Controller::PacketHandler (0xffffff8007dae000) Bus: 0xfa, Address: 2, Endpoint: 0 status 0x0 bufferSizeRemaining 0
32523.906 <- Controller::PacketHandler (0xffffff8007dae000) Bus: 0xfa, Address: 2, Endpoint: 0 todo 0x40 status 0x0
32523.906 Controller::Complete (0xffffff8007dae000) completion: 0xffffff7f809754fe, status: 0x0
32523.906 -> Controller::PacketHandler (0xffffff8007dae000) Bus: 0xfa, Address: 2, Endpoint: 0 status 0x0 bufferSizeRemaining 0
32523.909 Controller::Packet Handler (0x0000000000000000) Bus: 0xfa, Address: 2, Endpoint: 0, (out) length: 4, data: 0x1101000000000000 0x0000000000000000
32523.913 Controller::Complete (0xffffff8007dae000) completion: 0xffffff7f8096fb25, status: 0x0
32523.916 <- Controller::PacketHandler (0xffffff8007dae000) Bus: 0xfa, Address: 2, Endpoint: 0 todo 0x0 status 0x0
32523.923 <- EHCI::End PollInterrupts (0xffffff8007dae000)
32523.939 HID::CheckForDeadDevice (0xffffff8009648400) GetDeviceInformation returned info: 0x48, retryCount: 3
32523.939 HID::CheckForDeadDevice (0xffffff8009648400) device is still connected (and enabled) _retryCount: 3
32523.940 HID::CheckForDeadDevice (0xffffff8009648400) Still connected but retry count (2) not reached
32523.949 EHCI::powerChangeDone (0xffffff8007dae000) from state (4) to state (4)
32526.618 EHCI::Primary Interrupt (0xffffff8007dae000) enabledInterrupts 0x0000001f activeInterrupts 0x00000003, Frame: 206483, microframe: 1
32526.665 -> EHCI::Begin PollInterrupts (0xffffff8007dae000) _errorInterrupt 2 _completeInterrupt 1 _portChangeInterrupt 0
32526.666 EHCI::PollInterrupts (0xffffff8007dae000) Error Interrupt
32526.672 -> Controller::Return Isoc Done Q Start (0xffffff8007dae000) pEP 0x7f9e300 pTD 0x0
32526.672 <- Controller::Return Isoc Done Q End (0xffffff8007dae000)
32526.673 -> Controller::Return Isoc Done Q Start (0xffffff8007dae000) pEP 0x7f9e400 pTD 0x0
32526.674 <- Controller::Return Isoc Done Q End (0xffffff8007dae000)
32526.689 Controller::Complete (0xffffff8007dae000) completion: 0xffffff7f80973952, status: 0xe00002ed
32526.694 Controller::Interrupt Complete (0xffffff8007dae000) Bus: 0xfa, Address: 5, Endpoint: 1, (in) actual: 0, status: 0xe00002ed
32526.699 Controller::CompleteTS (0xffffff8007dae000) completion: 0xffffff7f80af89c2, status: 0xe00002ed
32526.702 HID::InterruptRead (0xffffff8009648400) error: 0xe00002ed, _deviceHasBeenDisconnected = 0
32526.705 HID::InterruptRead (0xffffff8009648400) Checking to see if HID device is still connected
32526.741 -> Controller::Interrupt Start (0xffffff8007dae000) Bus: 0xfa, Address: 5, Endpoint: 1, (in) reqCount: 50
32526.748 <- Controller::Interrupt End (0xffffff8007dae000) error 0x0, (completion timeout: 0, noData timeout: 0)
32526.749 HID::RearmInterruptRead (0xffffff8009648400) returning error 0x0
32526.759 EHCI::PollInterrupts (0xffffff8007dae000) Completion Interrupt
32526.760 -> Controller::Return Isoc Done Q Start (0xffffff8007dae000) pEP 0x7f9e300 pTD 0x0
32526.760 <- Controller::Return Isoc Done Q End (0xffffff8007dae000)
32526.761 -> Controller::Return Isoc Done Q Start (0xffffff8007dae000) pEP 0x7f9e400 pTD 0x0
32521.035 EHCI::powerChangeDone (0xffffff8007dae000) from state (4) to state (4)
32521.060 -> Controller::Control Start (0xffffff8007dae000) Bus: 0xfa, Address: 2, Endpoint: 0, (out) bmRequestType: 0x23, bRequest: 0x03, wValue: 0x0004, wIndex: 0x0003, wLength: 0x0000
32521.095 <- Controller::Control End (0xffffff8007dae000) error 0x0
32521.114 EHCI::Primary Interrupt (0xffffff8007dae000) enabledInterrupts 0x0000001f activeInterrupts 0x00000001, Frame: 206478, microframe: 1
32521.164 -> EHCI::Begin PollInterrupts (0xffffff8007dae000) _errorInterrupt 0 _completeInterrupt 1 _portChangeInterrupt 0
32521.165 EHCI::PollInterrupts (0xffffff8007dae000) Completion Interrupt
32521.168 -> Controller::Return Isoc Done Q Start (0xffffff8007dae000) pEP 0x7f9e300 pTD 0x0
32521.169 <- Controller::Return Isoc Done Q End (0xffffff8007dae000)
32521.170 -> Controller::Return Isoc Done Q Start (0xffffff8007dae000) pEP 0x7f9e400 pTD 0x0
32521.170 <- Controller::Return Isoc Done Q End (0xffffff8007dae000)
32521.175 Controller::Complete (0xffffff8007dae000) completion: 0xffffff7f809754fe, status: 0x0
32521.176 -> Controller::PacketHandler (0xffffff8007dae000) Bus: 0xfa, Address: 2, Endpoint: 0 status 0x0 bufferSizeRemaining 0
32521.177 <- Controller::PacketHandler (0xffffff8007dae000) Bus: 0xfa, Address: 2, Endpoint: 0 todo 0x40 status 0x0
32521.178 Controller::Complete (0xffffff8007dae000) completion: 0xffffff7f809754fe, status: 0x0
32521.178 -> Controller::PacketHandler (0xffffff8007dae000) Bus: 0xfa, Address: 2, Endpoint: 0 status 0x0 bufferSizeRemaining 0
32521.189 Controller::Complete (0xffffff8007dae000) completion: 0xffffff7f8096fb25, status: 0x0
32521.194 <- Controller::PacketHandler (0xffffff8007dae000) Bus: 0xfa, Address: 2, Endpoint: 0 todo 0x0 status 0x0
32521.208 EHCI::PollInterrupts (0xffffff8007dae000) Frame Rollover Interrupt
32521.209 <- EHCI::End PollInterrupts (0xffffff8007dae000)
32521.260 EHCI::powerChangeDone (0xffffff8007dae000) from state (4) to state (4)
32523.382 OutstandingIO::HubDecrement (0xffffff8007f6cc00) serial #: 549, IO: 1, needInterruptRead: no
32523.505 EHCI::Primary Interrupt (0xffffff8007dae000) enabledInterrupts 0x0000001f activeInterrupts 0x00000003, Frame: 206480, microframe: 1
32523.531 -> EHCI::Begin PollInterrupts (0xffffff8007dae000) _errorInterrupt 2 _completeInterrupt 1 _portChangeInterrupt 0
32523.532 EHCI::PollInterrupts (0xffffff8007dae000) Error Interrupt
32523.536 -> Controller::Return Isoc Done Q Start (0xffffff8007dae000) pEP 0x7f9e300 pTD 0x0
32523.537 <- Controller::Return Isoc Done Q End (0xffffff8007dae000)
32523.538 -> Controller::Return Isoc Done Q Start (0xffffff8007dae000) pEP 0x7f9e400 pTD 0x0
32523.539 <- Controller::Return Isoc Done Q End (0xffffff8007dae000)
32523.556 Controller::Complete (0xffffff8007dae000) completion: 0xffffff7f80973952, status: 0xe00002ed
32523.562 Controller::Interrupt Complete (0xffffff8007dae000) Bus: 0xfa, Address: 5, Endpoint: 1, (in) actual: 0, status: 0xe00002ed
32523.570 Controller::CompleteTS (0xffffff8007dae000) completion: 0xffffff7f80af89c2, status: 0xe00002ed
32523.573 HID::InterruptRead (0xffffff8009648400) error: 0xe00002ed, _deviceHasBeenDisconnected = 0
32523.578 HID::InterruptRead (0xffffff8009648400) Checking to see if HID device is still connected
32523.617 -> Controller::Interrupt Start (0xffffff8007dae000) Bus: 0xfa, Address: 5, Endpoint: 1, (in) reqCount: 50
32523.624 <- Controller::Interrupt End (0xffffff8007dae000) error 0x0, (completion timeout: 0, noData timeout: 0)
32523.625 HID::RearmInterruptRead (0xffffff8009648400) returning error 0x0
32523.635 EHCI::PollInterrupts (0xffffff8007dae000) Completion Interrupt
32523.636 -> Controller::Return Isoc Done Q Start (0xffffff8007dae000) pEP 0x7f9e300 pTD 0x0
32523.636 <- Controller::Return Isoc Done Q End (0xffffff8007dae000)
32523.637 -> Controller::Return Isoc Done Q Start (0xffffff8007dae000) pEP 0x7f9e400 pTD 0x0
32523.637 <- Controller::Return Isoc Done Q End (0xffffff8007dae000)
32523.645 <- EHCI::End PollInterrupts (0xffffff8007dae000)
32523.706 HID::CheckForDeadDevice (0xffffff8009648400) _retryCount: 3, _deviceHasBeenDisconnected = 0
32523.736 -> Controller::Control Start (0xffffff8007dae000) Bus: 0xfa, Address: 2, Endpoint: 0, (in) bmRequestType: 0xa3, bRequest: 0x00, wValue: 0x0000, wIndex: 0x0003, wLength: 0x0004
32523.738 EHCI::powerChangeDone (0xffffff8007dae000) from state (4) to state (4)
32523.767 <- Controller::Control End (0xffffff8007dae000) error 0x0
32523.861 EHCI::Primary Interrupt (0xffffff8007dae000) enabledInterrupts 0x0000001f activeInterrupts 0x00000001, Frame: 206480, microframe: 1
32523.901 -> EHCI::Begin PollInterrupts (0xffffff8007dae000) _errorInterrupt 0 _completeInterrupt 1 _portChangeInterrupt 0
32523.901 EHCI::PollInterrupts (0xffffff8007dae000) Completion Interrupt
32523.902 -> Controller::Return Isoc Done Q Start (0xffffff8007dae000) pEP 0x7f9e300 pTD 0x0
32523.903 <- Controller::Return Isoc Done Q End (0xffffff8007dae000)
32523.903 -> Controller::Return Isoc Done Q Start (0xffffff8007dae000) pEP 0x7f9e400 pTD 0x0
32523.903 <- Controller::Return Isoc Done Q End (0xffffff8007dae000)
32523.904 Controller::Complete (0xffffff8007dae000) completion: 0xffffff7f809754fe, status: 0x0
32523.905 -> Controller::PacketHandler (0xffffff8007dae000) Bus: 0xfa, Address: 2, Endpoint: 0 status 0x0 bufferSizeRemaining 0
32523.905 <- Controller::PacketHandler (0xffffff8007dae000) Bus: 0xfa, Address: 2, Endpoint: 0 todo 0x60 status 0x0
32523.906 Controller::Complete (0xffffff8007dae000) completion: 0xffffff7f809754fe, status: 0x0
32523.906 -> Controller::PacketHandler (0xffffff8007dae000) Bus: 0xfa, Address: 2, Endpoint: 0 status 0x0 bufferSizeRemaining 0
32523.906 <- Controller::PacketHandler (0xffffff8007dae000) Bus: 0xfa, Address: 2, Endpoint: 0 todo 0x40 status 0x0
32523.906 Controller::Complete (0xffffff8007dae000) completion: 0xffffff7f809754fe, status: 0x0
32523.906 -> Controller::PacketHandler (0xffffff8007dae000) Bus: 0xfa, Address: 2, Endpoint: 0 status 0x0 bufferSizeRemaining 0
32523.909 Controller::Packet Handler (0x0000000000000000) Bus: 0xfa, Address: 2, Endpoint: 0, (out) length: 4, data: 0x1101000000000000 0x0000000000000000
32523.913 Controller::Complete (0xffffff8007dae000) completion: 0xffffff7f8096fb25, status: 0x0
32523.916 <- Controller::PacketHandler (0xffffff8007dae000) Bus: 0xfa, Address: 2, Endpoint: 0 todo 0x0 status 0x0
32523.923 <- EHCI::End PollInterrupts (0xffffff8007dae000)
32523.939 HID::CheckForDeadDevice (0xffffff8009648400) GetDeviceInformation returned info: 0x48, retryCount: 3
32523.939 HID::CheckForDeadDevice (0xffffff8009648400) device is still connected (and enabled) _retryCount: 3
32523.940 HID::CheckForDeadDevice (0xffffff8009648400) Still connected but retry count (2) not reached
32523.949 EHCI::powerChangeDone (0xffffff8007dae000) from state (4) to state (4)
32526.618 EHCI::Primary Interrupt (0xffffff8007dae000) enabledInterrupts 0x0000001f activeInterrupts 0x00000003, Frame: 206483, microframe: 1
32526.665 -> EHCI::Begin PollInterrupts (0xffffff8007dae000) _errorInterrupt 2 _completeInterrupt 1 _portChangeInterrupt 0
32526.666 EHCI::PollInterrupts (0xffffff8007dae000) Error Interrupt
32526.672 -> Controller::Return Isoc Done Q Start (0xffffff8007dae000) pEP 0x7f9e300 pTD 0x0
32526.672 <- Controller::Return Isoc Done Q End (0xffffff8007dae000)
32526.673 -> Controller::Return Isoc Done Q Start (0xffffff8007dae000) pEP 0x7f9e400 pTD 0x0
32526.674 <- Controller::Return Isoc Done Q End (0xffffff8007dae000)
32526.689 Controller::Complete (0xffffff8007dae000) completion: 0xffffff7f80973952, status: 0xe00002ed
32526.694 Controller::Interrupt Complete (0xffffff8007dae000) Bus: 0xfa, Address: 5, Endpoint: 1, (in) actual: 0, status: 0xe00002ed
32526.699 Controller::CompleteTS (0xffffff8007dae000) completion: 0xffffff7f80af89c2, status: 0xe00002ed
32526.702 HID::InterruptRead (0xffffff8009648400) error: 0xe00002ed, _deviceHasBeenDisconnected = 0
32526.705 HID::InterruptRead (0xffffff8009648400) Checking to see if HID device is still connected
32526.741 -> Controller::Interrupt Start (0xffffff8007dae000) Bus: 0xfa, Address: 5, Endpoint: 1, (in) reqCount: 50
32526.748 <- Controller::Interrupt End (0xffffff8007dae000) error 0x0, (completion timeout: 0, noData timeout: 0)
32526.749 HID::RearmInterruptRead (0xffffff8009648400) returning error 0x0
32526.759 EHCI::PollInterrupts (0xffffff8007dae000) Completion Interrupt
32526.760 -> Controller::Return Isoc Done Q Start (0xffffff8007dae000) pEP 0x7f9e300 pTD 0x0
32526.760 <- Controller::Return Isoc Done Q End (0xffffff8007dae000)
32526.761 -> Controller::Return Isoc Done Q Start (0xffffff8007dae000) pEP 0x7f9e400 pTD 0x0
The error "0xe00002ed" is listed above:
32523.556 Controller::Complete (0xffffff8007dae000) completion: 0xffffff7f80973952, status: 0xe00002ed
32523.562 Controller::Interrupt Complete (0xffffff8007dae000) Bus: 0xfa, Address: 5, Endpoint: 1, (in) actual: 0, status: 0xe00002ed
32523.570 Controller::CompleteTS (0xffffff8007dae000) completion: 0xffffff7f80af89c2, status: 0xe00002ed
32523.573 HID::InterruptRead (0xffffff8009648400) error: 0xe00002ed, _deviceHasBeenDisconnected = 0
What does any of this mean? I do not want to re-write my app but rather would like to understand what WRITEPIPE is doing different in 32 and 64 bit.
Regards,
Saj -
Microchip (TM) PICKit 2 USB Driver, HID attachment?
Hunting for resources to program PIC embedded microcontrollers on macs, ran into microchip's way cheap PICKit 2 USB programmer:
http://microchip.com/stellent/idcplg?IdcService=SSGETPAGE&nodeId=1406&dDocName=en023805
They publish the source and Xcode project for an unsupported Mac tool that drives the PICkit 1 usb programmer from userland
http://www.aeria.net/pub/PICkit2dev.zip
however, after building it, changing the usbProduct #define to reflect the new device and tracing the output I'm finding that all writes to the device fail becuase something else claimed the programmer endpoints in exclusive mode usb
usb io trace follows (can provide buckets of debugging on request):
Timestamp Lvl Message
3.822 [1] [0x2e15c00]::start - USB HID Interface #0 of device PICkit 2 Microcontroller Programmer @ 2 (0x19100000)
3.837 [1] IOUSBInterface[0x1a25100]::handleOpen failing because super::handleOpen failed (someone already has it open)
3.837 [1] IOUSBInterface[0x1a25100]::open super::open failed (0x0)
The Questions:
Has someone allready done this? For this device? Which device does it work on?
Why did microchip call a chip programmer a HID device?
Why did the apple HID framework attach the device when it has no HID compliant controls?
Can I get the Apple HID controls to release the programmer or not to attach at all?
(or) I have to write a kext/driver stack to match the vendor/product/model exactly to force the point?
Background:
This project would enable high visibility robotics and educational applications that permit interfacing robotics and telematics with high level programming. (RE: build your own robot to enter a contest or collect your socks). The programmer downloads machine code to little embedded computers (PIC chips) that you can then instruct it to perform neat things that may earn you sex appeal or peer acclaim in the correct circles.
Many Macs Mac OS X (10.4.3)The Questions:
Has someone allready done this? For this device? Which device does it work on?
I don't know.
Why did microchip call a chip programmer a HID device?
It is one of the easiest ways to implement a simple USB device. Whether it has buttons, wheels or indicators on it is irrelevant. It can be something other than a mouse or keyboard.
Why did the apple HID framework attach the device when it has no HID compliant controls?
The device presumably declares itself to be a HID class device. Therefore it gets the HID driver.
Can I get the Apple HID controls to release the programmer or not to attach at all?
(or) I have to write a kext/driver stack to match the vendor/product/model exactly to force the point?
Yes. You need a "codeless kext" to match vid/pid of the device. The basic idea is to make a "driver" with no executable, so the system's kernel HID driver doesn't match against the device. This gives your userland driver a chance.
See lists.apple.com and search the USB development list for more.
hope this helps, Stuart -
How to develop dll towards VB and Delphi for vi's of a third-part usb device
Hello, dear lv'ers:
Recently i am evolved in a project where i want to reuse my developed ac measurement modules (certainly in .vi format) in target computers. The related information has been collected below:
0) Develope machine: win7, lv2010 sp1 development suite bought last year, third-part usb devices (Rigol DG1022 for instance, recognized in MAX as USB0::0x0957::0x0407::MY44012174::INSTR), ac measurement vi's with VISA function calling.
1) Target computer A: MultiVu for squid vsm from QD(quantum design) bought in 2009, allowing third-part extension script written in visual basic .bas format. MAX was installed by QD, but our third-part usb devices could unfortunately not be recognized and assigned a visa resource name.
2) Target computer B: MultiVu for squid-xl from QD bought 2007, allowing third-part extension script writen in Delphi .dpr format. Its MAX has the same problem.
i have got familiar with extending such two MultiVu's for dc measurement based on Keithley 2400 & 2182, successfully using VB and Delphi, respectively. Such dc module has nothing to do with labview and has already installed with GPIB interface in MAX.
i have already overviewed some related posts here for dll building for VB and Delphi, and i could build my hellow-world dll for vb(simply following reversstring one in ni knowledgebase). However, at the moment, my main concerning is how to build dll's installation package for our two target computers, so that they can use the third-part usb devices as in my development machine?
Your answers, direct or indirectly, would be quite appreciated.
Faithfully
Jun Lu
Member of Technical Staff in State Key Laboratory of Magnetism
Beijing National Laboratory for Condensed Matter Physics
Institute of Physics, Chinese Academy of Sciences
100190 Beijing, P.R. China
http://www.instrument.com.cn/ilog/handsomeland/Probably, i have just got a solution for this problem.
The way seems quite simple: what i need to do, before importing dll or exe files, is installing a VISA 4.0 (http://download.ni.com/support/softlib/visa/NI-VISA/4.0/win32/visa400full.exe) in target computers, which can communicate fine with our devices.
Afterwards, you know, everthing goes ok as does in the development computer.
When i got further problems, i shall return here. :-). -
I have an embedded application running on a iMX31 (ARM 11) that does fairly high performance analog input (24 bit, 50K samples/second). I use Microsoft Visual Studio 2005 C/C++ for the develoment environment and have currently built versions of the application for Win CE 5.0 and 6.0 without Labview or NI hardware. I have used the NI 9234 with great success on several Labview applications in the past and I'd like to use the 9234 on this embedded application with VS2005 C/C++. The NI documentation hints that I should be able to do this (maybe I'm overly optimistic) and I'm wondering if anyone else has? I've tried the Evaluation versions of Labview Mobile and Labview Touch panel to build a C application using the NI DAQmx base C function inside Visual Studio without success. I can compile and link the ContAcq IntClk LV example project for an x86 platform using NIDAQmx but not for a ARM platform using NIDAQmxbase.lib. I get the same linker error error LNK2019: unresolved external symbol referred to in Knowledge Base Document ID 4HAEE7QQ even though I've set up (or think I've set up ) VS2005 as the KB article indicates.
If anyone has used the C functions and NIDAQmxbase library inside a VS2005 Smart Device project, I'd greatly appreciate your comments.
ThanksHello Gene,
I have been checking into this for you and have found out that what you are trying to do cannot be done. At least not in the current manner you are hoping for. The internal architecture of DAQmx Base requires the cross-compiling capability of the LabVIEW Mobile Module. While a stand-alone compiler can compile DAQmx Base calls for desktop processors, it cannot compile DAQmx Base calls for ARM.
If your application requirements exclude the LabVIEW toolchain, then the remaining option is the USB Driver Development Kit which is avaliable here, but you will have to contact your local field sales representative to discuss support
options as standard phone and e-mail support are not available for the
NI Measurement Hardware DDK.
NI Measurement Hardware Driver Development Kit
http://digital.ni.com/express.nsf/bycode/exyv4w?opendocument&lang=en&node=seminar_US
ColeR
Field Engineer -
Is there a USB Instrument driver developer tool for CVI
Is there a USB instrument driver developer tool/guide for CVI?
Thanks
Chip B.
Solved!
Go to Solution.Hi! ASIC LabRat,
I agree with your comment. IVI drivers take too much overhead and the executing speed can be very slow compared to the drivers developed using VISA platform. The previous link sent by the NI engineer was very old (2001) and doesn't really help you at all.
Please take a look at this one instead: http://zone.ni.com/devzone/cda/tut/p/id/4713. -
USB driver development using DDK
I heard that Sun Blade 1000 supports USB.
To connect our product with Sun machine through USB, we are trying to develop USB device driver using DDK for Solaris.
Please let me know that present DDK supports USB device driver development.
Thank you in advance.You may want to look at
http://soldc.sun.com/developer/support/driver/docs/whitepapers.html
There are a couple of whitepapers on the subject
Regards,
Cyril
I heard that Sun Blade 1000 supports USB.
To connect our product with Sun machine through USB,
we are trying to develop USB device driver using DDK
for Solaris.
Please let me know that present DDK supports USB
device driver development.
Thank you in advance. -
Hi,
Before going any further in my research, I want to know the views and opinions about the intent of my work I am about to start.
AIM : I am trying to interface an external uvc camera with the ipad 2 and iphone .Just like in android there is a node(in unix and linux everythign is a file)which gets created in the /dev/ directory which can be accesses by the application using the native interfaces (JNI) and finally via the android code.I am trying to develop the similair application for the ipad 2 and iphone.
Can some one plz point out :
(1) How I can interface external hardware like ( external uvc camera) or any other USB device(a card reader, a storage device, a barometer etc)
(2) I have googled about Apple's Authentication chip which can be used to interface the external h/w.Can some one point out how useful it is.Is this related to that somehow.
(3)What are the things similair to JNI, node, /dev/ in the IOS for Ipad 2 and Iphone.
I will be highly obliged ,if some one could provide me the top pointers on it.
Thanks and Rgds,
MangoApple1.) See
External Accessory Programming Topics
Connecting to an Accessory
Monitoring Accessory-Related Events
2.) See the MFi Program -
Outlook synchronisation: what smart-alec developer decided USB cables were old hat?
I've been trawling the internet/this forum to see if BlackBerry have condescended to come up with a way of allowing those of us who want to synchronise Outlook Contacts/Calendars with a Z10 to do so (as I've been doing with my boss's BlackBerries over the past few years).
Unless I've missed a new development over the past few days, short of moving a load of sensitive data into the cloud, it just doesn't seem to be possible.
Nor does it seem to be possible to contact BlackBerry direct about this: couldn't find a phone number or a support email address. The only method they seem to deign to communicate through is Twitter, which I have no intention of signing up to.
The only people I could speak to about the issue was Vodafone, whose impression was that BlackBerry aren't going to bother to come up with a solution as wires and cables are old hat.
We are currently considering whether or not to return the Z10. Certainly, any good feeling I might have had towards BlackBerry has totally dissipated.Blackberry announced that it will incorporate outlook USB sync with BB link.
http://crackberry.com/outlook-usb-sync-coming-blackberry-link -
Hi:
I studied Bus\USB document of WDK. This document forces on developing USB device driver.
And there are some IOCTL Interfaces of usb bus driver exposed to usb device, like IOCTL_INTERNAL_USB_SUBMIT_URB.
But those IOCTL Interfaces seem to belong to USB hub driver(usbhub.sys).
My job is to developing a usb mini port driver, like usbehci.sys. That can work with usbport.sys.
So I should know the communication interfaces(IOCTL...etc) between them and implement these interfaces.
Is there a reference document(example, code) for developing usb mini port driver ?No there is no reference documents for this, Microsoft stated from the beginning that they own that layer. You really don't want to go there.
Don Burn Windows Filesystem and Driver Consulting Website: http://www.windrvr.com -
Hi all.
If i want to detect the shutter button event, is it only have one way that develop a driver to handle?
I have reference the IOKit and found the USB device information in the USB Prober.
In the USB Prober, i found the device have 2 interface, and there are 1 endpoint in each interface. But it is interrupt no synchronization data endpoint. Is there have problem?
If i want to communicate with the device is the device need to have (In & Out) endpoint? Because the device is only have the (In) endpoint.
By using some program that provide by apple to communicate with the USB device, there are also having problems.
using USBSampleExample:
Found device 0x1503 dealWithDevice:
found 1 configurations found interface: 0x1803
dealWithInterface: found 1 pipes
dealWithPipes: skipping pipe 1 because it is not a bulk pipe
found interface: 0x1807
dealWithInterface: found 0 pipes
dealWithPipes: skipping pipe 1 because it is not a bulk pipe
dealWithPipes: unable to get pipe properties for pipe 2, err = e0004061
Using Deva:
Found device VID 0x0AC8 (2760), PID 0x3450 (13392), release 256
Configuration value is 1
1 endpoints found
Endpoint 1: Interrupt In 1, max packet 10, interval 5
Now we actually get to do something with this device, wow!
Doing SetIoPortsConfig with portbits 000fffff
unable to do bulk write (0xE0004051) USB error 81(0x51)
Message was edited by: rock singanyone know what's happen?
-
Are there any fee for developing software for USB non NI harware?
We develop applications in LabView for pieces of hardware witch communicate via USB. Are there any fee for developing software for USB non NI harware?
If you really mean distributing software that you developed, then you and a lawyer might want to review the LabVIEW software license - especially the section on distribution requirements (in my 6.1 version it's section 12). You should also contact NI directly and ask them. This forum is primarily made up of LabVIEW end-users and any legal advice you get here is worth exactly what it costs, in other words, nothing.
-
Slatebook 14 - USB cable for PC connection / adb development ?
I want to connect a USB cable to the new Slatebook 14 for Android development with adb. A plain USB male A to male A cable does not work, and I see elsewhere that this can damage a system. I see there are USB transfer cables on the market but I suspect they contain active electronics and may not work. Can anyone tell me how to connect to this system for development?
i'm interested the same, i know that for the slatebook 2x hp released a usb cable to connect the slatebook the the pc, maybe it will work the same for the staltebook 14. who knows.
-
Develop Example Code for the NI USB 8473
Hello,
I need to develop an application using the NI USB 8473 in VB2008 (OR VB2010).
Can you provide example code?Hi jerisman,
Unfortunately examples for Visual Basic and CAN interface cards are few and far between. What I would recommend is looking at the example that I linked below for a starting point on reading CAN messages.
http://zone.ni.com/devzone/cda/epd/p/id/601
Also, you can go through previous forum posts about using NI-CAN with Visual Basic and pull information from what is discussed there.
http://forums.ni.com/t5/forums/searchpage/tab/message?location=Board%3A30&q=visual+basic+can#message...
Regards,
Peter W.
Maybe you are looking for
-
Hi there. can someone please tell me there is a way of doing this because I was on the phone to 121 for two hours and they couldn't help in the way I wanted. I have a customer who took his iPad on holiday and with a cable adapter used it to back up t
-
We have implemented duplicate document detection. There is supposed to also be a report but we do not have it. Does anyone have the part file?
-
Please help me read this Problem Report
Hello, I have a MacBook Pro 15 late 2011 and is rebooting abruptly lately. I have taken out the memories and cleaned. I've also done the Apple hardware test and everything is supposedly well. I don't know what else to do. Thanks Interval Since Last P
-
PL/SQL String - To see what's in?
Hello, I have a long sql-statement in a region source. The type ist "SLQ Query(PL/SQL function...) Example of my code: declare q varchar(4000); begin q:= ' SELECT org '; If :P110_EMPLOYEE = '%null%' and :P110_WRKCTRL1 = '%null%' then q:=q||' BUKRS Na
-
The sync doesn't work with the new version
Hi, I have a Macbook version 10.4.11 I just to work with the pocketmac for blackberry former version and It use to work great but since I did upgrade to the new version they system doesn't sync any contact, meeting.... The system recognize my Blackb