Pointer Device
Pointer Datasheet
Inside the Box
1 Characteristics
| Parameter | Value | Unit
|
|---|
| Vcc | 3-6v | V^1
|
| Current with USB | 25 | mA
|
| Current without USB | 17 | mA
|
| Current in powerdown mode | 80 | uA
|
| Startup time | 300 | mS
|
| Pitch/Roll Accuracy | 0.2 | deg^2
|
| Pitch/Roll Precision | 0.04 | deg
|
| Yaw Accuracy | 1.5 | deg^2
|
| Yaw Precision | 0.01 | deg
|
| Accelerometer range | +- 2 | G
|
| Magnetometer range | +- 6 | Gauss
|
| Accelerometer output rate | up to 500 | hz
|
| Magnetometer output rate | up to 64 | hz
|
| Accelerometer bandwidth | 10 bits @10 hz | per G
|
| Magnetometer bandwidth | 13 bits @10 hz | per gauss
|
| Temperature Accuracy | +- 5 | deg F
|
| Temperature Precision | +- .3 | deg F
|
1 Can be powered via USB
2 with good calibration
2 Parts
Parts
- surpac CA-8 3 button version (surpac.com)
- usb Cable, connected to device
3 Components
- at90usb1287
- sca3000-d01
- ad7799
- hmc1052
- hmc1051z
- irf7905 (x2)
- fan2503S30
4 DeviceData
This chapter describes all of the data available on the device. It assumes use of the dataclient. It should be obvious how to use the DataViewer as well. Each section begins with the name of the directory.
The openmag project operates an accelerometer, magnetometer, and temperature sensor. If the device is to be used while moving, the calculated pitch, roll, and yaw are invalid due to lack of gyro compensation. If the down vector is not known, the magnetic vector output is still useful as it is not affected by acceleration, but yaw calculation is impossible.
The accelerometers are in sensor coordinates, the calibrated magnetometer is aligned to the accelerometer, so both calibrated outputs are in sensor coordinates. Box coordinates are another coordinate frame which can be defined by the user, there is a rotation to get from sensor to box coordinates. There is also a rotation to get from sensor to laser coordinates.
Do not be alarmed if you do not have all of the accessors listed, or you have accessors which are not listed here, they may change depending on software version.
4.1 root
This directory contains all of the other directories. It contains the “softwareversion” accessor for determining what software version you are using.
4.2 mouse
- enableshakewheel – if set, then shaking the mouse can scroll up and down
- orientation – set which axis is used for movement, default is x
- horizontalsensitivity – the sensitivity for horizontal movement, set to negative to reverse
- vertical;sensitivity – the sensitivity for vertical movement, set to negative to reverse
- scrollsensitivity – sensitivity for scrolling
4.3 joystick
The device can function as a 6 axis 3 button joystick.
- rotation
The rotation allows for an arbitrary rotation to be entered by the user for joystick data. If you enter 0 for the angle, then there is no rotation. This allows the joystick to work in arbitrary coordinates.
- angle – angle in degrees to rotate coordinates
- x – x component of vector to rotate around
- y – y component of vector to rotate around
- z – z component of vector to rotate around
- axis0-axis5 – the axis of joystick to setup
- input – what this axis gets input from, can be roll, pitch, yaw, x, y, or z. Pitch is the angle between the x axis and the currently measured data. Roll is the angle rotated around the x axis. Yaw uses the other sensor to tilt-compensate an angle.
- sensor – which sensor to use? accel, mag, or none to disable
- sensitivity – increase to make more sensitive, make negative to reverse direction.
4.4 settings
- mag
- range - The ADC which reads from the magnetic sensors supports variable gain. This means that with reduced precision, you can measure over a larger range. The range for the magnetometer, can be one of 6.4, 3.2, 1.6, or 0.8. This is the approximate range in gauss of the magnetic field that can be measured, the actual range that can be measured without saturation varies from unit to unit depending on the bias of the sensor.
- bandwidth - The magnetometer can be read at different speeds. This is apparent when looking at the inputrate and noise of the mag after setting the bandwidth. The faster data is read, the higher the noise is. Currently there are 3 settings: fast (64hz), normal (13hz), and slow (4.5hz)
- usbcdcenabled – the usb device acts like a virtual com port cdc device
- usbmouseenabled – the usb device acts like a mouse
- usbjoystickenabled – the usb device acts like a joystick
- uartenabled – the uart works like a serial port for data
- uartbaudrate – the baud rate of the uart, (default 38400)
- button0outputsinfo – if set the pitch, roll, yaw, dip, incline, and azimuth are reported when the first button is pressed
- truenorth – if set the declination is subtracted from the yaw
Note: Do not enable more than one of usbcdcenabled, usbmouseenabled, or usbjoystickenabled if you are connected to a computer running windows.
Enabling mouse and especially joystick makes the device run slower which will slow down the autocalibration algorithms as well as reduce sensor input rates. Disable these modes if you are not using them.
4.5 stats
The accessors relevant:
- freeram - unused ram from the total of 8192 bytes, useful for debugging.
- runtime - how long the device has been running since powerup in seconds
- mainloopfreq - how fast the main loop is running in hz, very useful for profiling.
- watchdog_resets - If the device crashes or locks up, after a timeout it automatically resets, but this counter gets incremented. If this value is ever non-zero, then a software bug has occured.
4.6 calc
- pitch - the angle the box x-axis is pointed up or down, from -90 to 90.
- roll - the rotation around the box x-axis, from -180 to 180.
- yaw - the heading of the box x-axis, from 0-360. 0 is north, 180 is south.
- dip - the measured inclination angle between the magnetic vector and acceleration vector. This is related to your geographic magnitic latitude and should be relatively constant when well calibrated and the device is not moving.
- incline - the angle between the laser axis and horizontal.
- azimuth - the direction the laser axis is pointed, like yaw.
- boxalignedaccel - the calibrated accelerometer with the boxalignment applied, this is used to calculate pitch and roll
- boxalignedmag - the calibrated magnetomtermeter with the boxalignment applied, this along with boxaligned accel is used to calculate yaw and dip
4.7 calibration
- inclination – the inclination, can be set by the user to speed up calibration
- declination – the angle between magnetic and true north
- fieldstrength – the strength of the field in gauss, used to make the calibrated magnetometer output correct in gauss
- boxalignment – the rotation from sensor coordinates to box coordinates
- laseralignment – the rotation from sensor coordinates to laser coordinates
- accel – Computes biases and scale factor for the accelerometer
- mag – Computes biases, scale factors, and cross-coupling coefficients
- magalign – computes dip angle as well as the rotation from magnetometer to accelerometer coordinates. The rotation is displayed as a vector to rotate around, where the magnitude is the angle to rotate.
- magfast – fast mag calibration which only computes bias and scale factor. This is used by mouse mode. The calibration is calculated quickly without being as precise and does not require the device to stop moving.
There are 4 types of autocalibration:
- accel - used for accelerometer, need accurate calibration to compute pitch and roll
- mag - magnetometer, needed for accurate magnetometer readings
- magalign - this requires both accel and mag to calculate, it is the misalignment of the magnetic sensors in relation to the accelerometers. It corrects errors in yaw calculation by as much as 5 degrees.
- magfast are - this just computes biases for the magnetometer quickly, it is used for mouse movement because the more precise magnetometer calibration updates slower, can be used when relative movement is better than absolute.
Each type is a directory with:
- calibration - the current calibration, you may clear it with the clear operator
- autocalenabled - specifies if true, calibration can continously update
- debugging - enable this to automatically output calibration when it is updated
4.8 sensors
The mag also provides
- saturated - gives status on which channels (if any) of the magnetometer saturated.
The temperature sensor provides
- outputtype - can be set to F, C, or raw. This specifies the units to use for temperature.
- output - get this to read the temperature
- autooutput - if set to true the temperature will continously output