Forum Rule: Always post complete source code & details to reproduce any issue!
Results 1 to 7 of 7

Thread: Unable to Assign Teensy 3.2 to ttyACM* port on Linux

  1. #1
    Junior Member
    Join Date
    Sep 2018
    Posts
    3

    Unable to Assign Teensy 3.2 to ttyACM* port on Linux

    Hi there,

    I've been trying to get a Teensy 3.2 to show up as a serial device on Linux for a few days now. In particular, I'm using a Jetson TK1 board, but I have also been unsuccessful using a laptop with Ubuntu 16.04. I've already installed the udev rules and programmed the Teensy through Arduino IDE with the LED blink examples. The problem isn't being unable to program the Teensy at all, but I need it to show up at a port that can be accessed by rosserial. In Arduino IDE, the port with the Teensy is detected and appears as "Port: /dev/bus/usb/001/023" - basically, where it is connected on my USB hub. Ideally, the Teensy will show up under /dev/ttyACM0, but Linux will not assign it to this port for some reason. Are there any fixes to this problem? I can't change port permissions because nothing shows up when I run ls /dev/ttyACM* or even ls /dev/ttyUSB*. Any suggestions would be appreciated.

    Here is the output from tail -f var/log/syslog when the Teensy is plugged in:
    Sep 13 16:13:16 tegra-ubuntu kernel: [22794.919455] usb 1-3.2: New USB device found, idVendor=16c0, idProduct=0483
    Sep 13 16:13:16 tegra-ubuntu kernel: [22794.919508] usb 1-3.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
    Sep 13 16:13:16 tegra-ubuntu kernel: [22794.919548] usb 1-3.2: Product: USB Serial
    Sep 13 16:13:16 tegra-ubuntu kernel: [22794.919584] usb 1-3.2: Manufacturer: Teensyduino
    Sep 13 16:13:16 tegra-ubuntu kernel: [22794.919619] usb 1-3.2: SerialNumber: 2199030
    Sep 13 16:14:49 tegra-ubuntu wpa_supplicant[893]: wlan1: CTRL-EVENT-SCAN-STARTED
    Sep 13 16:14:54 tegra-ubuntu wpa_supplicant[893]: nl80211: send_and_recv->nl_recvmsgs failed: -33

  2. #2
    Senior Member PaulStoffregen's Avatar
    Join Date
    Nov 2012
    Posts
    25,066
    Maybe this can help?

    https://www.jetsonhacks.com/2017/11/...elopment-kits/

    The command to type may be "./installCDCACM.sh", rather than "./installCDCACMModule.sh" as the article says.


    Just a quick check... you're running Arduino 1.8.7 and Teensyduino 1.44-beta2 on your Jetson TX1 board, right? I've tested only on Jetson TX2...

  3. #3
    Senior Member+ manitou's Avatar
    Join Date
    Jan 2013
    Posts
    2,655
    Maybe try uploading and running a sketch that uses Serial.print(), the blink sketch does not use the USB serial.

    also "Port: /dev/bus/usb/001/023" shows up if Teensy is in HID mode (program mode)

  4. #4
    Senior Member PaulStoffregen's Avatar
    Join Date
    Nov 2012
    Posts
    25,066
    Seeing something like /dev/bus/usb/001/023 is the correct behavior when the Linux kernel doesn't have the cdc_acm driver, either built in or as a loadable module, but the kernel does have the usbfs driver.

    Since version 1.42, Teensyduino is able to detect Teensy on all 3 platforms and show it in the Ports menu, even when the operating system is missing a driver.

    Unfortunately, nVidia didn't put cdc_asm into their kernel for the Jetson TX1 & TX2. Pretty sure they will add it for future versions.

  5. #5
    Junior Member
    Join Date
    Sep 2018
    Posts
    3
    I'm working with the Jetson TK1, not the TX1. Consequently, the fix you've linked doesn't work for my board, as I'm running an older version of L4T (21.3, I believe) and the newer versions aren't compatible.

  6. #6
    Junior Member
    Join Date
    Sep 2018
    Posts
    3
    Quote Originally Posted by gossea View Post
    I'm working with the Jetson TK1, not the TX1. Consequently, the fix you've linked doesn't work for my board, as I'm running an older version of L4T (21.3, I believe) and the newer versions aren't compatible.
    Working now - the issue was solved by reinstalling the Grinch kernel on the TK1.

  7. #7
    Senior Member PaulStoffregen's Avatar
    Join Date
    Nov 2012
    Posts
    25,066
    The simplest "solution" is to set Tools > USB Type to a non-serial option, like MIDI or RawHID.

    If you really want to use USB serial, you'll need to cdc_acm driver. Maybe ask on nVidia's forum for support to get the cdc_acm driver installed on your board? ---- EDIT: I see you got it. Good.

    PJRC tests on a single Linux system for each version (except for 32 bit x86, which isn't tested at all). For AARCH64, testing is only done on Jetson TX2. Generally the software works on other Linux systems, but the reality of Linux involves a massive number of slightly different systems. I'm afraid this is where support for Linux ends. When things don't work due to differences on other systems, this sort of generic advise is all I can offer.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •