Compare commits
10 Commits
cb325dcab7
...
9e7ea3eace
Author | SHA1 | Date |
---|---|---|
King Kévin | 9e7ea3eace | |
King Kévin | 984f8ae930 | |
King Kévin | b589acb8ae | |
King Kévin | 3e238fa988 | |
King Kévin | e4a9349ca1 | |
King Kévin | 694e17d5a9 | |
King Kévin | f656806680 | |
King Kévin | 11b3a090f4 | |
King Kévin | 7056147bc7 | |
King Kévin | f84b41576d |
|
@ -1,3 +1,11 @@
|
|||
v1
|
||||
==
|
||||
|
||||
changes:
|
||||
|
||||
- make capabilities more compact
|
||||
- add interpretation purpose part
|
||||
|
||||
v0
|
||||
==
|
||||
|
||||
|
|
2
Makefile
2
Makefile
|
@ -1,6 +1,6 @@
|
|||
# project file name (use for schematic and board layout)
|
||||
NAME ?= usb-microbc_cable_tester
|
||||
SUBSHEET ?=
|
||||
SUBSHEET ?= usb-microbc_cable_tester-mcu
|
||||
# path to KiCad CLI
|
||||
KICAD = kicad-cli
|
||||
# path to qeda
|
||||
|
|
36
README.md
36
README.md
|
@ -1,5 +1,5 @@
|
|||
The USB micro-B and C cable tester identifies functionalities supported by USB cables.
|
||||
It helps figuring out if a USB cable is for charging or to transfer data.
|
||||
The USB micro-B and C cable tester identifies capabilities supported by USB cables and deduces it's purpose.
|
||||
It helps figuring out if a USB cable is for charging or to transfer data, and at which speed.
|
||||
It supports type A to micro-B, A to C, and C to C USB cables.
|
||||
|
||||
usage
|
||||
|
@ -8,7 +8,10 @@ usage
|
|||
- ensure the tester has a non-empty battery in the CR2032/2025, or is externally powered through the USB power port
|
||||
- plug one end of the cable in one of the host ports
|
||||
- plug the other end of the cable in one of the devices ports
|
||||
- the tester will identify the cable's capabilities
|
||||
- the tester will identify the cable's capabilities, on the left side
|
||||
- the tester will then show the cable's purpose, on the right side
|
||||
|
||||
To understand further the capabilities and purpose of a cable, I recommend reading the USB specification, mainly the one for the [type-C connector](https://www.usb.org/document-library/usb-type-cr-cable-and-connector-specification-release-23).
|
||||
|
||||
design choice
|
||||
=============
|
||||
|
@ -24,7 +27,8 @@ do:
|
|||
- C to C: often used for high power charging of phones and laptops
|
||||
- battery operated: it's a very simple device, and this avoids needing to require external power
|
||||
- power port: in case you have no battery or it runs out
|
||||
- USB 3.0: because it is hard to identify if C-C cable support Super-Speed
|
||||
- USB 3.0: because it is hard to identify if C-C cable support SuperSpeed
|
||||
- purpose: deduce from capabilities
|
||||
|
||||
don't:
|
||||
|
||||
|
@ -32,11 +36,29 @@ don't:
|
|||
- A or micro-B 3.0: the connectors that support it are obvious, and it's rare they are used for anything else than Super-Speed transfer (plus they are less common or problematic)
|
||||
- Power Delivery capabilities: this requires complex host software communicating with the eMarker chip in the cable
|
||||
- OTG: even if detecting this functionality is easy, micro-B OTG adapters are not popular anymore
|
||||
- impedance: only the presence of wires is tester, not their impedance
|
||||
|
||||
future:
|
||||
mode of operation
|
||||
-----------------
|
||||
|
||||
- interpret the supported functionalities to show the cable purpose
|
||||
- show a simple cable type result, and not just the individual capabilities
|
||||
Most of the tests just verify if the wires corresponding to capabilities are present in the cable.
|
||||
Some additional tests verify the resistances in the plugs.
|
||||
For more details, check the schematic, and refer to [type-C specification](https://www.usb.org/document-library/usb-type-cr-cable-and-connector-specification-release-23).
|
||||
|
||||
The left side identifies the capabilities.
|
||||
Based on that, a micro-controller (MCU) with map the combination into a purpose on the right side.
|
||||
The left side if independent of the MCU and right side.
|
||||
|
||||
limitation
|
||||
----------
|
||||
|
||||
The tester does not:
|
||||
|
||||
- verify the resistance of wires, particularly the power ones
|
||||
- verify the impedance of wires, particularly the differential ones
|
||||
- verify if the shield(s) is more than just a wire
|
||||
- read out capabilities from electronically marked cables
|
||||
- guarantee USB cable compliance or conformity, as this is [very complex](https://www.usb.org/documents?search=&category%5B%5D=49&type%5B%5D=56&tid_2%5B%5D=41&items_per_page=50)
|
||||
|
||||
alternatives
|
||||
------------
|
||||
|
|
2
library
2
library
|
@ -1 +1 @@
|
|||
Subproject commit 99148daea6eacd9607034755cb8d5db6fa9cbac7
|
||||
Subproject commit e5b0ca3a0f7bb2f5766f3702089849c8915a0f99
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -34,9 +34,9 @@
|
|||
"other_text_thickness": 0.15,
|
||||
"other_text_upright": false,
|
||||
"pads": {
|
||||
"drill": 0.65,
|
||||
"height": 0.7,
|
||||
"width": 0.7
|
||||
"drill": 0.0,
|
||||
"height": 0.75,
|
||||
"width": 1.0
|
||||
},
|
||||
"silk_line_width": 0.15,
|
||||
"silk_text_italic": false,
|
||||
|
@ -63,11 +63,18 @@
|
|||
"annular_width|32670000|70600000|a72b5202-181f-4e4c-a40a-cdf8811d8a01|00000000-0000-0000-0000-000000000000",
|
||||
"annular_width|32670000|88400000|7301d50f-d65c-4e64-90a2-d8f3fedd0daf|00000000-0000-0000-0000-000000000000",
|
||||
"annular_width|32670000|95600000|83c036fc-3aa6-46cd-8211-d3f21666bddc|00000000-0000-0000-0000-000000000000",
|
||||
"annular_width|35900000|95700000|1234f73d-e1bf-4ce6-bffd-9f6c9baa31d4|00000000-0000-0000-0000-000000000000",
|
||||
"annular_width|91900000|39300000|d1240d82-304e-402f-9e07-e8a9bfa24077|00000000-0000-0000-0000-000000000000",
|
||||
"hole_clearance|29200000|78500000|03d8bccf-b8af-4b65-995d-52b211824b79|b273bd28-b735-460e-9629-b604ece021b4",
|
||||
"hole_clearance|29200000|81500000|16a7760a-223e-48eb-bf4d-64bea57db3b4|3adbbd99-3461-49b5-8b67-f40abd8ab616",
|
||||
"silk_over_copper|31397832|93276086|225f9512-3655-4795-b3f0-24c50d8a5ffe|00000000-0000-0000-0000-000000000000",
|
||||
"silk_over_copper|27568860|96059411|225f9512-3655-4795-b3f0-24c50d8a5ffe|00000000-0000-0000-0000-000000000000",
|
||||
"silk_overlap|100950000|62500000|fe74f87c-10c4-4721-bbb5-e5e742d532e8|c153cf67-da70-4c55-98c9-8be8c4b037f3",
|
||||
"silk_overlap|102650000|62500000|2314bd4b-c854-4d1b-abec-a7f4d072c1bc|2a409a1d-ba32-4712-9c37-504509868479",
|
||||
"starved_thermal|103850000|54050000|0f274f56-d43e-4e24-9b15-8ed27e8fe292|de489e6b-d04b-4d54-ba09-fb6662ddad3e|F.Cu",
|
||||
"starved_thermal|33230000|68250000|0f274f56-d43e-4e24-9b15-8ed27e8fe292|ca46053d-5407-4cdd-80ad-957e35d3d2b4|F.Cu",
|
||||
"starved_thermal|33230000|69750000|0f274f56-d43e-4e24-9b15-8ed27e8fe292|8ce723e8-2734-414b-b386-f7496794b674|F.Cu"
|
||||
"starved_thermal|33230000|69750000|0f274f56-d43e-4e24-9b15-8ed27e8fe292|8ce723e8-2734-414b-b386-f7496794b674|F.Cu",
|
||||
"starved_thermal|97350000|50550000|0f274f56-d43e-4e24-9b15-8ed27e8fe292|9f531913-b953-4aae-b2db-a4cd2ebc9eeb|F.Cu",
|
||||
"starved_thermal|99350000|45550000|0f274f56-d43e-4e24-9b15-8ed27e8fe292|60b7eee2-7611-48f9-8a01-048fac39241a|F.Cu"
|
||||
],
|
||||
"meta": {
|
||||
"version": 2
|
||||
|
@ -511,6 +518,10 @@
|
|||
{
|
||||
"netclass": "Thick",
|
||||
"pattern": "GNDPWR"
|
||||
},
|
||||
{
|
||||
"netclass": "Thick",
|
||||
"pattern": "VCC"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
@ -573,6 +584,10 @@
|
|||
[
|
||||
"43fc3289-82a7-492c-a423-3030e10115dc",
|
||||
""
|
||||
],
|
||||
[
|
||||
"aff934c6-d889-4e87-9eff-11f437174b1f",
|
||||
"interpret"
|
||||
]
|
||||
],
|
||||
"text_variables": {}
|
||||
|
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue