This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CC2540 USB Dongle - Mac OS X Lion

Other Parts Discussed in Thread: CC2540EMK-USB

I am having issues connecting my CC2540EMK-USB dongles to Mac OS X 10.7 Lion.

They are correctly recognized as CDC-devices and all the USB information shows up in USB Prober, although dmesg reports the following:

AppleUSBCDC: start - initDevice failed

 

Nothing shows up under /dev/cu.* or /dev/tty.usb*.

Anyone knows how to make Mac OS X initialize this dongle correctly?

Thanks.

  • Hi Anton,

    this is not a Mac forum so perhaps your answer will not arrive as fast as you would like. Particularly, I do not like anything from Apple (how is it possible the new version of an OS has problems with a device as basic as a FTDI?) but perhaps this will help you.

    http://hints.macworld.com/article.php?story=20060105104506687

    I wish you find the solution early since I know this kind of problems are such a pain :)

    Have a good day!

    PS: As said I'm not an Apple guy but perhaps the device is at /dev/ttyACM*? Anyway, this should be listed in dmesg. Well, good luck again.

  • Hi kazola,

     

    That guide actually worked. Sort of. I'm now getting the device as /dev/cu.usbserial-* and /dev/tty.usbserial-*.

    Although, I am unable to communicate with it, it seems. I am sending it 0x01 0x01 0x10 0x00 to get information about it, but I do not receive any reply.

    I am connecting with 57600-8-N-1, and I'm getting nothing.

     

    Cheers!

  • I supose you have the HostTestRelease firmware flashed within the dongle.

    I really don't know which is the frame you are telling me so I can only say that by copying the BTool behavior in Python (the one I'm pasting below), I've been able to comunicate easily under Linux (the capture is under Windows). Please note the first frame is the GAP_DeviceInit, which perhaps is something you are missing. The "Tx" and "Rx" statements are from the PC point of view, so "Tx" is from PC to dongle and "Rx" is something being transmitted from dongle to PC.

     

     

    Port opened at 24/10/2011 10:26:07

    [1] : <Tx> - 10:26:07.854

    -Type : 0x01 (Command)

    -Opcode : 0xFE00 (GAP_DeviceInit)

    -Data Length : 0x26 (38) byte(s)

     ProfileRole : 0x08 (Central)

     MaxScanRsps : 0x05 (5)

     IRK : 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00

     CSRK : 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00

     SignCounter : 0x00000001 (1)

    Dump(Tx):

    01 00 FE 26 08 05 00 00 00 00 00 00 00 00 00 00 

    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 

    00 00 00 00 00 00 01 00 00 00 

     

    ------------------------------------------------------------------------------------------------------------------------

    [2] : <Rx> - 10:26:08.070

    -Type : 0x04 (Event)

    -EventCode : 0xFF (HCI_LE_ExtEvent)

    -Data Length : 0x06 (6) bytes(s)

     Event : 0x067F (GAP_HCI_ExtentionCommandStatus)

     Status : 0x00 (Success)

     OpCode : 0xFE00 (GAP_DeviceInit)

     DataLength : 0x00 (0)

    Dump(Rx):

    04 FF 06 7F 06 00 00 FE 00 

     

    ------------------------------------------------------------------------------------------------------------------------

    [3] : <Tx> - 10:26:08.226

    -Type : 0x01 (Command)

    -Opcode : 0xFE31 (GAP_GetParam)

    -Data Length : 0x01 (1) byte(s)

     Raw : 15 

     Dump(Tx):

    01 31 FE 01 15 

     

    ------------------------------------------------------------------------------------------------------------------------

    [4] : <Tx> - 10:26:08.238

    -Type : 0x01 (Command)

    -Opcode : 0xFE31 (GAP_GetParam)

    -Data Length : 0x01 (1) byte(s)

     Raw : 16 

    Dump(Tx):

    01 31 FE 01 16 

     

    ------------------------------------------------------------------------------------------------------------------------

    [5] : <Tx> - 10:26:08.262

    -Type : 0x01 (Command)

    -Opcode : 0xFE31 (GAP_GetParam)

    -Data Length : 0x01 (1) byte(s)

     Raw : 1A 

    Dump(Tx):

    01 31 FE 01 1A 

     

    ------------------------------------------------------------------------------------------------------------------------

    [6] : <Tx> - 10:26:08.286

    -Type : 0x01 (Command)

    -Opcode : 0xFE31 (GAP_GetParam)

    -Data Length : 0x01 (1) byte(s)

     Raw : 19 

    Dump(Tx):

    01 31 FE 01 19 

     

    ------------------------------------------------------------------------------------------------------------------------

    [7] : <Rx> - 10:26:08.298

    -Type : 0x04 (Event)

    -EventCode : 0xFF (HCI_LE_ExtEvent)

    -Data Length : 0x2C (44) bytes(s)

     Event : 0x0600 (GAP_DeviceInitDone)

     Status : 0x00 (Success)

     DevAddr : C0:FF:EE:C0:FF:EE

     DataPktLen : 0x001B (27)

     NumDataPkts : 0x04 (4)

     IRK : F9:5E:E0:82:05:0B:A3:83:31:BB:0C:14:13:C6:E6:8F

     CSRK : A6:8A:31:BB:7C:54:E8:62:95:CD:2E:6F:C9:1D:2F:96

    Dump(Rx):

    04 FF 2C 00 06 00 EE FF C0 EE FF C0 1B 00 04 F9 

    5E E0 82 05 0B A3 83 31 BB 0C 14 13 C6 E6 8F A6 

    8A 31 BB 7C 54 E8 62 95 CD 2E 6F C9 1D 2F 96 

     

    ------------------------------------------------------------------------------------------------------------------------

    [8] : <Rx> - 10:26:08.381

    -Type : 0x04 (Event)

    -EventCode : 0xFF (HCI_LE_ExtEvent)

    -Data Length : 0x08 (8) bytes(s)

     Event : 0x067F (GAP_HCI_ExtentionCommandStatus)

     Status : 0x00 (Success)

     OpCode : 0xFE31 (GAP_GetParam)

     DataLength : 0x02 (2)

     ParamValue : 0x0050 (80)

    Dump(Rx):

    04 FF 08 7F 06 00 31 FE 02 50 00 

     

    ------------------------------------------------------------------------------------------------------------------------

    [9] : <Rx> - 10:26:08.465

    -Type : 0x04 (Event)

    -EventCode : 0xFF (HCI_LE_ExtEvent)

    -Data Length : 0x08 (8) bytes(s)

     Event : 0x067F (GAP_HCI_ExtentionCommandStatus)

     Status : 0x00 (Success)

     OpCode : 0xFE31 (GAP_GetParam)

     DataLength : 0x02 (2)

      ParamValue : 0x0050 (80)

    Dump(Rx):

    04 FF 08 7F 06 00 31 FE 02 50 00 

     

    ------------------------------------------------------------------------------------------------------------------------

    [10] : <Rx> - 10:26:08.549

    -Type : 0x04 (Event)

    -EventCode : 0xFF (HCI_LE_ExtEvent)

    -Data Length : 0x08 (8) bytes(s)

     Event : 0x067F (GAP_HCI_ExtentionCommandStatus)

     Status : 0x00 (Success)

     OpCode : 0xFE31 (GAP_GetParam)

     DataLength : 0x02 (2)

     ParamValue : 0x0000 (0)

    Dump(Rx):

    04 FF 08 7F 06 00 31 FE 02 00 00 

     

    ------------------------------------------------------------------------------------------------------------------------

    [11] : <Rx> - 10:26:08.621

    -Type : 0x04 (Event)

    -EventCode : 0xFF (HCI_LE_ExtEvent)

    -Data Length : 0x08 (8) bytes(s)

     Event : 0x067F (GAP_HCI_ExtentionCommandStatus)

     Status : 0x00 (Success)

     OpCode : 0xFE31 (GAP_GetParam)

     DataLength : 0x02 (2)

     ParamValue : 0x07D0 (2000)

    Dump(Rx):

    04 FF 08 7F 06 00 31 FE 02 D0 07 

     

    ------------------------------------------------------------------------------------------------------------------------

     

     

    PS: These are my serial port settings. Note the CTS/RTS.

    com3, 57600, RTS/CTS, N, 1, 8

  • Perhaps the last post frightened you :)

    You may want to give a try to the script in?

    http://processors.wiki.ti.com/index.php/Category:LinuxHostTest

    Bye!

  • I checked out that python script. I set it up with the correct dev-path, and on execution it seems to behave as expected.

    But, no data is ever received from the device. I made some modifications to log the incoming data length and contents, and I'm never getting any data. The read-method is just timing out.

    So, still no-go. I have managed to get a driver to recognize the device and map it into /dev, but communication is not working.

  • I'm sorry but I cannot further help you (since I'm not a Mac user) till you have the /dev/ inode working in dmesg.

    Good luck :(