With the help of testing efforts by the community, we have uncovered an electrical issue with the ODrive (v3.3 and earlier). The GND of left side of the board is connected to the GND of the right side of the board through the main power ground bus, as can be seen as the blue horizontal area in the image below:
Highlighted is the GND net (shematics here for reference).
This thick ground bus is very low impedance, and even with very high currents, the voltage drop across it will only be 10’s of mV. Therefore it was deemed okay to connect the grounds in this way. However, as was revealed, the inductance of the same path is significant enough to cause problems.
As the MOSFETs switch, this causes large dI/dt in various segments of the ground bus, and hence voltage drops across the segments. Since the ground traces of the left part of the board is tapped from a different place than the right side, it causes the grounds to see voltage spikes with respect to each other.
Seen below is the ground on J2, which is derived from the right side of the board (same “tap” as the microcontroller), measured against the GND on J3, derived from the left side:
Measured with 10A motor current and at 12V bus voltage, we see spikes of 1.2V between the grounds.
This means that you should not use the GND on J3, as that GND will have spikes on it with respect to the microcontroller GND. We have seen this cause spurious steps in the step/direction input. Please use J2’s GND when interfacing to the board: you can solder on some extra wires/pins, or splice a wire from the single connection.
As for other things affected, it is not yet clear how big of an impact this is, and what secondary issues this may be the root cause of. I will keep this thread updated when we have more info.
EDIT: See the confirmed impact and my suggested fix on this post.