Digital compass

All information pertains to the N900.

See also Orrery, a night-sky viewer which also can be used as a digital compass


[edit] Why a compass is needed

[edit] Augmented Reality (AR)

  • GPS gives location of device; compass gives orientation
  • Allows pointing the device and getting information relevant to the pointed direction
  • E.g. Layar, Wikitude

[edit] Navigation

  • Car navigation
  • On-foot navigation
    • Map rotation

[edit] Connection options

  • Optical (use one of the cameras, plus image processing)
    • Best to use user-facing camera, so the world-facing can be used for capturing the world image for AR
      • Both cameras cannot be used at the same time - and the front camera is lower quality.
  • USB
    • Unknown if USB host possible.
    • Unknown if power is available from USB.
  • IrDA
    • Is unsupported at this point. The device only has an CIR transmitter.
  • Bluetooth
    • Bluetooth data
    • Bluetooth audio - sending analog signals via Bluetooth microphone for digital signal processing on the N900
      • Possibly a Bluetooth stereo microphone (Sony ECMHW1) could send the Sin,Cos signals from an analog compass sensor (Sensor 1525, to the N900. Direction would then be determined essentially by arctan2 and possibly low pass filtering for noise reduction.
  • FM radio
    • Requires headphones be connected
    • Signal processing of audio in software
  • MicroSD card
    • There used to be some GPS:s on Flash-type expansion cards. How about a compass?

[edit] Compass chips or sensors

  • Honeywell HMC5843
    • I2C interface
    • Magnetometer requires vector math on client side for interpretation, see OpenMoko i2c compass project for more info
  • Dinsmore analog

[edit] Ready-built compass modules

  • Ocean Server OS4000
  • Ocean Server OS5000
    • USB and RS232 interface

[edit] Microcontrollers

[edit] Converters

[edit] Designs

[edit] Optical image processing of compass

  • Periscope-like mirror

[edit] Ready-made RS232 compass modules with RS232-Bluetooth conversion

[edit] Custom board designs

This MIT project from 2002 designs a custom bluetooth digital compass

[edit] Attaching another compass and Bluetooth/WiFi capable phone

Instead of spending money and time to buy all necessary parts and develop a custom solution, buy the cheapest used Android phone on eBay (G1/Dream, Tattoo?), attach it to the back of N900 with two elastic bands, but without covering the camera lens. Then create an App on the Android phone that just transmits compass coordinates via Bluetooth/WiFi.

[edit] Alternatives to a digital compass

  • Use GPS motion to determine direction
    • Only useful for navigation, not AR
    • Does not work if standing still
    • Ignores the orientation of the device (e.g. if you're walking backwards the map will be upside down)
  • Use image processing for AR
    • E.g. artoolkit
    • Still you cannot get absolute orientation of device
  • Initialized orientation + delta orientations (dead reckoning)
    • Maybe you can initialize the device to a known orientation (e.g. straight north), then use optical flow and/or accelerometer data to extrapolate subsequent orientations
  • Optical compass + manually dragging an on-screen compass to match
    • Not automatic so some AR apps like games might not work
    • But for navigation or rotating maps, it could work: just glance at the optical compass, then drag the map icon to match the orientation.
  • Combined GPS/optical compass for daytime use:
    • Use GPS location and time info to calculate current sun location (The orrery app will do this, for the sun, moon, planets etc)
    • Let user optically align to visible sun