Arduino detected as braille device

Bug #84139 reported by BHowell
48
This bug affects 2 people
Affects Status Importance Assigned to Milestone
brltty (Ubuntu)
Fix Released
Undecided
Luke Yelavich

Bug Description

Binary package hint: brltty

I think this may be a bug in HAL but this is the symptom:

If I plug in my Arduino USB micro-controller board, brltty daemon starts up and something keeps grabbing the device. My arduino application cannot get access to the USB serial device.

If you are curious the arduino board is documented here: http://www.arduino.cc

In any case, it's using an off the shelf FTDI usb serial controller.

The ftdi_sio module is loaded.

Here's the output of lsusb:

Bus 003 Device 006: ID 047b:0001 Silitek Corp.
Bus 003 Device 005: ID 09da:0006 A4 Tech Co., Ltd Optical Mouse WOP-35 / Trust 450L Optical Mouse
Bus 003 Device 004: ID 04b8:0005 Seiko Epson Corp. Stylus Printer
Bus 003 Device 002: ID 05e3:0606 Genesys Logic, Inc.
Bus 003 Device 001: ID 0000:0000
Bus 002 Device 005: ID 0403:6001 Future Technology Devices International, Ltd 8-bit FIFO
Bus 002 Device 001: ID 0000:0000
Bus 001 Device 001: ID 0000:0000

Related branches

Revision history for this message
Samuel thibault (samuel-thibault) wrote : Re: [Bug 84139] Arduino detected as braille device

BHowell, le Fri 09 Feb 2007 04:20:35 -0000, a écrit :
> If I plug in my Arduino USB micro-controller board, brltty daemon starts
> up and something keeps grabbing the device.

> Bus 003 Device 006: ID 047b:0001 Silitek Corp.
> Bus 003 Device 005: ID 09da:0006 A4 Tech Co., Ltd Optical Mouse WOP-35 / Trust 450L Optical Mouse
> Bus 003 Device 004: ID 04b8:0005 Seiko Epson Corp. Stylus Printer
> Bus 003 Device 002: ID 05e3:0606 Genesys Logic, Inc.
> Bus 003 Device 001: ID 0000:0000
> Bus 002 Device 005: ID 0403:6001 Future Technology Devices International, Ltd 8-bit FIFO
> Bus 002 Device 001: ID 0000:0000
> Bus 001 Device 001: ID 0000:0000

That's odd: none of these device IDs should be matched by brltty, or
else there's a typo in Ubuntu's udev rules.

Samuel

Revision history for this message
Colin Watson (cjwatson) wrote :

# HandyTech
SYSFS{idVendor}=="0921", SYSFS{idProduct}=="1200", RUN+="/lib/brltty/brltty.sh -b ht -d usb:"
SYSFS{idVendor}=="0403", SYSFS{idProduct}=="6001", RUN+="/lib/brltty/brltty.sh -b ht -d usb:"

These come from Debian.

"8-bit FIFO". What's one of those? Sounds like maybe a generic bit of electronics that sometimes happens to have a Braille terminal attached?

Revision history for this message
Henrik Nilsen Omma (henrik) wrote :

As noted in bug 83939, when updating udev I got this error:

cp: cannot stat '/etc/udev/rules.d/85-brltty.rules'

Which looks like a udev rules file getting lost.

Revision history for this message
Samuel thibault (samuel-thibault) wrote : Re: [Bug 84139] Re: Arduino detected as braille device

Hi,

Colin Watson, le Fri 09 Feb 2007 09:18:12 -0000, a écrit :
> # HandyTech
> SYSFS{idVendor}=="0921", SYSFS{idProduct}=="1200", RUN+="/lib/brltty/brltty.sh -b ht -d usb:"
> SYSFS{idVendor}=="0403", SYSFS{idProduct}=="6001", RUN+="/lib/brltty/brltty.sh -b ht -d usb:"
>
> These come from Debian.

Ah oops, indeed, I overlooked that. It's in the brltty repository too,
so I'm Ccing the mailing list: a Ubuntu user just wanted to plug a
special USB adapter (not related to braille at all), and brltty got
started, because the ID of his adapter is

Bus 002 Device 005: ID 0403:6001 Future Technology Devices International, Ltd 8-bit FIFO

> "8-bit FIFO". What's one of those? Sounds like maybe a generic bit of
> electronics that sometimes happens to have a Braille terminal attached?

Possibly. Does anybody on the brltty list have more information on this?
Please keep <email address hidden> in Cc, so that mails are recorded
in the bug tracker.

Samuel

Revision history for this message
Mario Lang (mlang-delysid) wrote : Re: [BRLTTY] Re: [Bug 84139] Re: Arduino detected as braille device

Samuel Thibault <email address hidden> writes:

> Hi,
>
> Colin Watson, le Fri 09 Feb 2007 09:18:12 -0000, a écrit :
>> # HandyTech
>> SYSFS{idVendor}=="0921", SYSFS{idProduct}=="1200", RUN+="/lib/brltty/brltty.sh -b ht -d usb:"
>> SYSFS{idVendor}=="0403", SYSFS{idProduct}=="6001", RUN+="/lib/brltty/brltty.sh -b ht -d usb:"
>>
>> These come from Debian.
>
> Ah oops, indeed, I overlooked that. It's in the brltty repository too,
> so I'm Ccing the mailing list: a Ubuntu user just wanted to plug a
> special USB adapter (not related to braille at all), and brltty got
> started, because the ID of his adapter is
>
> Bus 002 Device 005: ID 0403:6001 Future Technology Devices International, Ltd 8-bit FIFO
>
>> "8-bit FIFO". What's one of those? Sounds like maybe a generic bit of
>> electronics that sometimes happens to have a Braille terminal attached?
>
> Possibly. Does anybody on the brltty list have more information on this?

The FTDI chip is used in Handy Tech Braille displays to implement
the USB connectivity. What they basically did is put this chip
on top of their already existing serial interface, therefore avoided
having to implement their own USB stack/protocol, they simply
reuse an existing USB->Serial adaptor chip, and drivers talk with the
display with the exact same byte-protocol either via serial, USB or bluetooth.

FYI, here is how my Handy Tech Modular Evolution 88 identifies:

Bus 001 Device 041: ID 0403:6001 Future Technology Devices International, Ltd 8-bit FIFO
Device Descriptor:
  bLength 18
  bDescriptorType 1
  bcdUSB 1.10
  bDeviceClass 0 (Defined at Interface level)
  bDeviceSubClass 0
  bDeviceProtocol 0
  bMaxPacketSize0 8
  idVendor 0x0403 Future Technology Devices International, Ltd
  idProduct 0x6001 8-bit FIFO
  bcdDevice 4.00
  iManufacturer 1 FTDI
  iProduct 2 USB <-> Serial
  iSerial 0
  bNumConfigurations 1
...
(the rest is standard USB->Serial adaptor config description...)

P.S.: I own (and use) devices of both types mentioned in this bug, the
PID 6001 and the PID 1200 (which is very rare indeed). Feel free
to contact me with more questions.
--
CYa,
  Mario | Debian Developer <URL:http://debian.org/>
  .''`. | Get my public key via finger <email address hidden>
 : :' : | 1024D/7FC1A0854909BCCDBE6C102DDFFC022A6B113E44
 `. `'
   `- <URL:http://delysid.org/> <URL:http://www.staff.tugraz.at/mlang/>

Revision history for this message
Samuel thibault (samuel-thibault) wrote :

Mario Lang, le Fri 09 Feb 2007 14:34:18 -0000, a écrit :
> FYI, here is how my Handy Tech Modular Evolution 88 identifies:
>
> Bus 001 Device 041: ID 0403:6001 Future Technology Devices International, Ltd 8-bit FIFO
> Device Descriptor:
> bLength 18
> bDescriptorType 1
> bcdUSB 1.10
> bDeviceClass 0 (Defined at Interface level)
> bDeviceSubClass 0
> bDeviceProtocol 0
> bMaxPacketSize0 8
> idVendor 0x0403 Future Technology Devices International, Ltd
> idProduct 0x6001 8-bit FIFO
> bcdDevice 4.00
> iManufacturer 1 FTDI
> iProduct 2 USB <-> Serial
> iSerial 0
> bNumConfigurations 1

Gasp, this is not specific to the braille device at all :(

I guess the only safe solution is to comment the line in the udev
script, and require users to either uncomment it by hand or load brltty
explicitly.

Samuel

Revision history for this message
Mario Lang (mlang-delysid) wrote :

Dave Mielke <email address hidden> writes:

>>Ah oops, indeed, I overlooked that. It's in the brltty repository too,
>>so I'm Ccing the mailing list: a Ubuntu user just wanted to plug a
>>special USB adapter (not related to braille at all), and brltty got
>>started, because the ID of his adapter is
>
> The problem would be that brltty needs to do a bit more checking in order to
> more accurately detect that type of braille display. Right now it's just
> checking the vendour and product ids. It should probably also be checking other
> things like the product and/or manufacturer names.

Unfortunately, the vendor/product strings were not specially
set for Handy Tech. They look like a standard serial
adaptor. My ME88 says "FTDI" as Vendor string and
"USB->Serial" as product string. That is not going to
help.

> We'll have to check one of those displays to see what it takes to
> uniquely identify it.

I am afraid we can't, without opening the device and looking at the
reset answer.

--
CYa,
  Mario | Debian Developer <URL:http://debian.org/>
  .''`. | Get my public key via finger <email address hidden>
 : :' : | 1024D/7FC1A0854909BCCDBE6C102DDFFC022A6B113E44
 `. `'
   `- <URL:http://delysid.org/> <URL:http://www.staff.tugraz.at/mlang/>

Revision history for this message
Stu Hood (stuhood) wrote :

Well, it seems the discussion confirms this bug anyway, but since I just experienced it as well, I'll add my vote. brltty grabs the connection and removes the raw serial device, and so obviously removing brltty fixed it.

Changed in brltty:
status: Unconfirmed → Confirmed
Revision history for this message
Samuel thibault (samuel-thibault) wrote :

Do definitive correction (i.e. making both sighted and non-sighted users completely happy) could be found. For now, I'd suggest dropping brltty-ht 0x0003 0x0403 0x6001 from the hotplug/udev scripts for now (since it seems to hit a number of users)

Revision history for this message
Samuel thibault (samuel-thibault) wrote :

Err, I meant "No definitive correction"

Revision history for this message
jonatan (jonatan) wrote :

I think commenting away the line must be the best solution. This chip is used in *lots* of products, and by default they use the same product and vendor id:s. It leads to very strange, non-obvious problems on such devices.

Please please please fix!

Revision history for this message
Samuel thibault (samuel-thibault) wrote : Re: [Bug 84139] Re: Arduino detected as braille device

Hi,

Just to make sure there's no confusion: I'm not an ubuntu maintainer so
I just can't fix it, somebody else has to do it.

Samuel

Revision history for this message
Wiktor Wandachowicz (siryes) wrote :

I've been hit by this problem too. Even though answers found through Google suggested a complete removal of brltty, I dig deeper. Finally I narrowed down the problem to one of the udev rule, specifically tailored for an otherwise generic 0403:6001 Vendor/Product combination. After commenting it out, my USB->Serial adapter worked flawlessly.

Additional info:
* Bug #122834 - FTDI USB Serial Device converter disconnects

The conclusion is that udev rules should be changed. So, awaiting the action from maintainers... A simple, one-liner removal. Please!

Revision history for this message
Kyle James (kvitale) wrote :

It is still a problem in gutsy beta.

Revision history for this message
zdzichu (zdzichu-gmail) wrote :

This is still non fixed in Ubuntu 7.10. brltty still breaks USB Serial devices made with FTDI chipset. This is serious issue, can we have fixed udev package, please?

Revision history for this message
Samuel thibault (samuel-thibault) wrote :

Can somebody apply the attached patch please?

Revision history for this message
hugolp (hugolp2) wrote :

Im having the same problem in Gutsy. Not with the Arduino device, but with another usb dongle that uses the same usb chip. Im going to remove brtty as a temporal fix, but the udev rule should be changed.

Revision history for this message
Joel Berger (hikari-lp) wrote :

This also impacts the DATAQ DI-148U USB data acquisition board. These only identify as 0403:6001 if you change the jumper settings (not recommended for Windows use, but required for Linux use since the module doesn't recognize the default 0683:1480). I guess a better question is this: since FTDI serial chips are used for so many devices, is there a better way to identify them than by USB vendor/device ID?

Revision history for this message
Samuel thibault (samuel-thibault) wrote :

Joel Berger, le Tue 20 Nov 2007 22:06:12 -0000, a écrit :
> This also impacts the DATAQ DI-148U USB data acquisition board. These
> only identify as 0403:6001 if you change the jumper settings (not
> recommended for Windows use, but required for Linux use since the module
> doesn't recognize the default 0683:1480). I guess a better question is
> this: since FTDI serial chips are used for so many devices, is there a
> better way to identify them than by USB vendor/device ID?

After research on the brltty list, there didn't seem to be any way.

Samuel

Revision history for this message
Samuel thibault (samuel-thibault) wrote :

There is no intelligent way, because braille manufacturers didn't make their device in an intelligent way. But the attached patch should be just fine, I really wonder why it didn't get applied.

Revision history for this message
Luke Yelavich (themuso) wrote :

I intend adding this patch to BrlTTY for hardy, and am also going to investigate it as an update for gutsy and earlier. Thanks Samuel for the patch.

Changed in brltty:
assignee: nobody → themuso
status: Confirmed → In Progress
Revision history for this message
TomWhipple (mail-tomwhipple) wrote :

The easiest way to deal with this is to completely remove brltty with Synaptic.

It might not be a good solution for the big picture, but my board is working now. :-)

Revision history for this message
Luke Yelavich (themuso) wrote :

brltty (3.9-5ubuntu1) hardy; urgency=low

  * Merge from debian unstable, (LP: #176477) remaining changes:
    - Conflicts: libbrlapi, libbrlapi-dev, libbrlapi1-dev.
    - Add brltty-setup, installed in both the udeb and the normal system.
    - Add initramfs integration to run brltty-setup if necessary before
      usplash starts.
    - Add ubiquity integration to propagate any brltty configuration to the
      target system.
    - Add udev rules and /lib/brltty/brltty.sh to the normal (non-udeb)
      package as well.
    - Enable brltty if /etc/default/brltty has RUN_BRLTTY=yes, which is set
      by the installer if brltty is configured; add a NEWS entry for
      upgraders.
    - Install udev rules with the same name (85-brltty.rules) in the udeb as
      in the deb.
    - Change maintainer to Ubuntu Accessibility Developers
      <email address hidden>
  * Disable BrlTTY grabbing devices that use the FTDI USB to serial chip.
    (LP: #84139)
  * Remove the dh-lisp build-dependency, remove the cl-brlapi package, and
    adjust the brltty package description accordingly. dh-lisp is not
    in main.

brltty (3.9-5) unstable; urgency=low

  * Hopefully fix disabling Java support on ARM for real this time.
  * Disable Java on m68k as well.
  * Revisit debhelper calls and simplify.
  * Convert debian/copyright and debian/libbrlapi0.5.copyright to UTF-8.
  * Update Standards-Version to 3.7.3 (no changes).
  * Fix debian/rules so that "dpkg-buildpackage -j2" does not fail.
  * Make python-brlapi part of section python.

 -- Luke Yelavich <email address hidden> Sat, 15 Dec 2007 11:44:23 +1100

Changed in brltty:
status: In Progress → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.