diff --git a/fhem/CHANGED b/fhem/CHANGED index b0cab7457..3daba6582 100644 --- a/fhem/CHANGED +++ b/fhem/CHANGED @@ -492,3 +492,4 @@ - feature: structure module for big installations - feature: Cost Control in 15_CUL_EM (CostPerUnit, BasisFeePerMonth) - feature: add counter differential per time in 81_M232Counter.pm + - feature: added USB compendium to documentation diff --git a/fhem/docs/USB.html b/fhem/docs/USB.html new file mode 100644 index 000000000..f60a1a558 --- /dev/null +++ b/fhem/docs/USB.html @@ -0,0 +1,141 @@ + + + USB compendium + + + +

USB compendium

+ +Several fhem users are plagued by spontaneous disconnects/reconnects of USB +devices. This is not an issue of fhem but a problem of hardware and/or USB +drivers.

+ +This document summarizes some findings on the issue. They are taken from +users' experience and from a web research. This compendium is written for Linux +users. + + + +

A. Problem description

+ + +USB devices spontaneously disconnect from the bus. They are reconnected after +some time ranging from zero to many seconds. fhem global log shows messages like + +
+2009.01.12 19:22:14 1: USB device /dev/elv_fhz1300pc disconnected, waiting to reappear
+2009.01.12 19:22:19 1: USB device /dev/elv_fhz1300pc reappeared
+
+ +A look into the kernel message log with +
+grep usb /var/log/messages | tail -n 100 | less
+
+ +shows messages like + +
+Jan 12 19:22:14 bunkertor kernel: usb 10-2.1: USB disconnect, address 59
+Jan 12 19:22:14 bunkertor kernel: usb 10-2.1.1: USB disconnect, address 61
+Jan 12 19:22:14 bunkertor kernel: usb 10-2.4: USB disconnect, address 60
+Jan 12 19:22:14 bunkertor kernel: usb 10-2: reset full speed USB device using uhci_hcd and address 2
+Jan 12 19:22:14 bunkertor kernel: usb 10-2.1: new full speed USB device using uhci_hcd and address 62
+Jan 12 19:22:15 bunkertor kernel: usb 10-2.1: not running at top speed; connect to a high speed hub
+Jan 12 19:22:15 bunkertor kernel: usb 10-2.1: configuration #1 chosen from 1 choice
+Jan 12 19:22:15 bunkertor kernel: usb 10-2.1: New USB device found, idVendor=04b4, idProduct=6560
+Jan 12 19:22:15 bunkertor kernel: usb 10-2.1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
+Jan 12 19:22:15 bunkertor kernel: usb 10-2.4: new full speed USB device using uhci_hcd and address 63
+Jan 12 19:22:15 bunkertor kernel: usb 10-2.4: configuration #1 chosen from 1 choice
+Jan 12 19:22:15 bunkertor kernel: usb 10-2.4: FTDI USB Serial Device converter now attached to ttyUSB0
+Jan 12 19:22:15 bunkertor kernel: usb 10-2.4: New USB device found, idVendor=0403, idProduct=e0ef
+Jan 12 19:22:15 bunkertor kernel: usb 10-2.4: New USB device strings: Mfr=1, Product=2, SerialNumber=0
+Jan 12 19:22:15 bunkertor kernel: usb 10-2.4: Product: ELV EM 1010 PC
+Jan 12 19:22:15 bunkertor kernel: usb 10-2.4: Manufacturer: ELV AG
+Jan 12 19:22:15 bunkertor kernel: usb 10-2.1.1: new full speed USB device using uhci_hcd and address 64
+Jan 12 19:22:16 bunkertor kernel: usb 10-2.1.1: configuration #1 chosen from 1 choice
+Jan 12 19:22:16 bunkertor kernel: usb 10-2.1.1: FTDI USB Serial Device converter now attached to ttyUSB1
+Jan 12 19:22:16 bunkertor kernel: usb 10-2.1.1: New USB device found, idVendor=0403, idProduct=e0e8
+Jan 12 19:22:16 bunkertor kernel: usb 10-2.1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
+Jan 12 19:22:16 bunkertor kernel: usb 10-2.1.1: Product: ELV FHZ 1300 PC
+Jan 12 19:22:16 bunkertor kernel: usb 10-2.1.1: Manufacturer: ELV AG
+Jan 12 19:22:16 bunkertor kernel: usb 10-2.1.1: SerialNumber: xxxxxxxxxxx
+
+ +

B. Possible reasons and remedies

+ +

1. Not enough power on the bus

+ +FHZ1300PC directly connected to the computer's built-in USB ports does not work +at all or seizes to work after short time. This is likely due to the USB's +inability to provide sufficient power to the connected +devices. Use of a powered hub seems to cure the problem in some cases +(confirmed, see [6]). + + +

2. Mixture of USB 1.1 and USB 2.0 devices

+ +Use of an USB 1.1 hub to connect USB 2.0 devices and vice versa might lead to +timing problems (see [3]). Consistent use of either USB 1.1 or USB 2.0 devices +might be a cure (unconfirmed). + + +

3. Timing problems

+ +It was suggested that late answers from a device make the driver think that it +has gone away. This would lead to a disconnect. followed by a reconnect when +the device's reply arrives. Changing the timeouts +might be a cure. It is not known how to achieve this (see [5]). + + +

4. Electromagnetic interferences

+ +Bad shielding of cables or devices might lead to interferences with electric +devices nearby (fridges, light switches, ...). A computer can cope with this +problem better or worse. Changing the computer's hardware helps (confirmed, +see [7]). If this is not feasible, use a ferrite ring (see [8] for instance) +or two around the ends of the cable (unconfirmed). + + +

5. USB Power management

+ +The linux kernel USB driver supports power management. If there is no activity +on the USB for a certain time, the port is switched to powersaving which leads +to a disconnect of the device (see [3]). Details on +linux power management are found in [4]. In short, you can turn off power +management in general if you do + +
+echo -1 >/sys/module/usbcore/parameters/autosuspend
+
+ +or, for a specific device, + +
+echo on >  /sys/bus/usb/devices/DEVICEID/power/level
+
+ +with DEVICEID substituted by the device's ID. + +

6. USB extenders

+ +To increase the maximum cable length from 5 meters to 10 meters, so-called +USB extenders are on sale. The consist of a fixed passive 1-port hub at the end of +an USB cable. This drives the USB to its limits and may cause all sorts of +problems on the bus. Either do not use USB extenders (confirmed, see [10]) at all +or put an active (self-powered) hub in the middle (unconfirmed). + +

C. Suggested reading

+ +[1] http://www.mikrocontroller.net/topic/116263
+[2] http://www.ti.com/sc/docs/apps/msp/intrface/usb/emitest.pdf
+[3] http://forum.soft32.com/linux/solution-usb-disconnect-problems-usb-ftopict345989.html
+[4] /usr/src/linux/Documentation/usb/power-management.txt
+[5] Google group FHZ1000 users on Linux, Message-ID: beb1c8d2-ec08-4ded-bc9b-2c0fc856fa09@e1g2000pra.googlegroups.com
+[6] Google group FHZ1000 users on Linux, Message-ID: 200812241129.01819.omega@online.de
+[7] Google group FHZ1000 users on Linux, Message-ID: 930a1555-3eda-49ce-82d9-3ecc617f5e9c@a26g2000prf.googlegroups.com
+[8] http://www.reichelt.de/?;ACTION=3;LA=4;GROUP=B522;GROUPID=3187;ARTICLE=7674;START=0;SORT=preis;OFFSET=1000;SID=26j@QMWawQARoAAFcmBVM2b30b32eb7a0d90a6833475d294db8c2
+[9] http://www.usb.org/developers/usbfaq/
+[10] Google group FHZ1000 users on Linux, Message-ID: 2aac5192-1966-4939-a8ff-73d1e0b67506@w24g2000prd.googlegroups.com
+ + + \ No newline at end of file diff --git a/fhem/docs/faq.html b/fhem/docs/faq.html index 898745232..69555391e 100644 --- a/fhem/docs/faq.html +++ b/fhem/docs/faq.html @@ -61,6 +61,11 @@ messages from my FHT80b. How to switch back to the actuator:0% messages? 17. I have problem receiving data, I get "Bad CRC" or "Oversized message."
+18. My FHZ1X00PC gets all time automatically disconnected and +reconnected. My log shows "USB device /dev/elv_fhz1300pc disconnected, waiting to reappear". +What is wrong with my USB? +
+

@@ -270,7 +275,7 @@ by fhem.pl? # Get the second word, so we can compare it. FHZ> { my @a = split(" ", $value{myfht});; $a[1] } - 23.8 + 23.8 # Set the ventilator on now, if its too hot. FHZ> { my @a = split(" ", $value{myfht});; fhem("set ventilator on") if($a[1] > 25.0) } @@ -399,6 +404,18 @@ messages from my FHT80b. How to switch back to the actuator:0% messages? + +18. My FHZ1X00PC gets all time automatically disconnected and +reconnected. My log shows "USB device /dev/elv_fhz1300pc disconnected, waiting to reappear". +What is wrong with my USB? + + +
+