Thanks guys!
Have you investigated any power saving sleep type tricks on the microcontroller?
I planned to do it initially, but it turns out that it only works for a while. The microcontroller goes to sleep and the interrupt request from the MPU should wake it up. And it does... most of the time. Usually it works fine for 5-10 minutes and then just stops responding to the interrupts. So, I decided to just poll the MPU's IRQ line. The sleep config code is all commented out at the moment, and maybe I'll go back to investigate this some more. Until then, I'll just replace the batteries a little more often. The CR123A has a capacity of about 1400mAh and the circuit draws about 8-10mA on average without the sleep mode optimisations. So, in theory it should work for a few days non-stop. But I still have to test this, I only started using it last night.
Out of interest, what did you write the program with?
Notepad++ and SDCC (Small Device C Compiler) for the firmwares (dongle and tracker) and of course, Visual Studio for the config program. I really like SDCC, it's a small but very usable compiler. I was afraid it will give me trouble, but I didn't have any problem with it. And I even used a nightly build, not the official release.
Question for you, does it run the software on the device with an Arduino chip (can't see one from the pictures) or does it use the windows app?
The windows program is just used to configure and monitor the dongle. The dongle and the tracker don't need it after the calibration/configuration. There is no Atmel AVR chip on the board, but there are two microcontrollers in the system: Nordic nRF24LE1 on the tracker and nRF24LU1+ on the USB dongle. They do the processing that the Arduino chip does on the ED Tracker. The microcontroller on the tracker configures the MPU-6050, does the initial calibration, reads the raw data from the MPU and sends it over the radio. The chip on the dongle does the rest: the conversion from quaternions to XYZ, drift compensation and recentering. That part is pretty much a copy of pocketmoon's Arduino code. And of course the dongle also does the USB part.
I've had a look through the files and can't find a schemetic or circuit diagram - is it a secret?
No, of course it's not secret

You probably missed it, it's right there in the root of the repository. KiCad format, but you need a recent version of KiCad to open the files
http://wireless-head-tracker.googlecode.com/svn/trunk/circuit/
Very cool. I probably would have looked into RC lipo batteries like these which are small and flat and might sit under the board.
Would need a inexpensive UBEC to down the voltage. Smaller batteries are available but they are 3.7v so probably too low.
Actually, the CR123A has a nominal voltage of 3V. It starts off at 3.2V, then quickly drops to 3V, and then stays there for a while until if goes bellow 2.4V when it dies. And that is great because I wanted to have no voltage regulator in the circuit to save power. I even desoldered the regulator on the MPU to power it directly from the battery. The nRF24LE1 has a supply range of 1.9V-3.4V and the MPU 2.4V-3.4V, so I don't need a regulator at all. I can power both chips directly from the battery! But I do have a reverse-voltage protection MOSFET in the circuit in case I put the battery in the wrong way around.
RC LiPos would need regulation to lower the voltage to around 3V needed by the circuit. It makes things more complicated.