Teensy 3.6 Serial Communication Issue

Status
Not open for further replies.
Hi all,

I'm having a problem. I have a Teensy 3.6, and have installed latest Arduino and Teensyduino. macOS 10.13.4. I've set the board to Teensy 3.6, 180Mhz, and "Serial" for USB Type. If I compile and upload the "EchoBoth" sketch, I get two problems:

1. The board (now in Serial mode) Arduino fails to get Teensy to enter program mode and I am forced to press the button on the Teensy every time I want to re-upload.

2. No serial port is enumerated. I realize the Teensy is by default a HID device, but if I set it to Serial I expect a serial port (that I can open in-software) to enumerate. Instead I see "[no device] (Teensy 3.6) Serial" in the port list. Help!

Screen Shot 2018-08-15 at 7.24.55 PM.png
Screen Shot 2018-08-15 at 7.24.53 PM.png
 
Last edited:
This isn't windows? What version of TeensyDuino? Version 1.42 is the latest and has two sets of device listings on Tools/Port. Was the UDEV rules added if needed? Is there another terminal program connecting to the Teensy in USB mode so The IDE cannot?
 
Oops sorry macOS! I only see "[no device] (Teensy 3.6) Serial" in the port list. This is after I programmed the Teensy with “Serial” as the USB type.
 
Sounds like TeensyDuino 1.42? Not made clear - not sure how the Mac menu may differ.
Teensy is HID in program mode and when programmed that way. Uploaded as a Serial sketch can have HID too, but TD 1.42 can see HID.
Sounds like the sketch isn't running right? Is anything connected - Serial1 and ???

Try a Simple blink sketch. There is one here I like. It will take a button press the first time but should come online after that.
 
Sounds like TeensyDuino 1.42? Not made clear - not sure how the Mac menu may differ.
Teensy is HID in program mode and when programmed that way. Uploaded as a Serial sketch can have HID too, but TD 1.42 can see HID.
Sounds like the sketch isn't running right? Is anything connected - Serial1 and ???

Try a Simple blink sketch. There is one here I like. It will take a button press the first time but should come online after that.

I can upload and run a sketch no problem, though I do have to press the button every time when the board isn’t set to HID mode. Also, I have no serial communication even when set to Serial.
 
Bummer - that is not right. Did you try the linked Blink sketch? It support Send and Return over USB. I should update to do some unique blink on incoming USB in case it ever works one way somehow.

It isn't noted or pictured what is connected or soldered to the T_3.6? Assume GND and pins 0 and 1 are connected to another 3.3V Serial device given the example sketch noted?

Will take more details to get any farther ...
 
EchoBoth example works for me on T3.6 with IDE 1.8.5/1.42 and macos 10.13.6

i tested with Serial1 Rx jumpered to Tx -- of course it prints infinite characters once you type/send a character from USB monitor!
I can upload other sketches without a problem.

another simple Serialx test would be
Code:
//jumper rx to tx
#define Serialx Serial1
void setup() {
  Serial.begin(9600);
  while (!Serial);  delay(2000);
  Serialx.begin(9600);

}

void loop() {
  Serialx.println("ab");
  while (Serialx.available()) {
    char c = Serialx.read();
    Serial.print(c);
  }
  Serial.println();
  delay(1000);
}
jumper Serialx Rx to Tx
 
There might be a kernel extension in macOS which blocks the serial communication. I had this once from an outdated CP2102 USB to TTL adapter. Removing that kext file and rebooting the MacBook solved the problem.
 
Well it's a completely fresh install of macOS - no lingering old drivers hanging around. Bottom line is: no matter what sketch I'm running, I don't get a serial port for the Teensy. Only "[no device] (Teensy 3.6) Serial" which doesn't help me and doesn't actually give me serial communication.
 
That is strange. Can't reproduce it on my MacBook Pro with macOS 10.13.6. Checked with two different Teensy 3.6. You might give TyCommander (an alternative Teensy loader) a try. This would allow a differential diagnose to see if it's your Mac/Arduino or if it's the Teensy. Download here. More info here.
 
Something is definitely not right with your Mac's setup. I know you've said is a fresh install, but something clearly different from other Macs.

Just to be clear, does using a non-Serial setting in Tools > USB Type (like MIDI or Keyboard) allow auto-reboot and the serial monitor to work?

On the serial mystery, can you type this in Terminal

Code:
ioreg |  grep "USB Serial" -B 12 -A 9

Here's what it's supposed to look like. This is with MacOS 10.13.5 on an early-2015 Macbook Air.

sc.jpg

Also, in Teensy Loader's Help menu is Verbose Info. Maybe that will show some helpful info?
 
Something is definitely not right with your Mac's setup. I know you've said is a fresh install, but something clearly different from other Macs.

Just to be clear, does using a non-Serial setting in Tools > USB Type (like MIDI or Keyboard) allow auto-reboot and the serial monitor to work?

On the serial mystery, can you type this in Terminal

Code:
ioreg |  grep "USB Serial" -B 12 -A 9

Here's what it's supposed to look like. This is with MacOS 10.13.5 on an early-2015 Macbook Air.

View attachment 14478

Also, in Teensy Loader's Help menu is Verbose Info. Maybe that will show some helpful info?

Thanks Paul! I'll try that and get back to you. I'm also going to try on another Mac to rule that out.
 
When it does work, you should see something like this.

sc.jpg

Notice the "usb:14200000" in the lower right corner of the Arduino window, where I drew an arrow in the screenshot.

This number is the hardware location which precisely identifies the USB device where Teensy has appeared. On my Macbook Air it's 14200000 if I plug into the left side USB port, and it becomes 14100000 if plugged into the right side port. The number changes again if there's a hub between Teensy and the Mac. Different numbers may appear on different Mac models, but the 8 digit format and general concept is the same.

You should see that the same location number as Arduino in the ioreg output. If you click "About This Mac", then System Report, and select USB in the hardware list, within the info panel you should the location number. This is how you can tell it's the correct USB device, even if the drivers aren't loading or there are other mysterious problems.

Prior to version 1.42, Teensyduino depended entirely on the Mac's drivers, like all other Arduino boards do. With 1.42, the device detection was changed to look for these native MacOS location ID numbers (and a lot of other Mac-specific stuff - using Apple's IOKit and CoreFoundation APIs). Previously a problem like this would have been "no device detected". Now we can at least see the USB device is present, even though the driver isn't loading or isn't working, for reasons unknown. (and I would very, very much like to know the reason... though it's usually very difficult to learn such things, even with the Mac physically present)

I know that doesn't answer the question of *why* your Mac isn't loading the CDC driver. But at least the native MacOS location ID numbers are used and shown now in Arduino (only in that lower right corner), so you can match things up while troubleshooting with Apple's tools.
 
Status
Not open for further replies.
Back
Top