I designed two custom PCB boards with one acting as my main Sensor Board and having a Controller (ESP32) interfacing all the sensors and peripherals. The other board is a programmer board that houses a CP2102 circuitry for converting USB protocol into UART for programming the ESP32 chipset using Automatic bootloader. The two boards are supposed to be connected through USB type C connectors. Both boards have a female USB-C connector on them and hence I have a male-to-male USB-C cable for connecting the boards.

I have 5 connections that need to be connected from Programmer Board to Main Board namely:

  • RXD
  • TXD
  • RTS
  • DTR
  • GND

Below is the schematic for both the boards.

enter image description here enter image description here

The issue is that I am getting continuity for RXD, TXD and GND between the two boards but the RTS and DTR pins are not showing any continuity. Did I miss something with respect to circuit design? Was there some standard practice I should have followed? Please guide me? Or this is some cable issue?

  • 1
    \$\begingroup\$ Is the USB Type-C to Type-C cable labeled as USB 2.0 cable, or Full Feature cable? \$\endgroup\$
    – Justme
    Jul 17, 2021 at 21:39

1 Answer 1


The problem you face is that USB-C cables are not wired 1:1 as you have assumed. Furthermore not all USB-C cables are made equal.

This is one of the many reasons why you should not use standardised connectors for non-standard purposes.

Firstly you need to be sure that it is a full-featured USB-C cable, one which is intended for use with USB3.x and so includes the superspeed (SS) wires - i.e. is not a legacy USB 2.0 only cable (as mentioned by @Justme).

Secondly, once you have a USB3.x compatible cable, things will still not work as you desire. For the SS lines, the USB-C cable routes them in cross-over configuration - Tx1+ to Rx1+, Tx1- to Rx1- and so on. This means your DTR and RTS lines don't actually connect through in the way you think they do.

The DTR line from the "main board" connector is on TX1+ (A2) and TX2+ (B2), which maps to the unconnected RX1+ (B11) and RX2+ (A11) pins on the "programmer", hence no connectivity.

The RTS line from the "main board" is on RX1- (B10) and RX2- (A10), which connect through to TX1- (A3) and TX2- (B3) on the "programmer". Again no connection is made.

  • 1
    \$\begingroup\$ Check that if it is a USB2 only passive cable, as it would not have those USB3 wirings you used. Indeed, connectors usage should be left for standard use, as the next time someone accidentally plugs a standard device with your custom device who knows what gets damaged. \$\endgroup\$
    – Justme
    Jul 17, 2021 at 19:03
  • \$\begingroup\$ Thank you all for the amazing solutions \$\endgroup\$ Jul 26, 2021 at 14:36

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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