In my quest to [repurpose a couple of older Macs to work with BlinkyTape](http://forums.blinkinlabs.com/index.php?p=/discussion/comment/885
), I'm in a similar situation to [BlinkyTape not identifying as TTY device on Linux](http://forums.blinkinlabs.com/index.php?p=/discussion/comment/458/
) where the Mac detects the BlinkyTape but doesn't create the TTY. The following is on a PowerPC Mac running OS X 10.5.8 (Leopard).
The Mac equivalent of a Linux `lsusb` shows:
Bus 027 Device 000: ID 1d50:605e 1d50 BlinkyTape
The `dmesg` log shows:
0 0 AppleUSBCDCACMControl: start - Failed to find the CDC driver
AppleUSBCDCACMData: start: InterfaceMappings dictionary not found for this device. Assume CDC Device...
0 0 AppleUSBCDCACMData: start - Find CDC driver failed
I found the same error for a Microchip MCP2200 controller. Here is some troubleshooting info with way-over-my-head-highly-technical-details on why it isn't working -- [MCP2200 not recognized on a mac/OS X](http://forums.reprap.org/read.php?181,234909
) and [MCP2200 CDC for Mac OS X and Linux](http://www.microchip.com/forums/tm.aspx?high=&m=537651&mpage=1#537751
The solution is described at [Serial connection on Mac OS X](http://reprap.org/wiki/Gen7_Board-AVR_1.5#Serial_connection_on_Mac_OS_X
) and [Traumflug/Generation_7_Electronics/USB tool/](https://github.com/Traumflug/Generation_7_Electronics/tree/master/USB
I modified [mcp2200-forwarder.c](https://github.com/Traumflug/Generation_7_Electronics/blob/master/USB
tool/mcp2200-forwarder/mcp2200-forwarder.c) lines 49 and 50 to be the hardcoded BlinkyTape USB vendor:product ID's of 1d50:605e. (There are references to ATmega at the above links, and I know the BlinkyTape uses an [Atmega 32u4](https://shop.blinkinlabs.com/products/blinkytape-basic
). I'm hoping this means the code is close enough.)
When compiled and run with the highest verbose mode, I get:
$ ./mcp2200-forwarder -vvv -l /tmp/ACM0
Scanning interfaces ...
Interface class 2, subclass 2.
Interface has 1 endpoints.
PipeRef 1: direction in, transfer type interrupt, maxPacketSize 16.
Choosing this interface as Interrupt.
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.
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)
Terminal name: /dev/ttys002
Created symlink to /tmp/ACM0
When I start a second shell session and run Oskari Okko Ojala’s Perl Device::BlinkyTape [example code](https://github.com/Blinkinlabs/BlinkyTape_Perl/blob/master/example.pl
) pointing to `'dev' => '/tmp/ACM0'`, it sits there thinking for a few seconds and doesn't send anything to the screen (as expected), not even an error. And, the BlinkyTape just gives me a blank stare
The first shell session running mcp2200-forwarder shows only one new line:
pty_read(), event 0x0002
## HERE'S MY QUESTION:
I'm wondering if someone here who is familiar with the BlinkyTape USB hardware could look at [mcp2200-forwarder.c](https://github.com/Traumflug/Generation_7_Electronics/blob/master/USB
tool/mcp2200-forwarder/mcp2200-forwarder.c) and tell me if, or what, needs changing? I know enough to change the hardcoded vendor:product ID but that's the limit of what I know about what mcp2200-forwarder.c is doing with the USB code.
If this isn't practical to get going and there's no longer much of a reason for my older Macs to justify their existence and electric bill, I'll quite understand, but I would appreciate knowing either way.