Processing Schomcessing Java Palaver!

Seems that to have the best chance of using the new ED Tracker UI you need 32 bit java installed.

Bit of a pain until I get round to re-writing the app in something sensible but until then you can have both 32 and 64 bit versions of java installed and use the java control panel to choose which one is active.



Calibration Bug Fixed

The calibration sketch bug which prevented correct application of gyro and acceleration bias values has been fixed

The in-game drift doesn’t behave as well as the old V1 sketch and this needs more testing on my part. I’m wondering if this is due to the sample rate/low pass filter settings otr perhaps the full scale resolution settings.

Unfortinately my PC has melted from all the Elite Dangerous fun!  Still, excellent excuse to  buy a new i7/GTX770 PC



ED Tracker V2 – For the brave

16/05/2014  – There is a bug is the Calibration Sketch which prevent it doing what it’s supposed to to. So until I get a fix out (tonight) it’s eye candy only.  The yaw drift calibration can still be performed in the main sketch but the in-game experience isn’t as drift free as it should be.



This is a work in progress so all feedback welcome.

N.B if you want to play with this you’ll need to install the InvensenseMotionDriver (available in above link) in the Arduino lib folder.

[Edit 14/May] If you’re doing this from scratch (never having played with the older MPU6050Joy sketch) then you will need to drop in a couple of modified files (USBAPI.h & HID.cpp )  from  Instructions on the github page.

I’ve been working on a couple of major changes and additions to the ED Tracker software; A Windows based UI and a move away from the I2CDevLib libraries to a port of the ‘fresher’ Invensense code base.

The UI is written using the Processing IDE (which is a familiar Uncle to the Arduino IDE). It provides a much friendlier way for ED Tracker users to perform calibration and drift compensation calculations. No need for serial monitor windows and changing code variables.


One benefit of Processing is that it very quick to develop in. It’s also cross-platform (being java). It does look a bit 1990’s though 🙂

There is a spirit level on the right hand side to enable the sensor to be positioned flat for calibration. It’s also useful to confirm you have your headphones positioned correctly (with the sensor above your heads pivot point). The UI sends a command to the Arduino Micro to start talking to it. You can also force this to happen by hitting 1 to toggle monitoring.

N.B At the moment you cannot load a sketch to the Pro Micro while the UI is running (it hangs onto the com port). So quit the UI when uploading sketches.

Due to memory constraints there still two sketches; Calibration and EDTracker. There are still optimisations and space savings to be made so I still aim to combine all the functionality into a single sketch eventually.

When the main ED Tracker sketch is loaded the area at the bottom of the UI shows the output from the DMP (yaw and pitch) along with current yaw drift. You can scale the drift axis to ‘zoom in’ and visually check how drift is behaving over time.

The code base is designed to operate with a top mouted sensor. You can use option  5 ‘Rotate Mounting Axis’ to adjust which way is ‘forward’.  Stick your EDTracker on your head and ensure the head in the UI acts like it’s in a mirror. Just hit 5 to cycle through the available moutings. The orientation is saved in EEPROM so you only have to do it once.

Calibration Steps:

  • Load up the Calibration Sketch to the Micro
  • Run the UI.
  • Monitoring should kick in after 15 seconds or so (hit 1 to force it if not)
  • Position the ED Tracker so that the sensor is as flat/horizontal as possible.
  • Allow to warm-up/settle for a minute or two
  • Hit 9 to recalculate the bias values. New bias values will be displayed and saved to EEPROM.
  • Hit 2 and check that the bias info read back from the tracker matched the bias values reported above.
  • A BUG prevents the recalibration having any visible effect on the red dot in the spirit level. Fixed in next release

Yaw Drift Compensation

  • Load the main EDTracker sketch
  • Run the UI
  • Allow the tracker to settle and warm up (2 – 3 minutes)
  • The current ‘in use’ drift compensation value in displayed
  • The current measured (actual) drift value is also displayed
  • Hit 3 to reset the view (straight ahead) and reset drift tracking
  • After 5 minutes hit 8 to calculate a new drift comp value
  • The new value is automatically writted to EEPROM
  • Hit 3 and wait another 5 minutes.
  • The reported Yaw Drift value should tend to a value less than 1.0, usually less than 0.5 is achievable
  • Once you’re happy with the Yaw Drift hit 8 to save it to EEPROM.

There are still user configurable settings which need to be in-code, i.e linear/non-linear response curve & response scaling.  It’s on my TODO list to add these to the UI.

There are still lots of things to be implemented – dynamic drift compensation (does it change with temperature?), ‘crotch look reset’ – looking straight down will perform a re-centering, magnetometer integration (MPU-9150 or separate device).

Ad Astra!

Rob J





ED Tracker Customer PCB available

The DIY EDTracker v1.00 boards are now available 🙂

Here’s a picture of one fully populated with the required bits.


The bare boards (pcb) are £5 each and this includes postage in the UK. Postage to outside of UK will be arranged on an individual basis depending upon your location.

You will need to source your own compatible MPU-6050 breakout and Arduino Pro Micro, plus a button. In the UK you can get these from Hobby Components

Fabricated EDTracker devices, fitted with switch, Arduino Pro Micro compatible dev board and MPU-6050 dev board can be arranged on an indivudual basis, at £25+P&P. These units will be fully soldered up, patched and sanity tested.

Drop me a message a to be added to the list and one of the ED Tracker guys (myself, Brumster or Dead Fred) will get back to you.