I have 2 Arduino Teensy 3.2 boards that I'm trying to implement serial communication between the 2 boards. I have successfully done this by connecting RX1 of the 1st Teensy with TX1 of 2nd Teensy and TX1 of 1st to RX1 2nd.

However I was wondering if I could send serial messages between the Teensys i.e. do the same thing, by connect the 2 Teensys via the USB port? Or is this USB port reserved to connecting the Teensy to a computer?

enter image description here

  • There is alpha software at github.com/felis/UHS30 to setup USB host mode, so it could be possible, but you might be better off doing what you are doing.
    – Dave X
    Dec 16, 2016 at 4:03
  • 1
    But why? Uart is good and easy, RS485 is more robust. USB is complicated and not very beneficial.
    – Paul
    Dec 16, 2016 at 7:24
  • I thought you could reuse the D+ and D- pins to do e.g. software serial over them. But it seems like you can't use those pins as GPIO.
    – Gerben
    Dec 16, 2016 at 13:45

2 Answers 2


Note: The Teensy you pictured is an ARM based (NXP MK20DX256) Arduino which is very different from well established legacy Arduinos. There have been (and, maybe, still are) "bugs" in some ARM Arduino code. So Teensy pins used outside their normal (expected) purpose my or may not work like similar pins on legacy Arduino platforms.

In order for 2 USBs to talk to each other, one needs to be a USB Host and the other a USB Device. There can be multiple USB Devices so the USB protocol is made more complex to handle this feature. There can be many types of USB Devices each with their own underlying protocol so the USB protocol is made more complex to handle this additional feature. A serial port USB Device uses the CDC or Communications Device Class protocol.

So, in order to have two Teensy board to talk to one another using the USB CDC protocol, one of the Teensy boards needs to be turned from a USB Device to a USB Host. Which is not trivial. Most developers will turn to the OEM of the processor. As most processor OEMs offer free software for such purposes to promote the sales of their hardware.

  • How about connecting the USB of 1 teensy to the UART of a second? I know there are usb to uart adapters but from what I understand they are for PCs?
    – bakalolo
    Dec 17, 2016 at 0:21
  • There is soooo much USB overhead (because of all the features USB supports) that you would need some fairly complex software behind the "other teensy's" UART. Not to mention you need some hardware to convert from USB levels to TTL levels. See the V-USB project for more details.
    – st2000
    Dec 17, 2016 at 2:07

Teensy 3.5, 3.6, 4.0 and 4.1 have a second USB interface which is configured as USB Host. You can use this interface in CDC mode (see @st2000 answer) and connect it to the normal USB device plug of any other Teensy if you need to. But please note that a T3.2 can transmit up to about 3 MBaud over its serial UARTS. So, I don't see any reason to use USB for board to board communication.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.