template and source for hardware projects
Go to file
King Kévin 9e7ea3eace lib: update repo 2024-03-18 23:40:40 +01:00
kicad lib: add parts for interpreation 2024-03-18 01:53:28 +01:00
library@e5b0ca3a0f lib: update repo 2024-03-18 23:40:40 +01:00
.gitignore make: export 3d model 2024-03-08 07:14:21 +01:00
.gitmodules update library 2022-03-07 14:42:51 +01:00
.qeda.yaml lib: add parts for interpreation 2024-03-18 01:53:28 +01:00
CHANGELOG.md doc: add v1 changes 2024-03-18 23:39:18 +01:00
DEVELOPMENT.md doc: better list dependencies 2023-03-30 22:30:26 +02:00
KiBOM_CLI.py make: add bom generator (not included in pip) 2023-03-30 22:30:26 +02:00
LICENSE.txt add CERN-OHL-S license 2021-07-22 12:22:58 +02:00
Makefile sch: add interpretation capability 2024-03-18 01:55:19 +01:00
README.md doc: add interpretation 2024-03-18 23:37:49 +01:00
bom.ini make: include DNF parts 2024-03-08 07:14:21 +01:00
fp-lib-table lib: add logos 2023-03-30 22:25:49 +02:00
sym-lib-table lib: add partdb library 2023-03-30 22:23:41 +02:00
usb-microbc_cable_tester-mcu.kicad_sch brd: minor, fix speeds 2024-03-18 23:37:07 +01:00
usb-microbc_cable_tester.kicad_pcb brd: minor, fix speeds 2024-03-18 23:37:07 +01:00
usb-microbc_cable_tester.kicad_pro brd: minor, fix speeds 2024-03-18 23:37:07 +01:00
usb-microbc_cable_tester.kicad_sch sch: improve routing 2024-03-18 04:04:18 +01:00
version switch to version 1 2024-03-17 08:12:11 +01:00

README.md

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

  • 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, 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.

design choice

features

do:

  • USB micro-B: still wide-spread and popular for charging devices
  • USB type-A: still the de-facto host plug
  • USB type-C: becoming the standard for battery operated devices
  • 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 SuperSpeed
  • purpose: deduce from capabilities

don't:

  • small: no need to build it as compact as possible
  • 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

mode of operation

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.

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

alternatives