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.

cc2650 + smartrf06 serial does not output under linux

Other Parts Discussed in Thread: CC2538

Hi,

Does anyone suceed in having /dev/ttyUSBx output from smartrf06 USB serial link  ?

Everything's fine under windows, but under linux, nothing comes out .

  • You can refer to section 4.1.2.2 Install XSD100v3 UART back channel on Linux in SmartRF 06  Evaluation Board Use's Guide.

  • You will need to install drivers so that your Operating System can communicate with the srf06eb

    ### For the SmartRF06 EB (UART)
    The SmartRF communicates with the PC with a piece of hardware called the TI XDS100v3 Emulator (from now on simply XDS). This is a combined JTAG/UART interface and is used to program the EM, for debugging and for UART character I/O.

    You will need to install XDS drivers if you want to do anything useful with the CC2538 UART.

    * **For Windows**: Installing [SmartRF Studio][smart-rf-studio] will install the drivers (A beta version is needed, not the one currently distributed on the TI site). Read the [SmartRF User Guide][smart-rf-ug] for more detailed instructions. After driver installation, the XDS will appear as a COM port.
    * **For Linux**: The XDS is based on an FTDI chip and new Linux kernels provide very good support for FTDI chips. If the kernel module does not kick in automatically, perform the following steps:
    * Connect the SmartRF to the linux box. Find the device's VID and PID (0403:a6d1 in the output below):

    $ lsusb
    ...
    Bus 001 Device 002: ID 0403:a6d1 Future Technology Devices International, Ltd
    ...


    * As root or with `sudo`, run the command below (if necessary, replace the `vendor` and `product` arguments with the values you got from `lsusb`):

    modprobe ftdi_sio vendor=0x403 product=0xa6d1

    * From Kernel 3.12 run the command below:

    modprobe ftdi_sio
    echo 0403 a6d1 > /sys/bus/usb-serial/drivers/ftdi_sio/new_id

    * You may have have to remove package `brltty`, if it's installed.
    * The board should have enumerated as `/dev/ttyUSB{0,1}`. `ttyUSB1` will be the UART backchannel.
    * **For OS X**: We need to hack the kernel extension (kext) a little bit:
    * First, install the FTDI VCP driver from <www.ftdichip.com/.../VCP.htm&gt;
    * Edit `/System/Library/Extensions/FTDIUSBSerialDriver.kext/Contents/Info.plist` with a text editor.
    * Add the following block somewhere under `IOKitPersonalities`.

    <key>TI_XDS100v3</key>
    <dict>
    <key>CFBundleIdentifier</key>
    <string>com.FTDI.driver.FTDIUSBSerialDriver</string>
    <key>IOClass</key>
    <string>FTDIUSBSerialDriver</string>
    <key>IOProviderClass</key>
    <string>IOUSBInterface</string>
    <key>bConfigurationValue</key>
    <integer>1</integer>
    <key>bInterfaceNumber</key>
    <integer>1</integer>
    <key>idProduct</key>
    <integer>42705</integer>
    <key>idVendor</key>
    <integer>1027</integer>
    </dict>

    * If the kext is loaded at the time you perform this change, you will have to either reload it or reboot the Mac. At the time of writing this guide, reloading the kext would fail with errors so rebooting appears to be the only solution.
    * After you have rebooted, plug in the SmartRF, turn it on and then load the kext manually:

    sudo kextload /System/Library/Extensions/FTDIUSBSerialDriver.kext

    If everything worked, the XDS will have enumerated as `/dev/tty.usbserial-<serial-number>`

    Hope this help,
    Jonas
  • Thanks for the whole explanation !
  • Hello jonas, I tried this exact step for sensortag + cc debugger however it is not coming under my dev/ttyUSB

    Please guide.
  • If I remember correctly, you don't have to do anything when you plugged CC-DEVPACK-DEBUGGER to Linux. It should emulate virtual COM directly. Do you use "ls /dev" to check it?
  • Hello Chen,

    Thank You for the response. Yes, I did check the /dev directory it does not enumerate as ttyUSB .

    I tried following

    sudo chmod 666 /sys/bus/usb-serial/drivers/ftdi_sio/new_id
    nano /sys/bus/usb-serial/drivers/ftdi_sio/new_id

    and then added the vendor id and product id then saved the file.

    However whenever I try to open ttyUSB0 or ttyUSB1 through putty , it gives me an error than unable to open the port.
  • Since you are using CC-DEVPACK-DEBUGGER, it would emulated ttyACM0 and ttyACM1, not ttyUSBx

  • Hello chen,

    Thank You very much it worked. I used CC2538dk before , when i enabled the uart back channel for cc2538 it enumerates as ttyUSB. how did you find out that dev-pack would enumerate as ttyACM and not as ttyUSB? and do you know what's the difference between both of them?
  • I have lots of experiences testing these HW so I know most of details. CC2538DK is based on SmartRF06 which use FTDI USB-to-Serial chip so it would emulate ttyUSBx. However, devpack debugger uses XDS110 which is TI chip and it would emulated ttyACM0 and ttyACM1.
  • Thank You, that was informative.
  • You are welcome.