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

View File

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

View File

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

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