Articles › Electronics

USB-C board dead on a C-to-C cable? It is missing 5.1 kΩ on the CC pins

A USB-C board that powers up on an A-to-C cable but not on C-to-C lacks a separate 5.1 kΩ on CC1 and CC2. Why the charger gives 0 V, how to measure it and how to fix it.

Beginner 5 min read October 23, 2026 New maker tricks worth trying in 2026 · lesson 12/20

What you will learn
  • A USB-C power source keeps VBUS at 0 V until it sees the device's Rd resistor on a CC pin. A board with no Rd gets no power at all.
  • A power sink needs one 5.1 kΩ to ground on CC1 and another on CC2, separate. Never share one resistor between them.
  • A-to-C cables work because a USB-A port always supplies 5 V and the cable's C plug already contains a 56 kΩ resistor.
  • Quick check with a multimeter, power off: CC1 to ground and CC2 to ground should both read about 5.1 kΩ.

Plenty of low-cost ESP32 boards and modules have a USB-C port, yet stay completely dead on a C-to-C cable from a phone or laptop charger, while an old A-to-C cable works fine. The cause is a missing 5.1 kΩ resistor on each of the two CC pins: the USB-C charger cannot tell anything is plugged in, so it never turns the power on.

This lesson covers how that works, how to measure it and how to fix it. Everything stays at 5 V USB power. If you are unsure about powering a board in general, read powering an ESP32 correctly alongside this.

What the CC pins are

A USB-C plug has two Configuration Channel pins, CC1 and CC2 (two because the plug is reversible). The two ends use them to identify each other before any power flows.

  • The power source, such as a charger, has a pull-up resistor Rp on CC.
  • The power sink, such as our board, has a pull-down resistor Rd = 5.1 kΩ to ground on CC.

When they connect, Rp and Rd form a voltage divider. The charger sees the CC voltage drop, knows a sink is attached, and only then switches VBUS on.

On a spec-compliant USB-C port with nothing attached, VBUS must be 0 V. It applies 5 V only after it detects a sink through the CC pin.

Why A-to-C works but C-to-C does not

A-to-C cableC-to-C cable
Power sourceUSB-A port, 5 V all the timeUSB-C port, waits to see Rd
Where Rp is56 kΩ to VBUS inside the cable’s pluginside the charger
Board without Rdstill powered0 V
Board with both Rdpoweredpowered

A legacy A-to-C cable is specified to carry a 56 kΩ Rp in its plug, which tells the device it is on an ordinary USB port. A USB-A port has no CC pin and supplies power all the time anyway. So a board without Rd looks fine, right up until the day you switch to a C-to-C cable.

Worked example: how the charger reads the CC voltage

The Rp value pulled up to 5 V advertises how much current the charger offers: 56 kΩ = default USB power, 22 kΩ = 1.5 A, 10 kΩ = 3 A. With our board’s 5.1 kΩ Rd, the CC voltage is a plain divider:

V_CC = 5 V × 5.1 ÷ (Rp + 5.1)

  1. Rp 56 kΩ: 5 × 5.1 ÷ 61.1 = 0.42 V, inside 0.20–0.66 V = default USB power.
  2. Rp 22 kΩ: 5 × 5.1 ÷ 27.1 = 0.94 V, inside 0.66–1.23 V = up to 1.5 A.
  3. Rp 10 kΩ: 5 × 5.1 ÷ 15.1 = 1.69 V, above 1.23 V = up to 3 A.
  4. No Rd: CC has no path to ground, the voltage never drops, and the charger decides nothing is attached. VBUS = 0 V.

The voltage bands above come from a commonly used summary table; below 0.20 V means no source is connected. A typical ESP32 board does not need to read this at all: having Rd is enough to get 5 V. But if a board will draw more than the default current (500 mA for USB 2.0), it should read the CC voltage first to see whether the charger can supply it.

Charger RpVoltage on 5.1k RdMeans56 kΩ0.42 Vdefault USB22 kΩ0.94 V1.5 A10 kΩ1.69 V3 Ano Rd0 Vno power
The voltage on 5.1 kΩ Rd tells the charger what to supply

One resistor per pin, never shared

The spec gives CC1 and CC2 their own separate Rd. The Raspberry Pi 4 (2019) tied CC1 and CC2 together into a single 5.1 kΩ resistor. It worked with simple cables, but with e-marked cables (those rated for fast data or 5 A), compliant chargers could refuse to supply power. A write-up on kernel.org called this a common design mistake and advised copying the spec’s sink circuit exactly.

The correct sink circuit for a USB 2.0 board:

  • CC1 → 5.1 kΩ → GND
  • CC2 → 5.1 kΩ → GND (a second resistor)
  • The two D+ pins (A6, B6) tied together, and the two D− pins (A7, B7) tied together, so data works in either orientation.
  • SuperSpeed pins left unconnected; ESP32 chips only support USB 2.0.

Measure your board with a multimeter

Unplug the board first and set the multimeter to resistance (if that is new, see multimeter basics).

Measure betweenExpectedIf not
CC1 and GNDabout 5.1 kΩopen circuit = no Rd
CC2 and GNDabout 5.1 kΩsame
CC1 and CC2about 10.2 kΩ (two in series via ground)near 0 Ω = tied together, Pi 4 style

On a small board, find the CC test points from its schematic, or plug a USB-C breakout in to reach them. An even easier test: plug a C-to-C cable into a USB-C charger. If nothing lights up but an A-to-C cable works, the board almost certainly lacks Rd.

How to fix it

  1. Use an A-to-C cable from a USB-A port. The simplest fix, no rework.
  2. Add Rd. If you solder well, add 5.1 kΩ from CC1 to ground and another from CC2 to ground. The USB-C pads are tiny, so watch for bridges to neighbouring pins.
  3. Designing your own board? Always fit two 5.1 kΩ 1% resistors.
  4. Buying a new board? Check its schematic for separate 5.1 kΩ resistors on CC1 and CC2 before you buy.

Common mistakes

  • One resistor shared by both CC pins. Works with some cables, fails with e-marked ones.
  • Using 10 kΩ because it was in the drawer. The charger misreads the voltage. Use 5.1 kΩ.
  • Blaming the C-to-C cable. Another cable fails the same way; the problem is the board, not the cable.
  • Wiring only one D+/D− pair. Flashing works with the plug one way round, and the computer cannot see the board the other way.
  • Expecting 9 V or 20 V. Rd alone gets you 5 V. Higher voltages need a PD chip, and this lesson stays at 5 V low voltage.

Sources

FAQ

Can I use 4.7 kΩ or 10 kΩ instead of 5.1 kΩ?

Do not swap it. The specified Rd is 5.1 kΩ, and the charger measures the voltage across it to decide whether a device is attached and how much it can supply. A different value can throw that reading off. Use 5.1 kΩ, 1% tolerance.

Will my board get 9 V or 20 V from a fast charger?

No. With only Rd, a charger supplies 5 V. Higher voltages are negotiated over USB Power Delivery, which needs a separate PD controller chip; the ESP32 itself cannot do PD.

My board has no Rd. Do I throw it away?

No. Use an A-to-C cable from a USB-A port on a computer or charger and it works. If you are good with a soldering iron you can add 5.1 kΩ from each CC pin to ground, but the pads are tiny, so only try it if you are confident.

Circuits and code were tested on sample boards. Boards differ in pin layout, so check your board's pinout before you power anything.