DIY Head Tracker For A Tenner

There's a very important bullet point on page 16 of the user guide regards this - on the older 6050 devices, when the GUI is maximised it disables the drift compensation. It has to in order to measure drift! So once you've measured and applied the drift compensation, you should close or minimise the GUI. If you leave it up and running then it will indeed drift off - but you should not see this in-game (provided the UI is minimised, like I say)...

Cheers,
Dan

Thanks, but the application is minimised during playing. This was before launching to show how the head was rotating around on its own.

I also tried flashing it, and this happened (it is definitely plugged in):

Capture.JPG
 
Last edited:
and you're sure you've installed the Arduino drivers? Download them, unpack them, right-click the .inf file and choose "Install...". Then unplug and replug your device. If that dialog pops up again make sure you let it finish it's search and install rather than cancelling it... clutching at straws here!!
 
So just got the Pro version, after using the original non-mag, and it's impressive, most impressive.

Took a bit of fiddling to get it how I wanted it, but now it is working just fine - so much better with no yaw drift.

Thanks guys.
 
and you're sure you've installed the Arduino drivers? Download them, unpack them, right-click the .inf file and choose "Install...". Then unplug and replug your device. If that dialog pops up again make sure you let it finish it's search and install rather than cancelling it... clutching at straws here!!

Yup. I bought this back in November 2014, and had some issues with it as per earlier posts in this topic. I revisited it because pocketmoon sent me a PM after I commented in the tobii eyex topic, asking me what was up with it.

Below is a screenshot of device manager plus the inf file contents, showing the version and date matches.

Capture.JPG

I've just tried to flash it this morning, and it has got further than before (calculating gyro bias), but it has been at that now 11 minutes (headset sat on the PC going nowhere)...

EDIT: 30 minutes later, it still hadn't finished, so have I bricked it with the flash?
 
Last edited:
You might want to try the newer driver, just as a possibility. It's bundled with the Arduino 1.6.7 IDE or you can download it from the EDTracker website. In all fairness though, I can't see how it would address the issues you're describing... be interested to hear if it does!
 
Last edited:
That inf file I screenshotted was in the drivers folder in EDTracker 4.04 release, but I'm happy to try another driver if you think it might help.

How long should the bias calculations take, out of interest?
 
Last edited:
We don't distribute the drivers in the GUI release, so I'm not sure how they go there - but yeah, try the newer ones just in case. Can't hurt :)

Bias calculation takes <=20 seconds.
 
I'm actually using the arduino nano v3.0 and the gy-85, and either I'm doing something wrong or they don't seem to be compatible with the EDTracker GUI. Or maybe the GUI only works with the EDTracker code, which I struggled to get compiled for some reason.

Anyway, I used a different DIY head tracker code which seems to work, but I can't get it to output to opentrack, and I'm assuming it wasn't programmed to. After reading the thread it seems you get Windows to recognize the arduino as a joystick and have opentrack read that?

I'm buying some jumpers and header pins so I can properly wire everything. But I guess my questions are as follows:

-is the gui meant to work exclusively with the edtracker code, or with any code?
-is the gui only designed to work with certain arduino?
-is it the firmware that makes Windows read the arduino as a joystick, or is it the drivers?
-if there's no support for the nano what should my next step be, as far as getting opentrack to read it?

Thanks for any advice you can give me on the matter.
 
We don't distribute the drivers in the GUI release, so I'm not sure how they go there - but yeah, try the newer ones just in case. Can't hurt :)

Bias calculation takes <=20 seconds.

There is a folder inside the EDTracker folder called drivers, it was in there FYI.

I've just updated the driver, and the bias is still running for a long time and not completing... :(

I think it might be dead, Jim.
 
I'm actually using the arduino nano v3.0 and the gy-85, and either I'm doing something wrong or they don't seem to be compatible with the EDTracker GUI. Or maybe the GUI only works with the EDTracker code, which I struggled to get compiled for some reason.
Correct - the Nano uses a different USB driver chip (FTDI). What you have isn't really an "EDTracker" as such, it's a Hatire plugin development I suspect. It's confusing when people reference EDTracker with it - it's in no way related.

Anyway, I used a different DIY head tracker code which seems to work, but I can't get it to output to opentrack, and I'm assuming it wasn't programmed to. After reading the thread it seems you get Windows to recognize the arduino as a joystick and have opentrack read that?
That's the approach we took with EDTracker yes.

-is the gui meant to work exclusively with the edtracker code, or with any code?
EDTracker code only.

-is the gui only designed to work with certain arduino?
Not really - it's the protocol it talks over the serial port that's important. And that protocol is an EDTracker protocol. The type of Arduino isn't strictly speaking important, but the simple answer is anything FTDI based isn't going to work, no.

-is it the firmware that makes Windows read the arduino as a joystick, or is it the drivers?
It's the firmware. The USB HID side of things is completely unrelated to Arduino drivers - your EDTracker will get recognised as a joystick without any Arduino drivers installed whatsoever. The serial I/O (Arduino side) is purely used to configure and adjust the settings on EDTracker, and calibrate it. That's what the GUI does - it communicates via COM port to the EDTracker purely to do the configuration and calibration. The joystick output is unrelated.

-if there's no support for the nano what should my next step be, as far as getting opentrack to read it?
Either raise issues with the maintainer of those pieces of code, or move to the "conventional" approach for EDTracker of a Pro Micro and MPU-9x50 breakout...

There is a folder inside the EDTracker folder called drivers, it was in there FYI.

I've just updated the driver, and the bias is still running for a long time and not completing... :(

I think it might be dead, Jim.

Yep, sounds like it's not reading from the sensor, so it's just waiting indefinitely... :(
 
Thanks for the help! Hopefully I can work it out with what I have, but if not it's at least good to know that it'll be easy if I source the right parts.
 
So I decided to try out the code from http://reprapdad.wordpress.com/, but I can't get it to compile - I get this message:

Code:
Arduino: 1.6.7 (Windows 10), Board: "Arduino Pro or Pro Mini, ATmega328 (5V, 16 MHz)"

C:\Program Files (x86)\Arduino\arduino-builder -dump-prefs -logger=machine -hardware "C:\Program Files (x86)\Arduino\hardware" -tools "C:\Program Files (x86)\Arduino\tools-builder" -tools "C:\Program Files (x86)\Arduino\hardware\tools\avr" -built-in-libraries "C:\Program Files (x86)\Arduino\libraries" -libraries "C:\Users\Keito\Documents\Arduino\libraries" -fqbn=arduino:avr:pro:cpu=16MHzatmega328 -ide-version=10607 -build-path "C:\Users\Keito\AppData\Local\Temp\builda6e70d8835d05a87c2198a54b2bc90a2.tmp" -warnings=none -prefs=build.warn_data_percentage=75 -verbose "C:\Users\Keito\Desktop\EDTracker2-master\EDTracker2_9150\EDTracker2_9150\EDTracker2_9150.ino"
C:\Program Files (x86)\Arduino\arduino-builder -compile -logger=machine -hardware "C:\Program Files (x86)\Arduino\hardware" -tools "C:\Program Files (x86)\Arduino\tools-builder" -tools "C:\Program Files (x86)\Arduino\hardware\tools\avr" -built-in-libraries "C:\Program Files (x86)\Arduino\libraries" -libraries "C:\Users\Keito\Documents\Arduino\libraries" -fqbn=arduino:avr:pro:cpu=16MHzatmega328 -ide-version=10607 -build-path "C:\Users\Keito\AppData\Local\Temp\builda6e70d8835d05a87c2198a54b2bc90a2.tmp" -warnings=none -prefs=build.warn_data_percentage=75 -verbose "C:\Users\Keito\Desktop\EDTracker2-master\EDTracker2_9150\EDTracker2_9150\EDTracker2_9150.ino"
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_PRO -DARDUINO_ARCH_AVR   "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\eightanaloginputs" "C:\Users\Keito\AppData\Local\Temp\builda6e70d8835d05a87c2198a54b2bc90a2.tmp\sketch\EDTracker2_9150.ino.cpp" -o "nul"
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_PRO -DARDUINO_ARCH_AVR   "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\eightanaloginputs" "-IC:\Users\Keito\Documents\Arduino\libraries\EEPROM" "C:\Users\Keito\AppData\Local\Temp\builda6e70d8835d05a87c2198a54b2bc90a2.tmp\sketch\EDTracker2_9150.ino.cpp" -o "nul"
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_PRO -DARDUINO_ARCH_AVR   "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\eightanaloginputs" "-IC:\Users\Keito\Documents\Arduino\libraries\EEPROM" "-IC:\Users\Keito\Documents\Arduino\libraries\Wire" "C:\Users\Keito\AppData\Local\Temp\builda6e70d8835d05a87c2198a54b2bc90a2.tmp\sketch\EDTracker2_9150.ino.cpp" -o "nul"
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_PRO -DARDUINO_ARCH_AVR   "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\eightanaloginputs" "-IC:\Users\Keito\Documents\Arduino\libraries\Wire" "-IC:\Users\Keito\Documents\Arduino\libraries\I2Cdev" "-IC:\Users\Keito\Documents\Arduino\libraries\EEPROM" "C:\Users\Keito\AppData\Local\Temp\builda6e70d8835d05a87c2198a54b2bc90a2.tmp\sketch\EDTracker2_9150.ino.cpp" -o "nul"
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_PRO -DARDUINO_ARCH_AVR   "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\eightanaloginputs" "-IC:\Users\Keito\Documents\Arduino\libraries\InvensenseMotionDriver" "-IC:\Users\Keito\Documents\Arduino\libraries\EEPROM" "-IC:\Users\Keito\Documents\Arduino\libraries\Wire" "-IC:\Users\Keito\Documents\Arduino\libraries\I2Cdev" "C:\Users\Keito\AppData\Local\Temp\builda6e70d8835d05a87c2198a54b2bc90a2.tmp\sketch\EDTracker2_9150.ino.cpp" -o "nul"
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_PRO -DARDUINO_ARCH_AVR   "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\eightanaloginputs" "-IC:\Users\Keito\Documents\Arduino\libraries\EEPROM" "-IC:\Users\Keito\Documents\Arduino\libraries\Wire" "-IC:\Users\Keito\Documents\Arduino\libraries\I2Cdev" "-IC:\Users\Keito\Documents\Arduino\libraries\InvensenseMotionDriver" "C:\Users\Keito\Documents\Arduino\libraries\EEPROM\EEPROM.cpp" -o "nul"
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_PRO -DARDUINO_ARCH_AVR   "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\eightanaloginputs" "-IC:\Users\Keito\Documents\Arduino\libraries\EEPROM" "-IC:\Users\Keito\Documents\Arduino\libraries\Wire" "-IC:\Users\Keito\Documents\Arduino\libraries\I2Cdev" "-IC:\Users\Keito\Documents\Arduino\libraries\InvensenseMotionDriver" "C:\Users\Keito\Documents\Arduino\libraries\Wire\Wire.cpp" -o "nul"
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_PRO -DARDUINO_ARCH_AVR   "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\eightanaloginputs" "-IC:\Users\Keito\Documents\Arduino\libraries\EEPROM" "-IC:\Users\Keito\Documents\Arduino\libraries\Wire" "-IC:\Users\Keito\Documents\Arduino\libraries\I2Cdev" "-IC:\Users\Keito\Documents\Arduino\libraries\InvensenseMotionDriver" "C:\Users\Keito\AppData\Local\Temp\builda6e70d8835d05a87c2198a54b2bc90a2.tmp\sketch\EDTracker2_9150.ino.cpp" -o "C:\Users\Keito\AppData\Local\Temp\builda6e70d8835d05a87c2198a54b2bc90a2.tmp\preproc\ctags_target_for_gcc_minus_e.cpp"
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_PRO -DARDUINO_ARCH_AVR   "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\eightanaloginputs" "-IC:\Users\Keito\Documents\Arduino\libraries\EEPROM" "-IC:\Users\Keito\Documents\Arduino\libraries\Wire" "-IC:\Users\Keito\Documents\Arduino\libraries\I2Cdev" "-IC:\Users\Keito\Documents\Arduino\libraries\InvensenseMotionDriver" "C:\Users\Keito\Documents\Arduino\libraries\Wire\utility\twi.c" -o "nul"
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_PRO -DARDUINO_ARCH_AVR   "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\eightanaloginputs" "-IC:\Users\Keito\Documents\Arduino\libraries\InvensenseMotionDriver" "-IC:\Users\Keito\Documents\Arduino\libraries\EEPROM" "-IC:\Users\Keito\Documents\Arduino\libraries\Wire" "-IC:\Users\Keito\Documents\Arduino\libraries\I2Cdev" "C:\Users\Keito\Documents\Arduino\libraries\I2Cdev\I2Cdev.cpp" -o "nul"
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_PRO -DARDUINO_ARCH_AVR   "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\eightanaloginputs" "-IC:\Users\Keito\Documents\Arduino\libraries\InvensenseMotionDriver" "-IC:\Users\Keito\Documents\Arduino\libraries\EEPROM" "-IC:\Users\Keito\Documents\Arduino\libraries\Wire" "-IC:\Users\Keito\Documents\Arduino\libraries\I2Cdev" "C:\Users\Keito\Documents\Arduino\libraries\InvensenseMotionDriver\arduino_shim.cpp" -o "nul"
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_PRO -DARDUINO_ARCH_AVR   "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\eightanaloginputs" "-IC:\Users\Keito\Documents\Arduino\libraries\Wire" "-IC:\Users\Keito\Documents\Arduino\libraries\I2Cdev" "-IC:\Users\Keito\Documents\Arduino\libraries\InvensenseMotionDriver" "-IC:\Users\Keito\Documents\Arduino\libraries\EEPROM" "C:\Users\Keito\Documents\Arduino\libraries\InvensenseMotionDriver\inv_mpu.c" -o "nul"
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_PRO -DARDUINO_ARCH_AVR   "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\eightanaloginputs" "-IC:\Users\Keito\Documents\Arduino\libraries\EEPROM" "-IC:\Users\Keito\Documents\Arduino\libraries\Wire" "-IC:\Users\Keito\Documents\Arduino\libraries\I2Cdev" "-IC:\Users\Keito\Documents\Arduino\libraries\InvensenseMotionDriver" "C:\Users\Keito\Documents\Arduino\libraries\InvensenseMotionDriver\inv_mpu_dmp_motion_driver.c" -o "nul"
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_PRO -DARDUINO_ARCH_AVR   "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\eightanaloginputs" "-IC:\Users\Keito\Documents\Arduino\libraries\InvensenseMotionDriver" "-IC:\Users\Keito\Documents\Arduino\libraries\EEPROM" "-IC:\Users\Keito\Documents\Arduino\libraries\Wire" "-IC:\Users\Keito\Documents\Arduino\libraries\I2Cdev" "C:\Users\Keito\AppData\Local\Temp\builda6e70d8835d05a87c2198a54b2bc90a2.tmp\sketch\EDTracker2_9150.ino.cpp" -o "nul"
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_PRO -DARDUINO_ARCH_AVR   "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\eightanaloginputs" "-IC:\Users\Keito\Documents\Arduino\libraries\EEPROM" "-IC:\Users\Keito\Documents\Arduino\libraries\Wire" "-IC:\Users\Keito\Documents\Arduino\libraries\I2Cdev" "-IC:\Users\Keito\Documents\Arduino\libraries\InvensenseMotionDriver" "C:\Users\Keito\AppData\Local\Temp\builda6e70d8835d05a87c2198a54b2bc90a2.tmp\sketch\EDTracker2_9150.ino.cpp" -o "C:\Users\Keito\AppData\Local\Temp\builda6e70d8835d05a87c2198a54b2bc90a2.tmp\preproc\ctags_target_for_gcc_minus_e.cpp"
"C:\Program Files (x86)\Arduino\tools-builder\ctags\5.8-arduino5/ctags" -u --language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns --line-directives "C:\Users\Keito\AppData\Local\Temp\builda6e70d8835d05a87c2198a54b2bc90a2.tmp\preproc\ctags_target_for_gcc_minus_e.cpp"
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_PRO -DARDUINO_ARCH_AVR   "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\eightanaloginputs" "-IC:\Users\Keito\Documents\Arduino\libraries\EEPROM" "-IC:\Users\Keito\Documents\Arduino\libraries\Wire" "-IC:\Users\Keito\Documents\Arduino\libraries\I2Cdev" "-IC:\Users\Keito\Documents\Arduino\libraries\InvensenseMotionDriver" "C:\Users\Keito\AppData\Local\Temp\builda6e70d8835d05a87c2198a54b2bc90a2.tmp\sketch\EDTracker2_9150.ino.cpp" -o "C:\Users\Keito\AppData\Local\Temp\builda6e70d8835d05a87c2198a54b2bc90a2.tmp\sketch\EDTracker2_9150.ino.cpp.o"
EDTracker2_9150:162: error: 'TrackState_t' does not name a type


 TrackState_t joySt;


 ^


C:\Users\Keito\Desktop\EDTracker2-master\EDTracker2_9150\EDTracker2_9150\EDTracker2_9150.ino: In function 'void loop()':


EDTracker2_9150:469: error: 'joySt' was not declared in this scope


       joySt.xAxis = ii[0] ;


       ^


EDTracker2_9150:472: error: 'joySt' was not declared in this scope


     joySt.xAxis = joySt.xAxis * outputLPF + ii[0] * (1.0 - outputLPF) ;


     ^


EDTracker2_9150:473: error: 'joySt' was not declared in this scope


     joySt.yAxis = joySt.yAxis * outputLPF + ii[1] * (1.0 - outputLPF) ;


     ^


EDTracker2_9150:476: error: 'Tracker' was not declared in this scope


     Tracker.setState(&joySt);


     ^


C:\Users\Keito\Desktop\EDTracker2-master\EDTracker2_9150\EDTracker2_9150\EDTracker2_9150.ino: In function 'void disable_mpu()':


EDTracker2_9150:755: error: 'INT6' was not declared in this scope


   EIMSK &= ~(1 << INT6);      //deactivate interupt


                   ^


C:\Users\Keito\Desktop\EDTracker2-master\EDTracker2_9150\EDTracker2_9150\EDTracker2_9150.ino: In function 'void enable_mpu()':


EDTracker2_9150:759: error: 'EICRB' was not declared in this scope


   EICRB |= (1 << ISC60) | (1 << ISC61); // sets the interrupt type for EICRB (INT6)


   ^


EDTracker2_9150:759: error: 'ISC60' was not declared in this scope


   EICRB |= (1 << ISC60) | (1 << ISC61); // sets the interrupt type for EICRB (INT6)


                  ^


EDTracker2_9150:759: error: 'ISC61' was not declared in this scope


   EICRB |= (1 << ISC60) | (1 << ISC61); // sets the interrupt type for EICRB (INT6)


                                 ^


EDTracker2_9150:760: error: 'INT6' was not declared in this scope


   EIMSK |= (1 << INT6); // activates the interrupt. 6 for 6, etc


                  ^


Using library EEPROM in folder: C:\Users\Keito\Documents\Arduino\libraries\EEPROM (legacy)
Using library Wire in folder: C:\Users\Keito\Documents\Arduino\libraries\Wire (legacy)
Using library I2Cdev in folder: C:\Users\Keito\Documents\Arduino\libraries\I2Cdev (legacy)
Using library InvensenseMotionDriver in folder: C:\Users\Keito\Documents\Arduino\libraries\InvensenseMotionDriver (legacy)
exit status 1
'TrackState_t' does not name a type

Did I do something wrong, or is the code I'm using bad somehow?
 
Wrong board ;) read the instructions on the main readme :-

https://github.com/brumster/EDTracker2

NOTE: To make the build process easier, all the libraries and relevant hardware settings are packaged up and available within the separate repo here :

https://github.com/brumster/EDTracker2_ArduinoHardware

You WILL need the additional libraries and modified Arduino core files provided in the above repo; the sketches will not compile without them :)

Once you've unpacked them, you can choose the relevant EDTracker board within the Arduino GUI, and it brings in the appropriate hardware files, including HID.cpp which correctly defines the TrackState_t object.
 
Anyway, I used a different DIY head tracker code which seems to work, but I can't get it to output to opentrack, and I'm assuming it wasn't programmed to. After reading the thread it seems you get Windows to recognize the arduino as a joystick and have opentrack read that?

For Arduino you need to use the "hatire" opentrack tracker. Naturally the firmware needs to speak the protocol "hatire" uses.

Since this is an EDTracker thread, please take it to facetracknoir or opentrack forum dedicated to Arduino. I won't comment here on the subject anymore.
 
Hello.

My EDtracker pro arrived today and I've been trying to set it up, but I have few problems. Posting here to see if anybody can help.

The main problem I have right now that I have hard time focusing on the ship's UI panels. Each time I turn my head any direction, the view keeps turning back to the original position (center) even though I have disabled the option from the game's control options (centre when headlook inactive). This causes problems especially when I am trying to interact with UI menus, because the view kinda keeps drifting towards the center.

I have firmly attached the device on my headset with plastic straps (or whatever you call them) as instructed (screws down and led upwards). Various images showing my hardware and software settings can be viewed behind the spoiler tags below:

Headset with EDtracker pro:
EDTracker_pro_headset.png

EDTracker pro UI settings:
EDTracker_pro_UI.png

When installing the EDTracker software I did as instructed, first calibrated it upon a level surface. After attaching it to my headset, I did again as the wizard instructed and rolled the headset in various axes.

From ED: Horinzons settings I've done the usual:
- set a little deadzone, maybe 1/10th of the slider, to both axis.
- set the headlook axis mode to "direct"
- set the mouse headlook "off"
- set the headlook to axes rather than button (look up, down etc).

Can anyone tell what should I try in order to make my view stay where I look. If further info is required, I'd be happy to provide.

Thanks!

-v

PS. other than the view drifting back to center position, the view is generally pretty unstable. If anyone can assist me with the settings and setup, I'd appreciate!
 
Last edited:

The drift back to centre is because the calibration is not good enough (the roll it in different directions calibration). During this calibration you don't need to stop when the bar reaches the end, just go through the whole thing one more time before pressing complete.
I set my smoothing to 99 which got rid of the head shake
 
The main problem I have right now that I have hard time focusing on the ship's UI panels. Each time I turn my head any direction, the view keeps turning back to the original position (center)

Does it do this only in Elite, or does it do it in the EDTracker GUI also?

If it's doing it in the GUI then, as above, it's just calibration of the magnetometer that needs doing. You don't need to fill it up to 2000 points - the most important thing is that you get a good, even spread of all positions. Better to have 600 well-spread points defining a sphere, than 2000 points that just focus on the top, or bottom, or left, etc.

If it's not doing it in the GUI, only in-game, then it would indeed seem to be something to do with the game configuration or Windows joystick settings. You could try clearing any calibration in USB Game Controllers for the EDTracker device, if any has been set - you don't want to perform any Windows joystick calibration on EDTracker. Just leave it at the defaults.
 
Thanks for both replies above.

It seems to do it on both, GUI and game. However, it is little different between them. I guess I need to do the calibration. I tried doing long calibration session, as sewerratuk above suggested. It did affect the experience, but didn't actually remove the problem. Maybe the calibration just needs to be done more accurately.

Especially when I look upwards or right, the EDtracker seems to get confused and I need to reset the view both in GUI and in game. Considering any USB joystick calibration in Windows, I am bit confused about that as I just updated to win10 and am hopelesly lost with it..

I try calibrating more profoundly and accurately tomorrow. I'm kinda done for today.

Thanks again!
 
Sure, all I meant was that in Windows 7 (and I assume 8 and 10), you can click on a controller in "USB Game Controllers" and, in Properties->Settings for a device, there's a calibrate button. Don't be tempted to use this for EDTracker - it doesn't need it. If you ever do, just click the "Reset to Default" button and leave alone ;)

When doing the mag calibration, the main thing is to fit it on the headset and calibrate it in it's final position. Well, as final as it can be, obviously - you can't have it on your head (if anyone manages to perform the necessary calibration moves with a device fitted on their head, I'd urge them to see a chiropractor immediately)... but you get the idea. The only reason we say do it on the headset is because, in rare circumstances, some headsets seem to have ferrous/metallic parts in the head band part that can 'tweak' the magnetometer off to one side. So on the odd occasion you might calibrate it off a headset, fit it on afterwards and it'll go all odd.

Just for clarity, I'm only talking mag calibration here - the gyro biasing is unaffected by magnetic fields. It just needs to be done flat and level. We tell people to put it on the desk because that's easiest but in reality, if you've got a steady hand or head, you can do it on the headset. We have to play to the 90th percentile, so it's really just easier to tell everyone "put it flat on a desk" and then there's no room for error.
 
Sure, all I meant was that in Windows 7 (and I assume 8 and 10), you can click on a controller in "USB Game Controllers" and, in Properties->Settings for a device, there's a calibrate button. Don't be tempted to use this for EDTracker - it doesn't need it. If you ever do, just click the "Reset to Default" button and leave alone ;)

Okay, I never did that. For some odd reason, I cannot even see my x52 pro nor Edtracker in USB device listing.

When doing the mag calibration, the main thing is to fit it on the headset and calibrate it in it's final position. Well, as final as it can be, obviously - you can't have it on your head (if anyone manages to perform the necessary calibration moves with a device fitted on their head, I'd urge them to see a chiropractor immediately)...

Haha :D Infact, I was thinking about it - just because it crossed my mind that maybe the calibration would actually be most accurate if done with head and the headset on, in order to kinda show it the natural environment where it should work. I guess not then ;)

-v

PS. This morning when re-calibrating the tracker closer to the real position of my head and carefully doing to turns, I think I got it working more reliably. However, the "shakiness" is still somewhat a problem. I have set deadzones in ED settings and some smoothing in tracker software, but still my head wopples like pear in a sentrifuge.. I doubt tho that my head is less balanced than the next guy's - are other experiencing this as well?
 
Last edited:
Back
Top Bottom