Pi4 not working with some chargers (or why you need two cc resistors)

By | June 28, 2019

The new pi has been released and it has a USB Type-C connector for power however people are finding some chargers are not working with it (notably macbook chargers). Some have speculated that this is due to a manufacturer limitation on the power supplies however it is actually due to the incorrect detection circuitry on the Pi end of the USB connection.

For those looking for a solution for the problem and and aren’t interested in the technical details a set of potential solutions are given at the end of this post

The root cause of the problem is the shared cc pull down resistor on the USB Type-C connector. looking at the reduced pi schematics we can see it as R79 which connects to both the CC lines in the connector.

Excerpt from the reduced Pi4 Model B schematics.
Pi CC resistor locations

With most chargers this wont be an issue as basic cables only use one CC line which is connected through the cable and as a result the pi will be detected correctly and receive power. The problem comes in with e-marked cables which use both CC connections. To understand this lets look at the Type C specification document.

Excerpt from the Type-C spec (Figure 4-5)

Per the spec the source device doesn’t provide power on the connector until it detects a sink device being attached. which is done by the presence of the Rd resistor (5.1K ohms) to ground. Active cables also signal their presence using another value or resistor Ra (800 ohms – 1200 ohms). The Type-C specification has a table for looking up what is connected based on the state of the CC lines.


Excerpt from the Type-C spec (Figure 4-10)

In the correct operation the charger will sense the Rd resistor (Or Rd Ra cobination) and turn on the power. The problem comes when an active cable which presents an Ra at both ends is used. On the source side one CC pin will be connected to the Ra resistor in the cable and the other to the CC line to the Pi. The Pi has connected both lines together so presents the combination of the Ra at the pi end of the cable and the Rd pulldown. Calculating the presented resistance assuming a average value of Ra still gives a value well within the Ra range (also note Ra resistances are permitted to go below 800 when cable electronics are drawing power so a resistance lower than 800 will also likely be detected as Ra).


Pi’s presented resistance

With effectively two Ra values presented to the Source end it will detect the Pi as an “Audio Adaptor Accessory”. These are analogue audio interfaces to allow for headphones to be connected to phones for example (although some phones use headphones/adaptors with inbuilt sound-cards which appear as USB devices). The audio adaptor accessory also allows the phone to be charged through the adaptor. This means the the device should not provide power on the Vbus pins which means no power for the Pi.

In order to test this I attempted to power the pi with a macbook charger and its e-marked cable and it didn’t receive power. Two other chargers (a pixel 3 charger and an office electrics desk charger) where tested with the macbooks active cable and none powered the pi. When tested with a couple of non e-marked cables the pi was powered by all the chargers. This lines up with what is expected.

With regards to manufacturer limitations it is possible for chargers and devices to limit which devices they will use however this is only applicable for power deliver modes (higher voltages and currents) as the basic detection doesn’t give scope for such communication to occur.

While this write-up focuses on units with detachable e marked cables as this has a clear set of detection steps when the CC lines are shorted. the problem could also happen with integrated cables if they are interfacing with both CC lines and dislike them being connected.

Now onto some solutions. Assuming the issue you are having is caused by the problem discussed above, using a non e-marked cable (most USB-C phone charger cables are likely this type) rather than an e-marked cable (many laptop charger/thunderbolt cables and any 5A capable cable will be in this category) will allow for the pi to be powered. In addition using older chargers with A-C cables or micro B to C adaptors will also work if they provide enough power as these don’t require CC detection to provide power. Ultimately though the best solution in the long run will be for there to be a board revision for the pi 4 which adds the 2nd CC resistor and fixes the problem.

In conclusion. If you want your USB Type-C devices to work correctly then you need to have two independent CC resistors. If you are interested in adding Type-C connector to your project and don’t want to read the whole spec to do so I have previously written a guide on how to do so.

Since this was published Eben Upton from the Raspberry pi foundation has commented that he expects this will be fixed in a future board revision in comments reported on Techrepublic, no word yet on timings on the release of this revision though.

updates
* 2019/06/28: Added additional information on solutions.
* 2019/07/04: Added test results and checked details on a pi.
* 2019/07/08: Added link to conformation from raspberry pi foundation

23 thoughts on “Pi4 not working with some chargers (or why you need two cc resistors)

  1. Anil

    Another possible issue can occur in use of USB type-c to USB type-c extension cable (with wires on both cc lines) to connect with dual role capability device (hubs, laptops, etc).

    Reply
  2. Pingback: Lilbits 372: Raspberry Pi 4 charging issues (and USB-C confusion) - Liliputing

  3. jianan

    So just cut the trace between CC1 and CC2, and solder another 5k1 between whichever doesn’t have it and ground, right?

    Reply
    1. Tyler Post author

      While that will work in theory the trace linking the cc lines appears to be under the connector which would make this a challenging soldering task.

      Reply
  4. Justin Hamilton

    Minor typo “When tested with a non a couple of non e-marked cables the pi was powered by all the chargers.”

    Reply
  5. Thomas Murray

    On a related note, is the Pi 4 supposed to read the 56k Pull up resistors on legacy USB A/USB-C cables? I tried one without data lines and I was able to pull as much current as I needed. Is this also also an error?
    Is the Pi 4 not negotiating current like previous models?

    Reply
    1. Tyler Post author

      The Combined CC connection is connected to the analogue input on the power supply IC but im not sure if it is being used to determine how much power to draw.

      Reply
  6. Pingback: Craft Calculator: some type C USB chargers do not recognize Raspberry Pi 4 – Arcynewsy

  7. DN

    Did you hear anything back from the RasPi team? Would they redesign?

    Reply
  8. Pingback: Raspberry Pi admits to faulty USB-C design on the Pi 4 | Ars Technica

  9. Jim

    If you want to make a source, what is the proper value for Rp? I’m having trouble finding that…

    Reply
    1. Tyler Post author

      The value of Rp depends on what current the power supply can provide. In the USB-C spec it can be found in Table 4-24 which has values for pullups to both 3.3 and 5v as well as current sources. For a pullup to 5v the values are as follows 56k for default USB power, 22k for 1.5A and 10k for 3A.

      Reply
  10. jig

    what about just cutting the trace from either cc1 or cc2 to ground on the 4Pi board? Does that put it into State “sink attached” (cc1 open, cc2 Rd)?

    Reply
    1. Tyler Post author

      The trace connecting the CC pins is under the connector making accessing it quite difficult, however if it was cut then the pi would only be detected with the cable in one orientation as only one of the cc lines will have the identification pull-down.

      Reply
      1. jig

        understood, thanks!

        i’m mainly thinking about someone who wants/needs to use usbC with an e-marked cable (lets call that usbCe), such as if they’ve already purchased it for use with the 4Pi, or if that’s all they have on-hand. if they use the Pi like i do, i almost never remove the power connector, so once it’s in and working, it’d be fine.

        i’ll have to look at the usbCe connector on the 4Pi more closely, but maybe rather than trace-cutting, a pin in the connector could be cut, removed, or painted over for the same effect, without harming the usbCe cable/power source. separately, an add-on dongle could work (though, at the prices were talking about, it’d have to be REALLY inexpensive to be a viable option).

        Reply
  11. Pingback: The Raspberry Pi Foundation messed up its first USB-C device - The Verge

  12. Pingback: Confirmed: Raspberry Pi 4 suffers from significant USB-C design flaw

  13. Adnan

    Tyler, in what kind of time frame you think might be realistic to expect revision of the board with the fix?

    Reply
  14. victor wachanga

    Great explanation. Raspberry Pi cofounder Eben Upton told TechRepublic the issue will be fixed in a future board revision. Before then, using Raspberry Pi 4’s would be the best way to go.

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *