I and a few others had noticed DK1 trackers for sale in china after the DK1 open source files were released, I cant buy anything from china, so I decided to look for something with the same sensors, I found that the Naze32 10DOF multicopter flight control board uses the same CPU and sensors, so I got one and flashed it with the firmware from the DK1 open source files, unfortunately I had to add a second USB connector to the Naze32 10DOF, the second USB connector is wired to the STM32F103 CPU in the same way has the DK1 Tracker, once the second USB connector is connected to the computer, the computer recognizes it as a real DK1 Tracker, in both the old and new SDKs, but with one catch, no tracking, I believe the sensors are connected to the STM32F103 CPU on the Naze32 10DOF in a different way than on the real DK1 tracker.
The 10DOF version of the multicopter flight control board above uses the:
MPU6050 - gyroscope and accelerometer
HMC5883L - magnetometer
MS5611 - high resolution altimeter
STM32F103CxT6 - CPU 32bit ARM Cortex M3, 72MHz, 64K/128K flash
The 6DOF version of the multicopter flight control board above uses the:
MPU6050 - gyroscope and accelerometer
STM32F103CxT6 - CPU 32bit ARM Cortex M3, 72MHz, 64K/128K flash
And the real DK1 Rift tracker uses:
MPU6000 - gyroscope and accelerometer
HMC5983 - magnetometer
STM32F103C8T6 - CPU 32bit ARM Cortex M3, 72MHz, 64K/20K flash
The Naze32 10DOF top view.
The bottom of the Naze32 10DOF.
I added jumpers for the boot pins.
I used a volt / ohm meter to trace back to the needed CPU pins, the extra USB port is connected with the same value resistors and same connections as the real DK1 tracker.
This is the USB port I added.
DK2 compatible SDK running with the Naze32 10DOF, however you get no tracking.
DK1 only SDK running with the Naze32 10DOF, however you get no tracking.
BTW Under Linux when connected to the second added USB port, and programed with the DK1 Rift tracker firmware, the Naze32 10DOF shows up as:
T: Bus=03 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 34 Spd=12 MxCh= 0
D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=2833 ProdID=0001 Rev=00.18
S: Manufacturer=Oculus VR, Inc.
S: Product=Tracker DK
S: SerialNumber=AAAAAAAAAAAA
C: #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr=100mA
I: If#= 0 Alt= 0 #EPs= 1 Cls=03(HID ) Sub=00 Prot=00 Driver=usbhid
And the last time I checked the STM32F3DISCOVERY Foculus Rift tracker under Linux:
T: Bus=06 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 6 Spd=12 MxCh= 0
D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=2833 ProdID=0001 Rev=01.00
S: Manufacturer=Oculus VR, Inc.
S: Product=Tracker DK
S: SerialNumber=3EC0946BFFFF
C: #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=500mA
I: If#= 0 Alt= 0 #EPs= 2 Cls=03(HID ) Sub=00 Prot=00 Driver=usbhid
I have not done anything to the Naze32 10DOF that is not undo-able yet, and I would like to keep it that way, but I don't know how to do programing, so my only other choices are, to modify the Naze32 10DOF, wait until DK1 compatible trackers are more readily available, or the hard way and order the parts and have a PCB made using the DK1 open source files.