# Model 3 USB-C Charging Information



## garsh (Apr 4, 2016)

Benson Leung is a Google Engineer who gained some notoriety for giving thorough, scathing Amazon reviews of early USB-A to USB-C cables. At one point, he tested a cable that was so wrongly constructed that it destroyed his Chromebook. This one engineer, through his actions, managed to rid the world of improperly-engineered USB-C cables. Once a bad cable on Amazon received a Benson review, it was doomed. The company would have no choice but to pull all of their stock, re-engineer it, and replace it with something correct.

I came across this excellent article on USB standards written Benson Leung. It provides an overview of how USB has evolved, and how backwards compatibility works between legacy USB (such as the ports in a Tesla) and USB-C devices.

*USB Type-C™'s Configuration Channel*

This part is probably most interesting:

_Legacy cables must use "Default USB Power" which at a minimum, means that it restricts it to 500mA for USB 2.0 or 900mA for USB 3.1. However, "Default USB Power" still allows for the negotiation on USB's data lines D+ and D- using all of the protocols that would have worked on USB A-to-Micro-B cables, meaning that a Default USB Power legacy cable should be able to provide from 500mA to 2.4A of charging, as long as the USB-A charger and the USB-C device (for example a phone) support the charging method (for example, USB BC 1.2 or Apple BrickID 2.4A method)._​​
I measured the current arriving at my USB-C phone via Tesla's USB-A to USB-C adapter cable. It's receiving 1.5 amps.
The question becomes, is it above 500mA because the car & phone negotiated a higher rate after the initial connection, or is Tesla using a non-spec-compliant USB-A to USB-C cable?










You can read his other great articles on USB-C as well:
https://medium.com/@leung.benson


----------



## MelindaV (Apr 2, 2016)

garsh said:


> is it above 500mA because the car & phone negotiated a higher rate after the initial connection, or is Tesla using a non-spec-compliant USB-A to USB-C cable?


I'd tend toward thinking it is non-spec compliant being so far above 500mA
-or- the device reading the power is incorrect in how it reads it. Have you tested it on a known power source to verify it?


----------



## iChris93 (Feb 3, 2017)

Do you have one of those USB splitters that gives power but no data to one port? That way, you could test the current with no data connection and see if it’s still >500 mA.


----------



## Ed Woodrick (May 26, 2018)

garsh said:


> Benson Leung is a Google Engineer who gained some notoriety for giving thorough, scathing Amazon reviews of early USB-A to USB-C cables. At one point, he tested a cable that was so wrongly constructed that it destroyed his Chromebook. This one engineer, through his actions, managed to rid the world of improperly-engineered USB-C cables. Once a bad cable on Amazon received a Benson review, it was doomed. The company would have no choice but to pull all of their stock, re-engineer it, and replace it with something correct.
> 
> I came across this excellent article on USB standards written Benson Leung. It provides an overview of how USB has evolved, and how backwards compatibility works between legacy USB (such as the ports in a Tesla) and USB-C devices.
> 
> ...


I'd be pretty assured that Tesla is using a commonly available chipset and that the plugs are just attached to one of their motherboards. That's why thinks like keyboards and mice can be plugged in.

No anticipated conspiracy their here, move along.


----------



## garsh (Apr 4, 2016)

Ed Woodrick said:


> I'd be pretty assured that Tesla is using a commonly available chipset and that the plugs are just attached to one of their motherboards. That's why thinks like keyboards and mice can be plugged in.


The problem is that if the cable itself can be designed with the wrong pull-down resistor. This could trick the car into thinking that it's safe to supply 1500 mA when it really shouldn't. This was the most common issue with the original batch of USB-A to USB-C cables. I may have to dig out my multimeter and measure the resistor.

I *think* there's a way to view the USB handshaking between the phone and the charging device as well, but I can't remember what app I was using. I might track that down as well to confirm that the extra current is only supplied after a proper handshake.


----------



## JWardell (May 9, 2016)

It's not typical for any resistors to be in the cables. It's in the chips in the USB hardware that negotiate with the device being connected.
It used to be all data hubs only provided 500mA, and chargers had resistors on the data lines; devices saw a lack of data and a particular resistance on the data lines and knew they could then draw more than 500mA. This is why a bunch of chargers would only work with iPhones or QuickCharge or whatever but not charge fast when connected to devices of other brands.
Then along came Anker and other higher-end charger manufacturers who managed to figure out ways to make their chargers smart enough to figure out what was connected and be compatible with multiple charging types. 

Now we finally have this all standardized with USB-C and USB-PD and both devices can support and negotiate from a menu of voltages and currents.
But in none of these cases have resistors ever been in the cable.

The only exception I can think is charge-only cables which are two-wire and have no connection on the data pin; they might have a resistor at the device plug and go back to only being compatible with one charge type.

Anyway Tesla has decent USB hubs that can negotiate different charge currents and while they initially only supported 5V 1 amp, software was updated to support 2.4A. But maybe there are still some exceptions with some phone brands, or maybe you have a charge-only cable that is not connecting the data lines and prevents negotiation. (I tend to throw those cables in the trash)


----------



## garsh (Apr 4, 2016)

JWardell said:


> It's not typical for any resistors to be in the cables.


BZZZT! Wrong. USB-A to USB-C cables must have an appropriate pullup resister installed. Read the article I linked.

_*The cables* and adapters *themselves must provide the proper CC pullup* or pulldown in lieu of the Type-A or Type-B port that is missing the CC pin. Here are the two classes of cables :_​​_Legacy Host Adapter - *Standard-A plug or Micro-B receptacle on one end - Requires a 56kΩ pull-up from CC to Vbus*_​


----------



## garsh (Apr 4, 2016)

Benson provides information for testing a cable using a Chromebook Pixel here:
(edit: Google Plus link killed. Thanks Google! )
I tried to follow the instructions at the end, where you don't have to put your device into developer mode.
Unfortunately, he's not really clear about what the various log messages mean.
I took the Tesla cable, plugged the USB-A end into a USB charger, and the USB-C end into a Pixel.
I got the following dmesg entries in chrome://system:

[110475.626506] PDLOG 2018/12/05 00:40:25.053 P0 SNK (not charging) Charger VBUS 5000mV max 5000mV / 500mA ​[110475.632657] PDLOG 2018/12/05 00:40:25.417 P0 SNK (not charging) Charger VBUS 5000mV max 5000mV / 500mA ​[110475.638774] PDLOG 2018/12/05 00:40:25.681 P0 SNK Charger ??? 2800mV max 5000mV / 500mA ​[110475.644961] PDLOG 2018/12/05 00:40:26.287 P0 SNK Charger ??? 5260mV max 5000mV / 2000mA ​[110475.651086] PDLOG 2018/12/05 00:40:43.702 P0 SNK Charger Proprietary 4763mV max 5000mV / 1524mA​
My best guess is that this appears to be a USB power delivery negotiation (thus, PDLOG) that starts off assuming 500mA, and then settles on 1524mA. If so, then it looks like a good cable.


----------



## JWardell (May 9, 2016)

garsh said:


> BZZZT! Wrong. USB-A to USB-C cables must have an appropriate pullup resister installed. Read the article I linked.
> 
> _*The cables* and adapters *themselves must provide the proper CC pullup* or pulldown in lieu of the Type-A or Type-B port that is missing the CC pin. Here are the two classes of cables :_​​_Legacy Host Adapter - *Standard-A plug or Micro-B receptacle on one end - Requires a 56kΩ pull-up from CC to Vbus*_​


Like I was saying things have changed and increased in complexity with USB-C and I don't really know much about that newfangled stuff other than everything should be made with C ports from now on


----------



## Ed Woodrick (May 26, 2018)

garsh said:


> BZZZT! Wrong. USB-A to USB-C cables must have an appropriate pullup resister installed. Read the article I linked.
> 
> _*The cables* and adapters *themselves must provide the proper CC pullup* or pulldown in lieu of the Type-A or Type-B port that is missing the CC pin. Here are the two classes of cables :_​​_Legacy Host Adapter - *Standard-A plug or Micro-B receptacle on one end - Requires a 56kΩ pull-up from CC to Vbus*_​


BZZZT! Would be right, except that these aren't USB C ports. And the cable between the motherboard and the socket are not "cables" in the sense that everyone is using it. They are only wires that provide the connectivity between the board and the remote socket. It's the same thing as the copper traces between the chip on your phone and the connector on the phone.


----------



## garsh (Apr 4, 2016)

Ed Woodrick said:


> BZZZT! Would be right, except that these aren't USB C ports. And the cable between the motherboard and the socket are not "cables" in the sense that everyone is using it.


You are confused. We're talking specifically about the USB-A to USB-C cable that Tesla sells for charging USB-C phones in the Model 3. We're not talking about the car's ports.


----------



## garsh (Apr 4, 2016)

I decided to just email Benson.
It turns out that he also owns a Model 3 and has already tested the cable and found that it is spec compliant.


----------



## garsh (Apr 4, 2016)

I used my Chromebook pixel with the front and rear USB ports on the Model 3. Here are the results.

Front USB ports

[158985.823715] PDLOG 2018/12/06 01:21:21.159 P0 SNK (not charging) Charger VBUS 5000mV max 5000mV / 500mA​[158985.829860] PDLOG 2018/12/06 01:21:21.524 P0 SNK (not charging) Charger VBUS 5000mV max 5000mV / 500mA​[158985.835982] PDLOG 2018/12/06 01:21:21.786 P0 SNK Charger ??? 2932mV max 5000mV / 500mA​[158985.842123] PDLOG 2018/12/06 01:21:22.499 P0 SNK Charger ??? 5153mV max 5000mV / 1500mA​[158985.848281] PDLOG 2018/12/06 01:21:24.260 P0 Disconnected​[158985.854528] PDLOG 2018/12/06 01:21:25.245 P0 SNK (not charging) Charger VBUS 5000mV max 5000mV / 500mA​[158985.860714] PDLOG 2018/12/06 01:21:25.622 P0 SNK (not charging) Charger VBUS 5000mV max 5000mV / 500mA​[158985.866824] PDLOG 2018/12/06 01:21:25.884 P0 SNK Charger ??? 3372mV max 5000mV / 500mA​
Rear USB ports

[159166.449682] PDLOG 2018/12/06 01:24:28.062 P0 SNK Charger ??? 1636mV max 5000mV / 0mA​[159166.455883] PDLOG 2018/12/06 01:24:28.066 P0 Disconnected​[159226.658288] PDLOG 2018/12/06 01:25:26.257 P0 SNK (not charging) Charger VBUS 5000mV max 5000mV / 500mA​[159226.664518] PDLOG 2018/12/06 01:25:26.611 P0 SNK (not charging) Charger VBUS 5000mV max 5000mV / 500mA​[159226.670514] PDLOG 2018/12/06 01:25:26.873 P0 SNK Charger ??? 2900mV max 5000mV / 500mA​[159226.676696] PDLOG 2018/12/06 01:25:27.495 P0 SNK Charger ??? 5191mV max 5000mV / 2400mA​[159226.682874] PDLOG 2018/12/06 01:25:45.405 P0 SNK Charger Proprietary 5046mV max 5000mV / 2400mA​
This means that the rear USB ports implement Apple's proprietary charging protocol, and can supply up to 2.4 amps at 5v (at least to a device that's using Tesla's USB-A to USB-C cable).

But the chromebook doesn't appear to recognize whatever charging protocol the front ports are using. But it appears to be able to supply 1.5 amps at 5v (again, to a USB-C device, when using Tesla's USB-A to USB-C cable).


----------

