DIY Head Tracker For A Tenner

nice work pocketmoon, anyone know how to view the serial monitor after updating java, I tried adding Java_Home variable in the enviroments tab but still I cant view the serial monitor.
 
I will look at V2 some time, thanks.

As far as V1 goes here are some of the issues I had and how I resolved them, should someone wish to start to compile a trouble shooting list:

1) Even though my board has Pro Micro printed on it and is the same size and looks identical to your other boards you show, my board is detected as an Arduino Leonardo and without selecting that board the upload of the sketch failed with a memory address problem. So I had to select Arduino Leonardo and not Pro Micro in the Arduino IDE.

2) In the instructions I managed to copy the wrong file and got a type error when verify on the sketch, so if you get a type error you probably have not copied the correct file or missed some.

3) My push switch has four legs which means to me it is not obvious how to connect it. I did it wrong so it was always connected when not pushing the switch. This led to the device constantly recalibrating. In the end I tried it by just touching two wire together to make the switch to find out it was how I connected the switch which was wrong.

4) Once I got the device detected and operating as a windows joystick, in ED it did not seem to work after assigning to the head lock controls. In the end I realised I needed to assign a key to the head lock toggle and switch it on in game. My advice is to try head tracking with a mouse first in ED before the head tracker so you know how to set it up in ED.

I still need to get the calibration numbers to offset the drift, but I am off to the pub tonight and then there is Alpha 4, so it may have to wait a while to do that. Maybe I will be back here asking questions about that as well :)
 
1) Even though my board has Pro Micro printed on it and is the same size and looks identical to your other boards you show, my board is detected as an Arduino Leonardo and without selecting that board the upload of the sketch failed with a memory address problem. So I had to select Arduino Leonardo and not Pro Micro in the Arduino IDE.
I have two Pro Micro from Hobby Components, and both are identified as a Leonardo. No idea why, but it doesn't seem to cause any issues.

3) My push switch has four legs which means to me it is not obvious how to connect it. I did it wrong so it was always connected when not pushing the switch. This led to the device constantly recalibrating. In the end I tried it by just touching two wire together to make the switch to find out it was how I connected the switch which was wrong.
This is a trap fell into as well. The calibration sketch was doing all sorts of funny things, but the initial calibration seemed to work. It's not immediately apparent that something is wrong, so an amateur like myself could easily be lead astray. There should probably be a warning with description of symptoms in the instructions about this.
 
Last edited:
The push buttons you should be using should look like this :-

TL1105LF160Q.jpg

You'll notice the pin arragements are rectangular, NOT square, so it shouldn't really be possible to put these in the wrong way - if you do you must be seriously forcing/splaying the legs apart to get them to line up in the holes...

The pins OPPOSITE one another are paired :-
atmega8_breadboard_16_lrg.jpg

This has the benefit that it doesn't matter which way you put the switch in, 180 degrees to each other they are functionally equivalent.
 
The push buttons you should be using should look like this :-

TL1105LF160Q.jpg

You'll notice the pin arragements are rectangular, NOT square, so it shouldn't really be possible to put these in the wrong way - if you do you must be seriously forcing/splaying the legs apart to get them to line up in the holes...

The pins OPPOSITE one another are paired :-
atmega8_breadboard_16_lrg.jpg

This has the benefit that it doesn't matter which way you put the switch in, 180 degrees to each other they are functionally equivalent.

Thanks Brumster, I found out about the switch the hard way. The point where it becomes a bit counter-intuitive to a mere amateur is when you build it on a bread board. When you mount the switch in the middle of the board the paired pins connects the two side of the bread board, while the button connects two lines on the board. I can see why it's done that way, but initially it was confusing.

Do you have the RS part number for that switch by the way.
 
Ah, I see your point now, on breadboard it's not so obvious I guess!

Personally I'd recommend #4791435, it's a 9.5mm button so quite tall, meaning it clears the MPU board better... ;)
 
fixed the issue, spent a few hours playing around, I installed the latest java version as edtracker2 required a more recent version than what I had, that update screwed with the serial monitor, I unistalled the update and still I could see serial monitor in the preview screen but I couldn't click it, I ended up maximzing it and that worked but I could not have it at a small window, anyway after closing it and then reopening it it now works again as it should.

really weird bug at least it is working now.
 
Pocketmoon, any chance I can request a feature for the tracker UI?

It would be great if we could have a timer showing run time since last recentering. This would allow us to see what the aggregate yaw is over a period of time, ie -0.3 over 35 minutes, without having to manually time a session.

Also, would it be appropriate to automatically trigger a recentering after saving drift compensation values?

Edit: Also, it might be useful to know what kind of drift offsets people are ending up with. If there is a trend, then maybe this can be used as a starting point so that the base code starts a lot closer to zero drift straight out of the box, ideal for people that have less time to tinker with calibration. I have two of the 6050s from hobby components, and both are looking consistent at around the -0.73 mark, with an aggregate yaw of ~0.01/minute
 
Last edited:
It would be great if we could have a timer showing run time since last recentering. This would allow us to see what the aggregate yaw is over a period of time, ie -0.3 over 35 minutes, without having to manually time a session.

Also, would it be appropriate to automatically trigger a recentering after saving drift compensation values?

Hi, I'll add a timer, good idea.

I'll have a play with auto-recenter after drift calibration. I see the benefit of immediate impact on calculated drift (in effect it restarts the drift calc from scratch) but on the other hand it's nice to watch the effect on the historic drift curve after pushing a new drift value to the tracker.

cheers,

Rob
 
Hi, I'll add a timer, good idea.

If it makes life easier, you could even just timestamp the 'Recentered' message that is logged on screen, this would at least give a fixed reference that can be used.

Aside from that, I love the ui. I am currently on 0.02 yaw, 0.00 drift after an hours run :)
 
I've been doing a few over the last few days as you can imagine :) most of these are coming out at -0.6 to -0.8 on average, yes.
 
feeling ‘brave ’today

I’m feeling ‘brave ’today


Installed ED Tracker v2 – ‘For the brave’ & Java 7 - 55
Arduino Micro is recognized by the system


EDTrackerUtil.exe : Message Unknown Device
dvt08x.png



Tried EDTrackerIICalibrate.ino ; verify; upload  ‘mpu_set_dmp_state’was not declared in this scope



Tried MPU6050Joy.ino verifying/ uploading no errors

Did I miss / forget something ?
Any advice?


Error log:

2ue08lu.jpg
 
Did I miss / forget something ?
Any advice?

I suspect you are missing one of the libraries. Did you copy the Library/InvensenseMotionDriver directory to your Arduino IDE libraries folder?

If not, that would be suspect #1

Pocketmoon may know more, but there were also a couple of core Arduino library files we had to overwrite for the v1 sketches. v2 process doesnt mention these any more, so I assume they are no longer relevent, but this might not be the case...
 
Did I miss / forget something ?
Any advice?

Yeah you just need to install the new library (InvensenseMotionDriver under https://github.com/pocketmoon/EDTracker2/tree/master/library) .

It does mention it in the blog but it's not very clear. A step-by-step is on my list now that I know it's kinda working for most of you that have tried it :)

The changes to the core hid/usb files still apply but if you have been using the old sketch those should be there. I'll update the blog and github to put those updated files under EDtracker 2...
 
Noticed that from the data sheet, the 6050 has a thermometer built in. Might be worth exposing the temp in the debugging output to see if there's some correlation with drift.

What java version does the new UI require? I've had to stick with Java 6.21 because of a program I use that refuses to play nice with anything higher. Is that going to be a problem?

Potential feature request: A 'rubber band' feature. A variable setting that very slowly takes 'joySt.xAxis' back to zero over time. Probably something along the lines of a twentieth of a degree per second (or less). Seems like on a calibrated unit it would pretty much take care of long term drift? Apologies if I'm being particularly thick and have missed something. :)

Tried to have a go myself last night, but I'm completely unfamiliar with 'C'.

Gotta say it again though, superb work guys!
 
Thanks for the help

the Library/InvensenseMotionDriver directory is inside EDTracker2-master/library

Will do it all over with a clean W8 system and be sure I'm not overlooking something.

Still time enough till Alpha- 4 :D
 
I suspect my mpu fubard, I tried the edtracker and I get as follows,

DMP Pitch -0.01
DMP Yaw +95.14 and climbing
DMP Roll -5.06
Raw Z Accel -48203 around that figure


Yaw Drfit +73.47
Drfit Comp -99.53

the head just moves on its own lol

The Axis are screwed too Y is X axis, X is a bit of both X and Y and Z is Y axis

Got a new hobby kit just waiting on a new soldering iron gave up trying to find small tips so bought a new one.

Got my daughterboard too thanks fred, will try that if I get the same result ias the first one ts all going in the bin.
 
Back
Top Bottom