apparently the solution was to heat the goddamn external device up with a hair dryer. it enumerates fine until it cools down.