Compare commits

...

10 Commits

8 changed files with 45410 additions and 31824 deletions

View File

@ -1,3 +1,11 @@
v1
==
changes:
- make capabilities more compact
- add interpretation purpose part
v0 v0
== ==

View File

@ -1,6 +1,6 @@
# project file name (use for schematic and board layout) # project file name (use for schematic and board layout)
NAME ?= usb-microbc_cable_tester NAME ?= usb-microbc_cable_tester
SUBSHEET ?= SUBSHEET ?= usb-microbc_cable_tester-mcu
# path to KiCad CLI # path to KiCad CLI
KICAD = kicad-cli KICAD = kicad-cli
# path to qeda # path to qeda

View File

@ -1,5 +1,5 @@
The USB micro-B and C cable tester identifies functionalities supported by USB cables. 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. 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. It supports type A to micro-B, A to C, and C to C USB cables.
usage 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 - 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 one end of the cable in one of the host ports
- plug the other end of the cable in one of the devices 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 design choice
============= =============
@ -24,7 +27,8 @@ do:
- C to C: often used for high power charging of phones and laptops - 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 - 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 - 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: 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) - 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 - 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 - 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 Most of the tests just verify if the wires corresponding to capabilities are present in the cable.
- show a simple cable type result, and not just the individual capabilities 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 alternatives
------------ ------------

@ -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

View File

@ -34,9 +34,9 @@
"other_text_thickness": 0.15, "other_text_thickness": 0.15,
"other_text_upright": false, "other_text_upright": false,
"pads": { "pads": {
"drill": 0.65, "drill": 0.0,
"height": 0.7, "height": 0.75,
"width": 0.7 "width": 1.0
}, },
"silk_line_width": 0.15, "silk_line_width": 0.15,
"silk_text_italic": false, "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|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|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|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|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", "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|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": { "meta": {
"version": 2 "version": 2
@ -511,6 +518,10 @@
{ {
"netclass": "Thick", "netclass": "Thick",
"pattern": "GNDPWR" "pattern": "GNDPWR"
},
{
"netclass": "Thick",
"pattern": "VCC"
} }
] ]
}, },
@ -573,6 +584,10 @@
[ [
"43fc3289-82a7-492c-a423-3030e10115dc", "43fc3289-82a7-492c-a423-3030e10115dc",
"" ""
],
[
"aff934c6-d889-4e87-9eff-11f437174b1f",
"interpret"
] ]
], ],
"text_variables": {} "text_variables": {}

File diff suppressed because it is too large Load Diff