Search

Touch-Base Support

Device not responding USB error

Dave Bhattacharjee
Mac OS

This article discusses the USB error 0x000002ed (device not responding) on a Mac-OS system.

If this error occurs it will be reported in the driver log file, updd.log, as captured when performing a UPDD Diagnostics

An example of the logged error is shown here:

    2023/12/12-18:25:33: ERR: Error from async read: device not responding (IOReturn = 0xe00002ed)

You should also receive a notification popup message the first time this occurs:


This is generally a hardware error and as such there’s nothing the driver can do to recover this issue.

This is a known issue with some touch devices that use the 'SiW/BOE touch chip controller chip' as documented here. These devices work perfectly well in Windows but give this error in macOS when the screen is first touched. This is a firmware issue that disables touch when the non-Windows sequence of USB requests was received by the controller. In some cases, firmware updates have been issued to resolve the issue.

Although the driver can't recover this issue, there are several actions a user can take that may resolve this. Dependant on the actual cause some, all or none of these may resolve the issue.

One customer reported that stopping and starting the driver overcame the issue. In cases where there really is a hardware related issue causing the issue this will not resolve but its worth a try based on this customer report.

In a terminal window run the commands:
sudo upddprocesses stop -d
sudo upddprocesses start -d

Please let us know if you find a circumstance where this works and perform a diagnostic after you have run the commands and send us the resultant file.

This error has also been reported with systems using a Display Link adaptor for video and USB traffic. The touch device worked OK when connected directly to the system.

Ensure the USB leads are as short as possible, of the best quality available and undamaged. Don’t rely on the fact the cables are new or work or are supplied with the device. With different hardware, we’ve seen cases where a customer has been through several “new” cables before finding one that works.

Ensure you make a direct connection to the computer. Connections through USB extenders, KVM switches introduce additional timing or protocol management issues. If you have to use such a device, first test with a direct connection to the computer to ensure this works.

Connection via an active USB2 hub sometimes helps as this causes the connection to revert to the USB2 protocol which is less sensitive to timing issues. We’ve had reports of success with the logik l4aphb23 4-port usb 2.0 hub device. If you have an older USB hub to hand, it’s well worth trying this.

Other, perhaps less practical options are:

  • Un/replug the device’s USB lead, this sometimes works.
  • Use an alternate touch device.
  • Use a different MacOS version.
  • Use different MacOS hardware.

If the error cannot be resolved and it occurs on more than one of the same devices, it could be a firmware error that can only be resolved at this level, and will need the assistance of the chip manufacturer.

Why does this occur?

A typical, simple USB touch screen connection looks like this.


 
The touch sensor takes the electro-mechanical signals from the touch screen and creates touch data which is passed to the USB controller for onward transmission over the USB connection.  
The USB controller is a device typically embedded in your touch monitor.
The USB host controller is a device embedded in your computer.  
These USB controller and USB host controller devices work together to provide the link over which USB touch data can pass.
The USB stack is the software provided by the operating system to interact with the USB host controller.

In addition to USB touch data there is management data passed between these devices to check for example that the link is active, look for new devices,  manage the power state of the devices and so on. The timing of these messages is critical and if for example the USB host controller sends a message to the USB host controller sends a message to the USB controller and does not receive an expected response within the expected time, then the error 0x000002ed (device not responding) is issued.

If this persists the USB stack considers the device disconnected and stops communications with the device.

The timing of the messages involved must be within certain specified limits. But there are several factors that can affect this. The quality of the physical connection for example.

Also, the USB controllers must be compatible. In theory if the software and firmware is compliant with the USB specification and bug free and the connection is of good quality then there should be no issues.

However, in the real world this is not always the case. We sometimes find, for example that a USB controller which, when connected to a Windows system works fine, does not work when connected to Mac system.

This could mean that that are issues in the USB host controller or USB stack of the Mac system; or it could mean that the Windows stack is slightly more forgiving of timing errors. We have one example of a touch device that works perfectly OK with macOS 10.14 and earlier but does not send out any touch data in version 10.15 and above.

All this shows that this issue is happening at a low level under the control of the OS and external firmware and not avoidable or recoverable by the driver software.

Details
Last Modified: Last Year
Last Modified By: Dave Bhattacharjee
Type: HOWTO
Article has been viewed 779 times.
Options
Also In This Category