SharkX6 Flight Controller USB connection circuit re-creation

Thread Starter


Joined Jan 19, 2016

I have a SharkX6 flight controller (FC) that I plan to use in a quadcopter that I am building. The FC came with a broken power distribution board (the fried IC is an MP2307 step-down converter - to the left of the '100' component). The power distribution board also features a small USB circuit (the one pointed with the blue arrow) that connects the FC to the PC: the FC has two lines U+/U- (the RED/BLACK pair on the left side of the USB area) and connect to the PC USB host via the four lines (on the right, BLACK is VCC, WHITE is D+, RED is D- and ORANGE is GND) going to a MicroUSB port.

This USB connection serves to alter parameters in the FC software, using a Windows program called 'X8_Assistant'. The FC is powered by a +5V source and when connected to the Windows PC via this USB connection, it is recognized as a USB HID device (I am attaching the dumped descriptor for this device - SHARKXFC.txt - which I grabbed using Thesycon free USB Descriptor Dumper Tool).

Using a (borrowed) working power distribution board from another quadcopter, I verified that my FC is correctly recognized so the FC USB connection pins work. The problem I have is that I have to somehow create a cable or circuit to replicate this USB connection function because the power distribution board is not available for sale (plus it does not fit on the quadcopter frame that I amusing) as I would like to be able to connect my FC to my computer and change it's parameters.

Using a voltometer I've measured the voltage on U+ and U- pins on the good power board and it is +3.74V. The problem is that the broken power board also measures +3.74V on U+/U- pins but with the bad board Windows report that the USB device is malfunctioning (error 43: The USB device returned an invalid USB configuration descriptor). My FC is powered using an external 5V source (step-down regulator from 7.4V LiPo) and it works as expected and I am always connecting the FC to the PC while the FC is powered.

My efforts - so far - in re-creating this USB circuit, have produced zero results (i.e Windows always reports malfunctioning device):
- Connecting D+/D- lines directly to the FC U+/U- pins do nothing (it is not even recognized by Windows).
- I have tried the circuit presented here (Speed Identification for Full Speed Device), which basically is using a 1.5K pull-up resistor on D+ line from a 3.3V source. To get a 3.3V source, I've "fed" the 5V VCC line from USB to an Arduino Nano R3 and took the 3.3V Arduino pin to the resistor. This circuit produce a Windows notification result but with a "USB device malfunctioning error 43", thus no connection between the PC and FC.

I am not much experienced in USB and electronics in general nor I am trying to build something for sale; I'm just a hobbyist trying to build a quadcopter out of spare parts (the FC was a gift), so please forgive my ignorance.

Is it possible to build a replacement circuit for connecting the SharkX6 FC to the PC via USB? Any ideas, suggestions or help is greatly appreciated.
Besides resistors (and a 30W soldering gun I have), cables and some connectors I have, what else I will need (no SMD components, just simple electronics shop material)? I have two Arduino boards (a Nano R3 and a Due) but these cannot be used for USB HID "connector" (the Nano for sure, I'm not sure for Due).

Thank you very much in advance.