Based on the answer here it seems that resistors are used to detect what is plugged in with LEGO Power Functions 2.0. So which resistor values (or ranges) apply to which motors or other devices? Are there any values of resistance that lead to "unknown device" errors or something like that?
M Motor (Powered Up/WeDo 2.0)
The M motor has a 2.2kΩ resistor between pins 5 and 6. Pin 6 is connected directly to pin 3.
I don't own any lights yet, but according to this post, they also use a 2.2kΩ resistor, but in this case it is between pins 5 and 3. This pulls ID 1 to ground. Here's the full circuit diagram:
The measured resistance between pins 5 and 6 shows an open circuit. Pin 5 is connected directly to VCC, and pin 6 is connected directly to ground.
I wasn't able to determine any sort of passive identification on any other components (Boost motor and sensors, etc). My guess is that these have an onboard microcontroller and use an active handshake before establishing a data connection.
M Motor 3 (GND) ─────┐ 4 (VCC) │ 5 (ID1) ─2.2k┤ 6 (ID2) ─────┘ LED Lights 3 (GND) ─────┐ 4 (VCC) │ 5 (ID1) ─2.2k┘ 6 (ID2) Train Motor 3 (GND) ───┐ 4 (VCC) ─┐ │ 5 (ID1) ─┘ │ 6 (ID2) ───┘