Hi,
I'm attempting to use mcp2200-forwarder.c on my PowerPC Mac Mini OS X 10.5.8 (Leopard) to talk to a BlinkyTape device that has a Atmega32u4 microcontroller. I changed mcp2200-forwarder.c to have the correct hardcoded USB vendor and product ID (1d50 and 605e respectively).
When I run the compiled mcp2200-forwarder, I get the following results:
$ ./mcp2200-forwarder -vvv -l /tmp/ACM0
device_added()
Device added.
find_interfaces()
Scanning interfaces ...
Interface 0x00001703.
Interface class 2, subclass 2.
Interface has 1 endpoints.
PipeRef 1: direction in, transfer type interrupt, maxPacketSize 16.
Choosing this interface as Interrupt.
Interface 0x00001A03.
Interface class 10, subclass 0.
Interface has 2 endpoints.
PipeRef 1: direction out, transfer type bulk, maxPacketSize 64.
PipeRef 2: direction in, transfer type bulk, maxPacketSize 64.
Choosing this interface as Bulk.
... interface scan done.
send_bridge_setup()
Failed to take down DTE & RTS. Ignoring. (e000404f)
Failed to set baud rate & co. Ignoring. (e000404f)
Failed to raise DTE & RTS. Ignoring. (e000404f)
Unable to set up USB-UART bridge. (e000404f)
close_interface()
device_removed()
pty_open()
Terminal name: /dev/ttys002
Created symlink to /tmp/ACM0
When I start a second shell session and run a perl script to use /tmp/ACM0
, nothing happens on the BlinkyTape device and there's no error displayed. The perl script acts like it is happily sending the data to the BlinkyTape device because it takes a few seconds to do so, just like would happen if it was working correctly.
When I return to the first shell session running mcp2200-forwarder, it shows only one new line:
When I contacted the BlinkyTape development team, I got these responses (edited for brevity):
It's a little hard to tell from the source code, but a potential issue is that the BlinkyTape is actually a composite USB device, meaning that it supports a few other interfaces besides TTY-ACM (this was to make it compatible with the default Arduino Leonardo firmware). It looks like that code is ... finding the right interfaces, however I'm not sure how to interpret the addresses '0x00001703' or '0x00001A03'. [The output from USB Prober] shows that the computer is seeing the USB device just fine, so I think you're on the right track.
Output from USB Prober (starting at highlighed line 81) on my Mac: http://pastebin.com/Br0najQt
Output from 'lsusb' from BlinkyTape developer's Linux machine: http://pastebin.com/xjL1jZLR
I think I'm close to getting mcp2200-forwarder to work. Can anyone help?