DUSI DUSIDatasheet ************* 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 per G hz Magnetometer bandwidth 13 bits @10 per gauss hz Temperature Accuracy `+- 5' deg F Temperature Precision `+- .3' deg F 1 Can be powered via USB 2 with good calibration 2 Backlight *********** Backlight Parameter Value Unit -------------------------------------------------------------------------- White Backlight Current 8 mA Green Backlight Current 4 mA 3 Battery ********* Battery Battery charges from usb with a max of 100mA. Parameter Value Unit -------------------------------------------------------------------------- Battery Type `3.6v lipo' Battery Capacity 250 mAH Battery Charge Current 100 mA Charge time 4 hours Run time >10^1 hours 1 decreases with age and backlight usage 4 Parts ******* Parts * 16key keypad * 132x64 lcd with green and white backlight * 70 series box with protective case (boxenclosures.com) * laser pointer * on/off switch * usb connector 5 Components ************ * at90usb1287 * sca3000-d01 * ad7799 * hmc1052 * hmc1051z * irf7905 (x2) * max1811 * fan2503S30 * ra8816 lcd Various capacitors resistors and connectors see schematic for details 6 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. 6.1 root ======== This directory contains all of the other directories. It contains the "softwareversion" accessor for determining what software version you are using. 6.2 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) * contrast - the lcd contrast * reversevideo - invert the lcd contents? * whitebacklight - control the white backlight * greenbacklight - control the green backlight 6.3 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. 6.4 power ========= * battery * voltage - the battery voltage * chargedvoltage - the voltage of the battery when it was last charged * dischargedvoltage - the voltage of the battery when it was last discharged * state - the current state of the battery * stillsleeptype - sleep type to use when the device is still * stillsleeptimeout - time the device must be still before sleeping * buttonidlesleeptype - sleep type to use when no buttons are pressed * buttonidletimeout - time the device must not have a button pressed before sleeping * wakeonmotion - if set to true, the device will wake on motion when it sleeps from being still. It will not wake from motion from a button idle timeout. * lastsleeptype - the last type of sleep the device was in, used for debugging Note: the device does not sleep when plugged in via USB. The sleep types supported: * none - sleep disabled * idle - sensors and processor stopped, device consumes about 15% of normal power. Can wake up from the most different ways. * powersave - shutdown everything possible while still keeping the LCD and backlight on (if available) * powerdown - shutdown everything to lowest possible power consumption. Uses about 0.5% of normal operating power. Note: If wakeonmotion is set, because extra power is needed to be able to wake from motion, and the device sleeps from being still, the device will consume about 1.5% of normal operating power in powerdown mode rather than 0.5%. 6.5 calibration =============== * 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 6.6 survey ========== The device can store various measurements * stats - get for statistics about the measurements * measurements - get to dump all of the measurements * usebacksights - set to enable automatic backsights when surveying 7 Menu ****** The menu on the device is simple, press the key of the number letter or symbol which next to the word or icon you want to perform. The main menu allows you to select a function for the device. It is always possible to press 'D' repeatedly to eventually return to the Main Menu. It is usually possible to press 'A' to read information about the current page. 7.1 Compass =========== The compass shows a 3d compass as well as other statistics. 7.2 Survey ========== The survey system allows you to take measurements of incline and azimuth using the laser. These measurements may be recorded. Typically there is enough storage for at least 500 shots. It is also possible to enter attributes to go with each measurement (such as distance between survey points) but not required. To make a measurement from the survey menu, hold '1' down and the laser will turn on, when you release it, a second later the laser will go off and the current reading is locked. Once held, you can store the measurement with '2'. If this should be a backsight for the last shot, press '3' to toggle to backsight mode. If you want to enter distance LRUD, or other parameters, enter the attributes with '4' before storing. Data required to store a shot, the minimum is 5 bytes for header, incline and azimuth, additional attributes add: * 3 bytes backsight incline and azimuth * 10 bytes - out of order stations penalty * 2 bytes - distance * 4 bytes - lrud Name To Dist Incline Azimuth LRUD bytes -------------------------------------------------------------- AFF-001 - +42.2 135.3 15 AFF-002 AFF-002 - -26.7 167.4 5 AFF-003 AFF-003 23.4 +35.2 302.7 7 AFF-004 AFF-003 - -42.1 253.9 1 1 2 19 AFF-005 3 The first measurement uses an extra 10 bytes because there is no measurement before it. The fourth measurement uses 5 bytes normally, 4 more for lrud, and 10 more because the number is not sequential. The measurements can be downloaded to a computer, or viewed on the device. 7.3 Pedometer ============= The pedometer uses a simple algorithm to detect steps by sensing verticle motion. It counts steps with a given tolerance. 7.4 Gaussmeter ============== The gaussmeter allows you to measure magnetic fields in gauss. There is support for absolute, relative and vector magnetometer modes. 7.5 Stats ========= View various statistics about the running program. 7.6 Calibration =============== Proper calibration is extremely important for accurate measurements. The device can be re-calibrated at any time without any additional equipment. The on-screen help system explains what each step of calibration does. 7.7 Settings ============ There are a few settings that can be modified on the device, there are far more settings that can be modified via the dataclient.