Home
x-IMU User Manual 4.3 - x
Contents
1. x IMU 2D49 J Category Other Figure 21 Confirming the port name assigned to the x IMU Bluetooth pairing 6 2 Bluetooth LED The blue Bluetooth LED indicates the Bluetooth radio state The LED behaviour and associated Bluetooth radio states are detailed in table 1 23 LED behaviour Bluetooth state Off Switched off Power to the radio is completely disconnected Flashing 1 Hz Fully powered and discoverable On Fully powered and connected Table 1 Bluetooth LED states 6 3 Bluetooth bandwidth It is possible for the user to define data output rates so that the amount of data being generated by the x IMU exceeds the bandwidth of a communication channel If the Bluetooth bandwidth is exceed the Bluetooth transmit buffer will overrun and some data will be lost When this happens a Bluetooth transmit buffer overrun error will be generated As this error is sent immediately after the buffer has overrun the error will be successfully transmitted This error can be avoided by reducing the data output rates All data sent to the x IMU via Bluetooth is buffered in the Bluetooth receive buffer before being pro cessed The time required to process the received data is dependent on the data If data is sent to the x IMU via Bluetooth at a rate at a rate greater than it can be processed then the receive buffer will overflow and some data will be lost When this happens a Bluetooth receive buffer overrun
2. G a ee 61 1 x IMU overview The x IMU was designed to be the most versatile Inertial Measurement Unit IMU and Attitude Heading Reference System AHRS product available Its host of on board sensors algorithms and configurable 8 channel auxiliary port make the x IMU both a powerful sensor and controller Communication is enabled via USB or Bluetooth for wireless applications The on board SD card battery charger via USB real time clock calendar and motion trigger wake up also make the x IMU an ideal stand alone data logger The open source x IMU GUI allow users configure all internal x IMU settings view sensor data in real time and export data to software such as MATLAB and Microsoft Excel Custom user software may be developed using the x IMU API 1 1 x IMU Features On board sensors e Triple axis 16 bit gyroscope Selectable range up to 2000 s e Triple axis 12 bit accelerometer Selectable range up to 8 g e Triple axis 12 bit magnetometer Selectable range up to 8 1 G e 16 bit thermometer e 12 bit battery voltage level e Factory calibrated e Temperature compensated gyroscope only e Selectable data rates up to 512 Hz On board algorithms e IMU and AHRS algorithms provide real time measurement of orientation relative to the Earth e Internal states updated at 512 Hz e Algorithm initialise and tare commands can be sent in real time e Complete sensor calibration algorithms for user ma
3. o o e 46 18 3 24 Gyroscope z axis bias temperature sensitivity o o e 46 18 3 25 Gyroscope sample 1 Temperature eee eee ee ee 46 18 3 26 Gyroscope sample 1 x axis bias e e i as a ac a o ee 46 18 3 27 Gyroscope sample 1 y axis bias o ee ee 47 18 3 28 Gyroscope sample 1 z axis bias essea ccc odc adese ee 47 18 3 29 Gyroscope sample 2 Temperature ea e ee 47 18 3 30 Gyroscope sample 2 x axis bias ee ea eaer e 47 18 3 31 Gyroscope sample 2 y axis bias co rpa mas a A a 47 18 3 32 Gyroscope sample 2 z axis bias ee o 47 18 3 33 Accelerometer full scale o e 48 18 3 34 Accelerometer x axis sensitivity o 48 18 3 35 Accelerometer y axis sensitivity ee 48 18 3 36 Accelerometer z axis sensitivity ee 48 18 3 37 Accelerometer x axis bias danda s y ora ro do nerako 48 18 3 38 Accelerometer y axis bias e 48 18 3 39 Accelerometer z axis bias e 49 18 3 40 Accelerometer sampled x axis at 1 g ee 49 18 3 41 Accelerometer sampled y axis at 1 g a 49 18 3 42 Accelerometer sampled z axis at 1 g 49 18 3 43 Accelerometer sampled x axis at 1 g aaou aa ee 49 18 3 44 Accelerometer sampled y axis at 1 g osooso e e e e e e ee 50 18 3 45
4. 11 11 12 13 14 14 16 17 18 19 19 20 20 21 21 22 24 24 24 24 25 25 25 25 26 26 9 1 Maimtaimimp clock DOWEE ss oia a ai eee eee de eg ia e we RA 10 Sensors 10 1 Battery voltmetel osos aa A Aa a A R aE 10 2 Thermometer 10 3 Gyroscope 10 4 Accelerometer 10 5 Magnetometer 11 Sensor calibration 12 IMU and AHRS algorithms 13 Power management 13 1 External supply 13 2 Battery and charging 40 024 4 44 wg a ee A RE A wee ae ge 13 3 Sleep mode 13 4 Low battery voltage detection o e e 13 5 Sleep timer 13 0 Motion triseered Wakeup ta ie ae Be RR Rae Ree ed ee Ea we 13 7 Tips for minimising power consumption 000 h a a a ee 14 Auxiliary port 14 1 Disabled 14 2 Digital WO Mode esai ac Kb da eh Sh ee RR ee 4 de oe ew ai gais 14 3 Analogue input 144 PWM output mode eae ee ee ee Ce a ae e e o ee a ea 145 ADXLS45 bus mode s oia a oe eee ee Qe ee ee a 14 6 UART mode 14 6 1 UART bandwidth e s 66 4 io 44 0 e eee ta eee be e a 15 Communication protocol 16 Commands 16 1 Individual commands soea a di a Roe age eee eS Ae Bee ek BS 16 11 Nul command 5 2 44 2 amp ead ahha ee ee BRR eR RR cal be a 160 2 Factory reset sei 64 640844 a Ue Re ewe Nd do we ee GE la E e MS RESE neh ee eos ee A ee ge A ale BR Re Ao E E eee 16 14 Sleep 2 nee en ee aoe Ghegeeed ica a eS dheataeechiadwawa eh sab hea 16 1 5 Reset
5. Calibrated data In calibrated data mode the analogue data is the calibrated measurement in Volts This data is provided in the calibrate analogue data packets The calibrated measurement a is calculated from the raw ADC measurements Y according to a sensitivity s and bias ba as described by equation 6 Parameters sa and ba are defined in the analogue input sensitivity and bias registers An comes ban 6 San Pin I O Description AX0 Input Analogue input channel AXO AX1 Input Analogue input channel AX1 AX2 Input Analogue input channel AX2 AX3 Input Analogue input channel AX3 AX4 Input Analogue input channel AX4 AX5 Input Analogue input channel AX5 AX6 Input Analogue input channel AX6 AX7 Input Analogue input channel AX7 Table 5 Auxiliary port pin assignments for analogue input mode 14 4 PWM output mode In PWM output mode four pins of the auxiliary port function as digital PWM outputs Unused pins are configured as high impedance inputs The PWM frequency may be set from 3 Hz to 65 535 Hz in the PWM frequency register The duty cycle of each of the four PWM output channels are set by sending a PWM data packet to the x IMU The x IMU echo back the packet as confirmation after the duty cycles have been set 33 Pin I O Description AX0 Output PWM output channel AXO AX1 Input Unused AX2 Output PWM output channel AX2 AX3 Input Unused AX4 Output PWM output channel AX4 AX5 Input Unused AX6 Output PWM o
6. Description 0x0014 A magnetometer saturation error will be sent if the measurements taken during the execu tion of the measure magnetometer bias and sensitivity command were detected as having saturated and the execution of the command was aborted See the magnetometer calibration section for more information 17 1 22 Incorrect auxiliary port mode Error code Description 0x0015 An incorrect auxiliary port mode error will be sent if an auxiliary port action is requested while the auxiliary port is not in the correct mode for that action For example an incorrect auxiliary port mode error will be sent if a digital IO data packet is received while the auxiliary port mode is disabled See the auxiliary port section for more information 41 17 1 23 UART receive buffer overrun Error code 0x0016 Description A UART receive buffer over error will be sent if the UART receive buffer overruns and data to be received was lost This occurs when data is transmitted to the x IMU at a rate greater than the rate it can be processed Consider reducing the rate at which data is sent to the x IMU if this error occurs repeatedly See the UART bandwidth section for more information 17 1 24 UART transmit buffer overrun Error code 0x0017 Description A UART transmit buffer overrun error will be sent if the UART transmit buffer overruns and data due to be transmitted was lost This will occur when the communication channel bandwidth is unable
7. Description Calibrated bias of the ADXL345 B x axis in lsb The typical value is 0 Isb 18 3 97 ADXL345 B y axis bias Address 0x0060 Value Q8 8 signed fixed point value between 256 and 127 9961 Description Calibrated bias of the ADXL345 B y axis in lsb The typical value is 0 1sb 18 3 98 ADXL345 B z axis bias Address 0x0061 Value Q8 8 signed fixed point value between 256 and 127 9961 Description Calibrated bias of the ADXL345 B z axis in lsb The typical value is 0 Isb 18 3 99 ADXL345 C x axis sensitivity Address 0x0062 Value Q10 6 signed fixed point value between 512 and 511 9844 Description Calibrated sensitivity of the ADXL345 C x axis in lsb g The typical value is 256 lsb g 18 3 100 ADXL345 C y axis sensitivity Address 0x0063 Value Q10 6 signed fixed point value between 512 and 511 9844 Description Calibrated sensitivity of the ADXL345 C y axis in lsb g The typical value is 256 lsb g 18 3 101 ADXL345 C z axis sensitivity Address 0x0064 Value Q10 6 signed fixed point value between 512 and 511 9844 Description Calibrated sensitivity of the ADXL345 C z axis in lsb g The typical value is 256 Isb g 18 3 102 ADXL345 C x axis bias Address 0x0065 Value Q8 8 signed fixed point value between 256 and 127 9961 Description Calibrated bias of the ADXL345 C x axis in lsb The typical value is 0 lsb 59 18 3 103 ADXL345 C y axis bias Address 0x0066 Value Q8 8 signed fixe
8. sleep mode However if no motion is detected for 20 seconds the x IMU will enter sleep mode If motion is then detected while in sleep mode the x IMU will wake up 13 7 Tips for minimising power consumption Battery powered applications require that power consumption is minimised in order to extend the battery life The x IMU is designed to optimise power consumption according to user settings The user may therefore expect a considerable reduction in power consumption and extended battery life simply by using register settings appropriate to their application 30 Tips e Set data output rates of unused data to disabled e Use the minimum data output rates required by application Set algorithm mode to disabled if the IMU and AHRS algorithms are not required Disable Bluetooth power if not Bluetooth is unused Use the sleep timer and motion trigger wake up to automatically enter sleep mode during periods of inactivity 14 Auxiliary port The x IMU features an auxiliary port that can be configured to one of many modes The auxiliary port connector is a 2 x 6 2 54 mm pitch female header socket The socket pins include ground an external power input 3 3 V power output hard reset and 8 I O channels The pins are annotated in Figure 22 and summarised in table 2 AX3 AX7 Ground AX1 AX5 Reset AXO AX4 3 3V AX2 AX6 External power input Figure 22 Auxiliary port pins 31 Pin Description Min Max GND Common grou
9. 1 Temperature Address Value Description 0x0018 Q8 8 signed fixed point value between 128 and 127 9961 Sampled temperature of gyroscope in C obtained through the execution of the Sample gyroscope bias at temperature 1 command This value is used by the gyroscope bias cali bration algorithm in the calculation the gyroscope bias parameters See the gyroscope bias calibration section for more information 18 3 26 Gyroscope sample 1 x axis bias Address Value Description 0x0019 Q13 3 signed fixed point value between 4096 and 4095 875 Sampled gyroscope x axis output in lsb obtained through the execution of the Sample gyroscope bias at temperature 1 command This value is used by the gyroscope bias cali bration algorithm in the calculation the gyroscope bias parameters See the gyroscope bias calibration section for more information 46 18 3 27 Gyroscope sample 1 y axis bias Address Value Description Ox001A Q13 3 signed fixed point value between 4096 and 4095 875 Sampled gyroscope y axis output in lsb obtained through the execution of the Sample gyroscope bias at temperature 1 command This value is used by the gyroscope bias cali bration algorithm in the calculation the gyroscope bias parameters See the gyroscope bias calibration section for more information 18 3 28 Gyroscope sample 1 z axis bias Address Value Description 0x001B Q13 3 signed fixed point value between 4
10. 4 Hz 8 Hz 16 Hz 32 Hz 64 Hz 128 Hz 256 Hz or 512 Hz in the battery and thermometer data output rate and inertial magnetic data output rate registers 26 10 1 Battery voltmeter The battery voltmeter allows the battery voltage to be monitored by the user application The battery voltmeter must be correctly calibrated if the low battery voltage detection functionality is to be used The battery voltmeter has 12 bit resolution and a range of 0 V to 6 6 V When the power switch is in the off position and the x IMU is powered from an external supply via the auxiliary port the battery voltmeter will measure the voltage of the external supply Raw ADC data In raw data mode the battery voltmeter data is the ADC integer value between 0 and 4096 corresponding to a voltage between 0 V and 6 6 V This data is provided in the raw battery and thermometer data packets Calibrated data In calibrated data mode the battery voltmeter data is the calibrated measurement in Volts This data is provided in the calibrate battery and thermometer data packets The calibrated measurement v is calculated from the raw ADC measurements according to a sensitivity s and bias b as described by equation 1 Parameters b and s are defined in the battery voltmeter sensitivity and bias registers v 0 by 1 10 2 Thermometer The thermometer is built in to the gyroscope and provides a measurement of the temperature of the device The thermometer must be
11. A z axis in lsb g The typical value is 256 Isb g 18 3 90 ADXL345 A x axis bias Address 0x0059 Value Q8 8 signed fixed point value between 256 and 127 9961 Description Calibrated bias of the ADXL345 A x axis in lsb The typical value is 0 lsb 18 3 91 ADXL345 A y axis bias Address 0x005A Value Q8 8 signed fixed point value between 256 and 127 9961 Description Calibrated bias of the ADXL345 A y axis in lsb The typical value is 0 lsb 18 3 92 ADXL345 A z axis bias Address 0x005B Value Q8 8 signed fixed point value between 256 and 127 9961 Description Calibrated bias of the ADXL345 A z axis in Isb The typical value is 0 Isb 58 18 3 93 ADXL345 B x axis sensitivity Address 0x005C Value Q10 6 signed fixed point value between 512 and 511 9844 Description Calibrated sensitivity of the ADXL345 B x axis in Isb g The typical value is 256 lsb g 18 3 94 ADXL345 B y axis sensitivity Address 0x005D Value Q10 6 signed fixed point value between 512 and 511 9844 Description Calibrated sensitivity of the ADXL345 B y axis in lsb g The typical value is 256 lsb g 18 3 95 ADXL345 B z axis sensitivity Address 0x005E Value Q10 6 signed fixed point value between 512 and 511 9844 Description Calibrated sensitivity of the ADXL345 B z axis in lsb g The typical value is 256 lsb g 18 3 96 ADXL345 B x axis bias Address Ox005F Value Q8 8 signed fixed point value between 256 and 127 9961
12. APT for various applications can be found on the x IMU Examples webpage Features e View edit and backup all internal x IMU settings e Real time 2D and 3D data graphics e Control panels for auxiliary port e Data logger and file converter for exporting data e g to MATLAB Microsoft Excel etc e Magnetic calibration tools e Firmware bootloader to access new features in future x IMU firmware versions 2 Getting started 1 Install the USB drivers or pair the x IMU as a Bluetooth device 2 Download and install the latest version of the x IMU GUI 3 Connect to the x IMU via the serial port tab page of the x IMU GUI 3 Hardware overview Figure 1 x IMU and battery in plastic housing C24 go capan CIN Mie per ca Ss Lf me y Wile x IMU 1 4 im WWWex 10 CO UkK w me ms o Ss A N _ a Figure 2 x IMU top Figure 3 x IMU bottom 3 1 Power switch The power switch is used to switch the battery and USB power on or off The battery and USB power is completely disconnected when the switch is in the off position The x IMU may be powered by an external supply via the auxiliary port if the power switch must be in the off position 3 2 Command button The command button that allows the execution of commands while the x IMU is operating as a standalone device See the command button section for more information 3 3 LEDs 3 3 1 Status LED Green The green LED indicates the status of the x IMU It will remain lit while the
13. Accelerometer sampled z axis at 1 g oaoa e 50 18 3 46 Magnetometer full scale is ss ee 50 18 3 47 Magnetometer x axis sensitivity ee ee 50 18 3 48 Magnetometer y axis sensitivity 2 ee ee 50 18 3 49 Magnetometer z axis sensitivity 2 ee 51 18 3 50 Magnetometer x axis bias ee 51 18 3 51 Magnetometer y axis bias e ee 51 18 3 52 Magnetometer z axis bias o lt e s s c sea e 51 18 3 53 Magnetometer x axis hard iron bias p ssa s oa am o eae e E a a 51 18 3 54 Magnetometer y axis hard iron bias sse eee ee ee 51 18 3 55 Magnetometer z axis hard iron bias oaoa o 52 123 a GAlgorithm mode ereis ea re o A Re ee ds 52 18 397 Algornthm gan Kp e cree e a a a E a OE OE do 52 18 3 98 Algorithm ad Kl e a a aa a ae a ee a a a a e aE e a 52 18 3 59 Algorithm initial proportional gain ee 52 18 3 60 Algorithm initialisation period a e soes poa a ee ee a a 52 18 3 61 Algorithm minimum valid magnetic field magnitude 2 53 18 3 62 Algorithm maximum valid magnetic field magnitude s oaoa a 53 18 3 63 Tare quaternion element O lt o u coraa oca coracao iea e a ee ee 53 18 3 64 Tare quaternion element 1 oaoa a 53 18 3 65 Tare quaternion element 2 oue a a caio o e d e a e aa a ee 53 18 3 66 Tare quaternion element 3 2 42 0 44 bee RR koa eia a eap eS 53 18 301 Sensor data mode ig s sa eg bbe oe ee ee Ra e e goes 53 18 3
14. General Expand all Quatemion Data Rate 128 Hz 2 SD Card Collapse all E Power Management mee Save all to file i Battery Shutdown Voltage V 3 5 Sleep Timer s Disabled Load from file Motion Triggered Wake Up Disabled L Bluetooth Power Enabled Read all registers 63 Auodliry Port Write all registers Read this register only Write this register only Figure 5 x IMU GUI registers tab page with right click action menu 4 1 3 Tab page Date time The date time tab page allows the user to view and set the date and time of the x IMU s real time clock and calendar The Received date time text box displays the date and time each time it is received from the x IMU The Read Date Time button may be used to read the current date and time of the x IMU this is of use if date time data rate has been disabled Pressing the Set Date Time button will set the x IMU date and time equal to computer date and time Received date time 15 February 2011 01 29 52 Read Date Time Set Date Time Figure 6 x IMU GUI date time tab page 13 4 1 4 Tab page Commands The commands tab page is used to send commands to the x IMU See the commands section for more information on individual commands Once the x IMU has processed a command it will echo the command back and it will appear in a message box To suppress these message boxes un check the Display received
15. communication channel If the UART bandwidth is exceed the UART transmit buffer will overrun and some data will be lost When this happens a UART transmit buffer overrun error will be generated As this error is sent immediately after the buffer has overrun the error will be 34 successfully transmitted This error can be avoided by reducing the data output rates or increasing the UART baud rate register All data sent to the x IMU via UART is buffered in the UART receive buffer before being processed The time required to process the received data is dependent on the data If data is sent to the x IMU via UART at a rate at a rate greater than it can be processed then the receive buffer will overflow and some data will be lost When this happens a UART receive buffer overrun error will be generated 15 Communication protocol This section is currently unavailable Users wishing to develop their own x IMU communication interface are advised to study the open source x IMU API The API is source code is written in C and well commented so that porting the API or aspects of to another language should be a straight forward exercise 16 Commands Commands are executed by either sending a command packet to the x IMU USB or Bluetooth or by pressing the command button which may be configured to execute a specific command Commands are sent using the x IMU GUI via the commands tab page Once a command has been executed the x IMU will echo the command p
16. device is sampling and sending data and will otherwise be extinguished for example during the execution of some commands In sleep 10 mode the green LED will blink once every 3 seconds The green LED will flash rapidly while the on board bootloader is active 3 3 2 SD card LED Amber The amber LED indicates SD card activity See the SD card LED section for more information 3 3 3 Bluetooth LED Blue The blue LED indicates the state of the Bluetooth connection and power status See the Bluetooth LED section for more information 3 3 4 Charging LED Red The red LED indicates the charging state of the battery The red LED will remain lit while the battery is charging and will be extinguished once the battery is charged See the battery and charging section for more information 3 4 USB socket The USB mini B socket is used to connect the x IMU to a computer via a standard USB A to mini B 5 pin type cable See the USB section for more information 3 5 Micro SD card socket The micro SD card socket is used to log all data generated by the x IMU to an SD card The x IMU supports standard SD and SDHC cards formatted as either FAT16 or FAT32 The file must be closed before the SD card is removed or the x IMU switched of otherwise the current file will corrupt and data lost See the SD card section for more information 3 6 Bluetooth module The on board Bluetooth module is used to connect the x IMU to a Bluetooth host See the Bluet
17. disable the sleep timer See the sleep timer section for more information 18 3 75 Motion trigger wake up Address 0x004A Value 0x0000 Disabled 0x0001 Low sensitivity 0x0001 High sensitivity Description Enables the sensitivity of the motion trigger wake up See the motion trigger wake up section for more information 18 3 76 Bluetooth power Address 0x004B Value 0x0000 Disabled 0x0001 Enabled Description Enables or disables Bluetooth The Bluetooth can be disabled to reduce power consumption 55 18 3 77 Auxiliary port mode Address 0x004C Value 0x0000 Disabled 0x0001 Digital I O 0x0002 Analgoue input 0x0003 PWM output 0x0004 ADXL345 bus Description Sets the auxiliary port mode See the auxiliary port section for more information 18 3 78 Digital I O direction Address 0x004D Value 0x0000 All channels are inputs 0x0001 Channels 0 1 2 3 4 5 and 6 are inputs 7 is an output 0x0002 Channels 0 1 2 3 4 and 5 are inputs 6 and 7 are outputs 0x0003 Channels 0 1 2 3 and 4 are inputs 5 6 and 7 are outputs 0x0004 Channels 0 1 2 and 3 are inputs 4 5 6 and 7 are outputs 0x0005 Channels 0 1 and 2 are inputs 3 4 5 6 and 7 are outputs 0x0006 Channels 0 and 1 are inputs 2 3 4 5 6 and 7 are outputs 0x0007 Channel 0 is an input 1 2 3 4 5 6 and 7 are outputs 0x0008 All channels are outputs Description Sets the direction of the auxiliary port channels when in d
18. drives Ke Display adapters E DVD CD ROM drives 1 Human Interface Devices c IDE ATA ATAPI controllers IEEE 1394 Bus host controllers amp Keyboards A Mice and other pointing devices E Monitors EP Network adapters l Other devices 17 Ports COM amp LPT x 7 Communications Port COM1 F USE SerialPort COM Processors PP Security Devices Sound video and game controllers lt gt Storage controllers gM System devices Universal Serial Bus controllers Figure 18 Confirming the port name assigned to the x IMU USB connection Windows serial mouse bug Windows may misinterpret the constant stream of data from the x IMU as the behaviour of a serial mouse when the x IMU USB is connected This will lead to the mouse cursor being hi jacked by apparent random behaviour If this happens the x IMU should be unplugged and reconnected while switched off or in sleep mode for the first few seconds of connection The hi jacked activity may leave the mouse buttons disabled which can be undone by entering and then leaving the Ctrl Alt Del screen 5 2 USB bandwidth It is possible for the user to define data output rates so that the amount of data being generated by the x IMU exceeds the bandwidth of a communication channel If the USB bandwidth is exceed the USB transmit buffer will overrun and some data will be lost When this happens a USB transmit buffer overrun error will be gener
19. error will be generated 6 4 Optimising Bluetooth performance The practical range and quality of the Bluetooth connection are dependent on a number of factors A poor Bluetooth connection will be unable to handle higher data output rates and so result in missing data and Bluetooth transmit buffer overrun errors The use of lower data output rates can help achieve a more reliable Bluetooth communication channel The x IMU uses a class I Bluetooth radio which represents a maximum range of 100 m However the practical performance is also limited by computer s Bluetooth class for example a class II Bluetooth dongle representing a range of 10 m will limit the x IMU s operating range to 10 m Performance also varies between Bluetooth dongle brands a dongle from a reputable brand may be expected to perform better than a low cost budget product Bluetooth is a radio system and so the location of the antennae usually built into the dongle should be given consideration For example a miniature Bluetooth dongle plugged in to the back a desktop PC can be expected to achieve worse performance than if the dongle was fixed to a front USB port with line of sight to the x IMU 6 5 Connecting to multiple x IMUs via Bluetooth A single Bluetooth host master e g Bluetooth dongle can connect to up to 7 Bluetooth slaves e g x IMUs simultaneously Each x IMU is assigned a separate serial port name and operates independently However the bandwidth
20. hard iron calibration tab page 4 2 x IMU API The x IMU APT Application Programming Interface is a code library that contains all the classes data structures and methods required to interface to all features and functionality of the x IMU The x IMU API is an open source project written in C and targets Microsoft NET 3 5 Documentation for use of the API 19 is represented by the XML comments throughout the source code which is accessed automatically by Visual Studio s IntelliSense The open source x IMU GUI serves as a comprehensive template for use of all features of the x IMU API See the x IMU Examples web page for further open source examples and applications 5 USB The x IMU streams all communication data simultaneously and identically via USB Bluetooth and to a file on the SD card The USB and Bluetooth connections are also be used to send commands read write registers and control the auxiliary port outputs from the host software application As both USB and Bluetooth connections appear as serial ports use of either communication channel is identical The x IMU can be connected to a computer via a standard USB A to mini B 5 pin type cable The on board FTDI USB chip is widely used USB interface with drivers available for Windows Mac OS X and Linux Once the drivers have been installed and the x IMU connected to the computer the x IMU will appear as a serial port and be assigned an available port name for example COM2 The comp
21. is changed See the magnetometer bias and sensitivity calibration section for more information 18 3 47 Magnetometer x axis sensitivity Address Value Description 0x002E Q12 4 signed fixed point value between 2048 and 2047 938 Calibrated sensitivity of the magnetometer x axis in lsb G See parameter sm in the magne tometer section The value of the parameter can be accurately evaluated through calibration using the Measure magnetometer bias and sensitivity command See the magnetometer bias and sensitivity calibration section for more information 18 3 48 Magnetometer y axis sensitivity Address Value Description 0x002F Q12 4 signed fixed point value between 2048 and 2047 938 Calibrated sensitivity of the magnetometer y axis in Isb G See parameter sm in the magne tometer section The value of the parameter can be accurately evaluated through calibration using the Measure magnetometer bias and sensitivity command See the magnetometer bias and sensitivity calibration section for more information 50 18 3 49 Magnetometer z axis sensitivity Address Value Description 0x0030 Q12 4 signed fixed point value between 2048 and 2047 938 Calibrated sensitivity of the magnetometer z axis in lsb G See parameter sm in the magne tometer section The value of the parameter can be accurately evaluated through calibration using the Measure magnetometer bias and sensitivity command See the magnetometer bi
22. kin e ce ee REA SG OOD Ra OR Ge Oe we eGR RO 213 Valo page Date Gime 6 2 2 94 ra a Ee DR en le eee ee de eG 4 1 4 Tab pages Commands ic se A a a a ae we Pe AA 4 1 5 Tab page View sensor data 25 sd nect Deg ee das a ew ee 4 16 Tab page Auxiliary port 244 4224 5408 4 GR bed a ee ae ae ee ee At Tabpage Datalogger aiani yo PO Aad Mo A Be ae BO e 4 1 8 Tab page SD card i sirab 4s a ee a e ee e AO Tab page Hard iren calibration 4 0 4 4 2 da edie a a eae el a a ew 43 XIN APT 2 co ber id oS bat th a we Hew a eo hee Shoe o a USB 5 1 Installing USB dtivers 2 24 68 e960 bd Read ROE RE ae ee BAG ek ee BS 5 2 USB bandwidths a e oc ae toe ee de ak bee be we A ee te doe Bluetooth 6 1 Pairing the x IMU with a Bluetooth host o e 6 2 Bluetooth LED ici oa Oe ee a A re Re e Gee oS 63 Bluetooth bandwidth 6 666 6 S44 e Ee eRe RE De ee ew es 6 4 Optimising Bluetooth performance 0 00 eee ee ee ee 6 5 Connecting to multiple x IMUs via Bluetooth o o 0 0 e e SD card GA Creating and closing Ales i s o oem io iba do a dd e sde a e e dd a Pao Decard KED e Gag eae IS eR oh Sere de ee E A Oe ew gh ay a ee Se Ge SDcard bandwidth 20 44 2 06 8 4 ae BO A a ee ee es ee da 7 4 Magnetic distortions from the SD card socket os aooga oc o o eiaa ne eni Command button Real time clock and calendar 10 10 10 10 10 11 11 11 11 11 11 11
23. lit while the battery is charging Charging stops automatically once complete The x IMU may be used as normal while the battery is charging It is not necessary for the connected computer to have the USB drivers installed for charging however the charging process will be faster if the drivers are installed 13 3 Sleep mode In sleep mode the x IMU remains powered but all on board components are shutdown This allows the device to be powered down without removing power from essential components for example the real time clock and calendar The green status LED will blink once every 3 seconds to indicate that the device is in sleep mode Sleep mode is enabled through the sources listed below The x IMU will reset upon wake up so that the same behaviour may be expected when the devices is powered on reset or awakened The wake up sources are listed below 29 Sleep mode enable sources e Command button in sleep wake mode e Sleep command via USB Bluetooth or UART e Low battery voltage detection e Sleep timer Wake up sources e Command button in sleep wake mode e Motion trigger wake up 13 4 Low battery voltage detection The calibrated battery voltmeter is used to trigger sleep mode when the battery voltage falls below a specific level defined in the battery shutdown voltage register This allows the x IMU to execute critical tasks prior to power failure for example closing the file on the SD card and notifying the user or host softwar
24. magnetic packets read 12501927 Quaternion packets read 6250964 Digital I O packets read 12501927 Files created 00000_DateTime bt 00000_CalBattTherm csv 00000_CallnertialMagnetic csv 00000_Quaternion csv 00000_RotationMatrix csv 00000_EulerAngles csv 00000_DigitallO csv Figure 16 x IMU GUI binary file conversion report 4 1 9 Tab page Hard iron calibration The hard iron calibration tab page provides all the functionality required for the user to calibrate for hard iron interferences affecting the x IMU It is necessary to re calibrate hard iron parameters whenever the x I MU s magnetic characteristics are changed for example when the x IMU if fitted to a battery or mounting that includes ferromagnetic elements The 3 group boxes Step 1 Clear Hard Iron Bias Registers Step 2 Collect Hard Iron Calibration Dataset and Step 3 Run Hard Iron Calibration Algorithm represent the 3 steps that must be performed in order See the magnetometer hard iron calibration section for more information Step 1 Clear Hard Iron Bias Registers Clear Hard lron Regsiters Step 2 Collect Hard Iron Calibration Dataset File path C Users Seb Madgwick Documents HardlronCalDataset_Callnertial Magnetic csv Browse Step 3 Run Hard Iron Calibration Algorithm File path C Users Seb Madgwick Documents HardlronCalDataset_Callnertial Magnetic csv Browse Figure 17 x IMU GUI
25. may be then be cleared using the algorithm clear tare command See the IMU and AHRS algorithms section for more information 16 1 16 Algorithm clear tare Command code Ox000F Description The algorithm clear tare command is used to clear the tare quaternion registers and return the datum orientation to alignment with the Earth coordinate frame See the IMU and AHRS algorithms section for more information 16 1 17 Algorithm initialise then tare Command code 0x0010 Description The algorithm initialise then tare command will perform an algorithm initialise and then algorithm tare once the initialisation is complete See the IMU and AHRS algorithms section for more information 17 Errors Error are sent by the x IMU to warn the user or host software of any internal errors that have occurred Error data is sent in error packets The x IMU GUI will display these errors in message boxes for user acknowledgment As all data packets generated by the x IMU are logged to the SD card the SD card will contain a record off errors 17 1 Individual errors 17 1 1 No error Error code 0x0000 Description No error This error code is used within internal processes and will never appear to the user 38 17 1 2 Factory reset failed Error code Description 0x0001 A factory reset failed error is sent if the user fails to press the command button within 3 seconds of sending a factory reset command and the execution of the command was aborte
26. sleep timer oie cerrara Ea ee RE RE Ae e 16 1 6 Samplegyroscope axis at 200 dps rai 244 bbe koe es Sa ee ee ee ee 16 1 7 Calculate gyroscope sensitivity oe cot soaa a ba g ee ee 16 1 8 Sample gyroscope bias at temperature l e e 16 1 9 Sample gyroscope bias at temperature 2 0 e eee eee 16 1 10 Calculate gyroscope bias parameters o e ee eee ee eee 16 1 11 Sample accelerometer axisat 18 lt lt o 16 1 12 Calculate accelerometer bias and sensitivity o 16 1 13 Measure magnetometer bias and sensitivity o 16 1 14 Algorithm initialise oc orar sn a ee ee 16 015 Algorithm dare e imei ea a A e ar eA 16 1 16 Algorithm clear tare ocre a eR Ea A a es 16 1 17 Algorithm initialise then tafe e 17 Errors 17 1 Individual errors 26 27 27 27 28 28 29 29 TPAC NOCHOR vos aa a a ada daa as a aw a dd 38 112 Factory reset failed is c oo ge anid 4 e ao a ee a A ee ee i aE 39 A LOW DANE 2 naa oboe Gk eh A BONS BEE ee ee ea Rare We a Be 39 17 1 4 USB receive buffer overrun 0 0 2 secenek ari ee 39 17 1 5 USB transmit buffer overrun s ss 444242600 5b 045 ee a ee RG 39 17 16 Bluetooth receive buffer Oyerr sco 2 22 0409484 0h bo eee a eae oe eee 39 17 1 7 Bluetooth transmit butter overrun lt s osa s 2 64 0486554 be ee ee ees 39 17 1 8 SD card write butter overrun soe e
27. to calculate the gyroscope z axis sensitivity See the gyroscope sensitivity calibration section for more information 18 3 16 Gyroscope sampled x axis at 200 dps Address Value Description Ox000F Q16 0 signed fixed point value between 32 768 and 32 767 Sampled gyroscope x axis output in lsb when rotating at 200 s obtained through the execution of the sample gyroscope axis at 200 dps command This value is used by the gyroscope sensitivity calibration algorithm to calculate the gyroscope x axis sensitivity See the gyroscope sensitivity calibration section for more information 18 3 17 Gyroscope sampled y axis at 200 dps Address Value Description 0x0010 Q16 0 signed fixed point value between 32 768 and 32 767 Sampled gyroscope y axis output in lsb when rotating at 200 s obtained through the execution of the sample gyroscope axis at 200 dps command This value is used by the gyroscope sensitivity calibration algorithm to calculate the gyroscope y axis sensitivity See the gyroscope sensitivity calibration section for more information 18 3 18 Gyroscope sampled z axis at 200 dps Address Value Description 0x0011 Q16 0 signed fixed point value between 32 768 and 32 767 Sampled gyroscope z axis output in lsb when rotating at 200 s obtained through the execution of the sample gyroscope axis at 200 dps command This value is used by the gyroscope sensitivity calibration algorithm
28. to cope with the amount of data being transmitted Consider using lower data output rates if this error occurs repeatedly This error may be ignored in ap plications where UART data is not essential and the SD card is the intended data output In such applications the user need only be concerned with SD card write buffer overrun errors See the UART bandwidth section for more information 18 Registers All x IMU settings are stored within a bank of registers in non volatile flash memory and loaded each time the x IMU starts up Each register has a 16 bit address and 16 bit value These values may be viewed modified read written and backed up to file using the x IMU GUI via the Registers tab page 18 1 Reading registers Any register may be read by sending a read register packet containing register address to be read The x IMU will respond with a register write packet containing the register address and value If the read register packet contains an invalid register address then the x IMU will respond with an invalid register address error The x IMU will automatically send all register values on start up so that settings are stored as the first packets written to the SD card 18 2 Writing registers A register may be written by sending a register write packet containing the register address to be written to and the new register value The x IMU will respond with a register write packet containing the register address and confirmed value If
29. using the clear tare command See the IMU and AHRS algorithms section for more information 18 3 66 Tare quaternion element 3 Address 0x0041 Value Q1 15 signed fixed point value between 1 and 0 9999695 Description Quaternion stored to compute the algorithm output after a tare operation has been pre formed The tare quaternion can be set using the algorithm tare command and cleared using the clear tare command See the IMU and AHRS algorithms section for more information 18 3 67 Sensor data mode Address 0x0042 Value 0x0000 Raw ADC results 0x0001 Calibrated measurements Description Data output mode of on board sensors See the sensors section for more details 53 18 3 68 Date time data output rate Address Value Description 0x0043 0x0000 Disabled sent on reset wake only 0x0001 1 Hz 0x0002 2 Hz 0x0003 4 Hz 0x0004 8 Hz 0x0005 16 Hz 0x0006 32 Hz 0x0007 64 Hz 0x0008 128 Hz 0x0009 256 Hz Ox000A 512 Hz Output rate of the date time data packets Data rates can be reduced or disabled to reduce power consumption 18 3 69 Battery and thermometer data output rate Address Value Description 0x0044 0x0000 Disabled 0x0001 1 Hz 0x0002 2 Hz 0x0003 4 Hz 0x0004 8 Hz 0x0005 16 Hz 0x0006 32 Hz 0x0007 64 Hz 0x0008 128 Hz 0x0009 256 Hz 0x000A 512 Hz Output rate of the battery and thermometer data packets Data rates can be reduced o
30. will be limited to that of the single Bluetooth host 7 SD card The x IMU streams all communication data simultaneously and identically via USB Bluetooth and to a file on the SD card The SD card may therefore be used in conjunction with the USB and or Bluetooth or as the sole communication channel allowing the x IMU to function as a standalone data logger Data is logged to the SD card on separate files binary files that are automatically created each time the x IMU is switched on reset or wakes up Logging is only then stopped once the x IMU is reset or enters sleep mode The binary files bin created may be read form the SD card on to any PC and then converted to individual Comma Separated Variable csv files using via the x IMU GUI SD Card tab page Alternatively the x IMU Binary File Converter may be used for command line based or automated conversion of multiple files Converted CSV and text files can be directly imported into programmes such as MATLAB and Microsoft Excel The x IMU MATLAB Library includes all the tools required to import structure and plot x IMU data 24 The x IMU supports standard SD cards and SDHC cards Cards may be formatted as FAT16 usually cards equal or less than 2 GB and FAT32 for card greater than 2 GB For reliable performance it is recommended that the SD card is formatted prior to each use 7 1 Creating and closing files The x IMU automatically creates a new file on the SD card each time the x IM
31. 096 and 4095 875 Sampled gyroscope z axis output in lsb obtained through the execution of the Sample gyroscope bias at temperature 1 command This value is used by the gyroscope bias cali bration algorithm in the calculation the gyroscope bias parameters See the gyroscope bias calibration section for more information 18 3 29 Gyroscope sample 2 Temperature Address Value Description 0x001C Q8 8 signed fixed point value between 128 and 127 9961 Sampled temperature of gyroscope in C obtained through the execution of the Sample gyroscope bias at temperature 2 command This value is used by the gyroscope bias cali bration algorithm in the calculation the gyroscope bias parameters See the gyroscope bias calibration section for more information 18 3 30 Gyroscope sample 2 x axis bias Address Value Description 0x001D Q13 3 signed fixed point value between 4096 and 4095 875 Sampled gyroscope x axis output in lsb obtained through the execution of the Sample gyroscope bias at temperature 2 command This value is used by the gyroscope bias cali bration algorithm in the calculation the gyroscope bias parameters See the gyroscope bias calibration section for more information 18 3 31 Gyroscope sample 2 y axis bias Address Value Description 0x001E Q13 3 signed fixed point value between 4096 and 4095 875 Sampled gyroscope y axis output in lsb obtained through the execution of the Sample gyros
32. 28 Q12 4 signed fixed point value between 2048 and 2047 938 Sampled accelerometer y axis output in lsb when orientated to measure 1g obtained through the execution of the sample accelerometer axis at 1 g command This value is used by the accelerometer calibration algorithm to calculate the value of the accelerometer y axis sensitivity and accelerometer y axis bias See the accelerometer calibration section for more information 18 3 42 Accelerometer sampled z axis at 1 g Address Value Description 0x0029 Q12 4 signed fixed point value between 2048 and 2047 938 Sampled accelerometer z axis output in lsb when orientated to measure 1g obtained through the execution of the sample accelerometer axis at 1 g command This value is used by the accelerometer calibration algorithm to calculate the value of the accelerometer z axis sensitivity and accelerometer z axis bias See the accelerometer calibration section for more information 18 3 43 Accelerometer sampled x axis at 1 g Address Value Description 0x002A Q12 4 signed fixed point value between 2048 and 2047 938 Sampled accelerometer x axis output in lsb when orientated to measure 1g obtained through the execution of the sample accelerometer axis at 1 g command This value is used by the accelerometer calibration algorithm to calculate the value of the accelerometer z axis sensitivity and accelerometer x axis bias See the accelerometer calibration section
33. 68 Date time data output Tate me 54 18 3 69 Battery and thermometer data output rate o o e 54 18 3 70 Inertial and magnetic data output Tate o ee ee 54 18 3 7 Quatermon data output fate lt s s i st ee act eee eb ee eee eee eS 55 1 3 29D card mew file mame o 3 64 o A AA a aw Ge der e ac ado de 55 18 3 73 Battery shutdown voltage lt ia a e s sg ada ea fa a waiba a a ee 55 18 3 74 Sleep timer 2 254 Gan ee eee da ee dee ee A a e e 55 18 3 70 Motion trigger wake Up 042 244 4 eA a aa a a ee eee ee ee 55 18 3 76 Bluetooth power x r eant 228 6 244 54 ada oe EL ae he ee PEL 55 18 3 77 Auxiliary port mode ss nesese ba dee wee Pee eo wee LARGE a 56 18 3 78 Digital T O direction eo ecr a8 agre Se og We ear eA ase eee a ae at ged amp a 56 18 3 79 Digital I O data output rate veis aaa Oe ewe oe a ee ed 56 18 3 80 Analogue input data mode ee ee ee 56 18 3 81 Analogue input data output rate 2 ee 57 18 3 82 Analogue input sensitivity s s lt ses esad dad aeo ee 57 18 3 83 Analogue input bias arsaudre ee 57 18 3 84 PWM frequency ca sora ia s a a e i a a a a a i a 57 18 3 85ADXL345 Dusidata Mode os ad s eoa ana rs a ad has 57 18 3 86 ADXL345 bus data output Tate ee 58 18 3 87 ADXL345 A x axis sensitivity o s s ecd pa Abe S Ea ee 58 18 3 88 ADXL345 A y axis sensitivity 2 e 58 18 3 89 ADXL345 A z axis sensitivity s es coas ee 58 18 390 ADXIL345 A as Pia
34. A 2 dee 43 183 3 Device ID 4 oe a p i aande eie e E es ed 43 13 3 4 Button Mode 4 424644 04234 6S eed e be ee ee gS 43 18 3 5 Battery voltmeter sensitivity lt o ses esac dadha puota ee 43 18 3 6 Battery voltmeter bias s a acam a aaea Eoi a a a a ew r 43 18 3 7 Thermometer sensitivity c s s sor d m a a a o a ee 43 18 3 8 Thermometer blas cara A a a aaa A E e Ee G 43 13 3 9 Gyroscope fullescale 3 0265 240444 A Ae RRA e a do h ag 44 18 3 10 Gyroscope x axis sensitivity i lt es ramena soe sa ee 44 18 3 11 Gyroscope y axis Sensitivity o s see p ge a g 44 18 3 12 Gyroscope Z axis SCUSILIVIbY se a e eea a a e PR a a a a 44 18 3 13 Gyroscope sampled x axis at 200 dps e 44 18 3 14 Gyroscope sampled y axis at 200 dps o oaoa ea e 44 18 3 15 Gyroscope sampled z axis at 200 dps e ee e ae e e e ee ee es 45 18 3 16 Gyroscope sampled x axis at 200 dps 2 2 ee ee 45 18 3 17 Gyroscope sampled y axis at 200 dps o e ee eee eee 45 18 3 18 Gyroscope sampled z axis at 200 dps 45 18 3 19 Gyroscope x axis bias at 25 degrees Celsius o e e 45 18 3 20 Gyroscope y axis bias at 25 degrees Celsius o e e 45 18 3 21 Gyroscope z axis bias at 25 degrees Celsius o 46 18 3 22 Gyroscope x axis bias temperature sensitivity o o e e 46 18 3 23 Gyroscope y axis bias temperature sensitivity
35. A single date time data packet is always sent on device reset regardless of user settings so that the date and time are always available as the first packet written to the SD card The real time clock and calendar is set by sending a write date time data packet to the x IMU once the new date and time have been set the x IMU will respond with a write date time data containing the real time clock and calendar data The date and time may read at any time by sending a read date time data packet to the x IMU 9 1 Maintaining clock power The real time clock and calendar requires power to operate If power is lost or the x IMU switch off then the date and time will reset to 01 01 2000 00 00 00 Applications that require date and time to be maintained should ensure that the x IMU is never switched off and instead take advantage of sleep mode 10 Sensors The x IMU s on board sensors include a triple axis gyroscope triple axis accelerometer triple axis magne tometer thermometer and a battery voltmeter The user may access individual sensor data as either raw un calibrated ADC results or as calibrated units by specifying the mode in the sensor data mode register The data from individual sensors is provided in either the raw inertial magnetic data and raw battery and thermometer data packets or the calibrated inertial magnetic data and calibrated battery and thermometer data packets The data output rate of these packets may be set to disabled 1 Hz 2 Hz
36. Address 0x006D Value Q8 8 signed fixed point value between 256 and 127 9961 Description Calibrated bias of the ADXL345 D z axis in lsb The typical value is 0 lsb 60 18 3 111 UART baud rate Address 0x006E Value 0x0000 2400 baud 0x0001 4800 baud 0x0002 7200 baud 0x0003 9600 baud 0x0004 14400 baud 0x0005 19200 baud 0x0006 38400 baud 0x0007 57600 baud 0x0008 115200 baud 0x0009 230400 baud 0x000A 460800 baud 0x000B 921600 baud Description Baud rate of the auxiliary port UART See the UART section for more information 18 3 112 UART hardware flow control Address 0x006F Value 0x0000 Disabled 0x0001 Enabled Description Hardware flow control enable disable of the auxiliary port UART See the UART section for more information 61
37. Description 0x0037 0x0000 Disabled 0x0000 IMU 0x0001 AHRS IMU and AHRS algorithm mode See the IMU and AHRS algorithms section for more information The algorithm will automatically re initialise when the value of this register is changed If the algorithm is not required then the algorithm mode can be set to Disabled to reduce power consumption 18 3 57 Algorithm gain Kp Address Value Description 0x0038 Q5 11 signed fixed point value between 0 and 15 99951 Algorithm proportional feedback gain The proportional gain governs the rate at which the algorithm output converges to an orientation assumed by the accelerometer and magnetome ter lower values trust the gyroscope data more and the accelerometer and magnetometer less and higher values will trust the gyroscope less and the accelerometer and magnetome ter more See the IMU and AHRS algorithms section for more information 18 3 58 Algorithm gain Ki Address Value Description 0x0039 Q1 15 signed fixed point value between 0 and 0 9999695 Algorithm integral feedback gain in units of 1 1000 The integral gain governs the rate at which the algorithm compensates for gyroscope bias drift In most situations it is recom mended that users ensure accurate gyroscope bias temperature sensitivity calibration and use an integral feedback gain of O to avoid algorithm output oscillations and instabilities See the IMU and AHRS algorithms section for more info
38. SB while the USB is detected as connected if the USB is connect but the associated serial port not open then the USB transmit buffer will continue to overrun until the port is opened or the USB disconnected See the USB bandwidth section for more information 17 1 6 Bluetooth receive buffer overrun Error code Description 0x0005 A Bluetooth receive buffer over error will be sent if the Bluetooth receive buffer overruns and data to be received was lost This occurs when data is transmitted to the x IMU at a rate greater than the rate it can be processed Consider reducing the rate at which data is sent to the x IMU if this error occurs repeatedly 17 1 7 Bluetooth transmit buffer overrun Error code Description 0x0006 A Bluetooth transmit buffer overrun error will be sent if the Bluetooth transmit buffer overruns and data due to be transmitted was lost This will occur when the communication channel bandwidth is unable to cope with the amount of data being transmitted Consider using lower data output rates if this error occurs repeatedly Transmit buffer overrun errors may be expected in the Bluetooth communication channel quality deteriorates for example if out of range This error may be ignored in applications where USB data is not essential and the SD card is the intended data output In such applications the user need only be concerned with SD card write buffer overrun errors 39 17 1 8 SD card write buffer overrun Erro
39. See the gyroscope bias calibration sec tion for more information 16 1 11 Sample accelerometer axis at 1 g Command code Description Ox000A The sample accelerometer axis at 1 g command is used to calibrate the accelerometer bias and sensitivity parameters This command should be sent while the x IMU stationary and orientated with either its z y or z axis at either 1 g or 1 g The x IMU will automatically detect the axis and direction of gravity The mean accelerometer output will then be measured over approximately 8 seconds before being stored to the sampled accelerometer axis registers A calculate accelerometer bias and sensitivity command will then be executed The execution of the sample accelerometer axis at 1 g command will be aborted if a accelerometer axis is detected as not being at approximately 1 g anda accelerometer axis not at 1 g error will be generated See the accelerometer calibration section for more information 16 1 12 Calculate accelerometer bias and sensitivity Command code Description 0x000B The calculate accelerometer bias and sensitivity command is used to execute the on board accelerometer bias and sensitivity calibration algorithm The algorithm uses the sampled accelerometer axes register values previously obtained by the sample accelerometer axis at 1 g command to calculate the accelerometer bias and sensitivity and update the accelerometer calibration parameters registers See the accelerometer
40. U is switched on reset or wakes up If an SD card is not accessible at this point the x IMU will not create a file and the SD card will not be used The new file name is created as the 5 digit number stored in the SD card new file name register For example 00000 bin The number stored in this register is automatically incremented each time a new file is created This ensures that each file created by the x IMU is given a unique file name until the maximum file name of 65535 bin is reached the file name will then automatically reset to 00000 bin and start again The user may also edit this value to any number by writing to the register If the x IMU attempts to create a file name that already exists on the SD card the x IMU automatically increment the file name and try again If all file names have been used the x IMU will not create a file and the SD card will not be used Files must be closed before the SD card is removed or the x IMU switched off otherwise the file will be corrupted and all data written to the file will be lost The file is automatically closed when the x IMU is reset or enters sleep mode Users wishing to frequently remove the SD card may wish to have the command button configured in sleep wake mode 7 2 SD card LED The amber SD card LED indicates SD card activity The LED remains lit each time a burst of data is written to the SD card If the user low defines data output rates then the LED will blink infrequently high data ou
41. acket back to the host as confirmation As all communication from the x IMU to the host computer is logged to the SD card all command confirmations will be logged on the SD card If a command packet is sent containing an invalid command code the x IMU will respond with an invalid command error Sending a command packet to the x IMU will cause the x IMU to momentarily pause sensor sampling and processing while the received data is processed This may cause discrepancies in the otherwise fixed data output rates 16 1 Individual commands 16 1 1 Null command Command code 0x0000 Description A null command is a valid command code but will result in no action As all commands sent to the x IMU are echoed back to the sender a null command may be used by the host software to confirm communication with the x IMU 16 1 2 Factory reset Command code 0x0001 Description A factory reset command code is used to reset the x IMU to its original state prior to factory calibration so that all registers return to their default values The user must press the command button within 3 seconds of sending a factory reset command in order to confirm the request else the x IMU will respond with a factory reset failed error The x IMU requires several seconds to reconfigure on board components during the execution of a factory reset 16 1 3 Reset Command code 0x0002 Description A reset command causes a software reset of the x IMU The x IMU will close any op
42. ader error will be sent if the received packet contains a valid number of bytes and checksum but the header is not recognised This error is only relevant to users developing their own communication software and not using the x IMU API or x IMU GUL 17 1 13 Invalid number of bytes for packet header Error code Ox000C Description An invalid number of bytes for packet header error will be sent if the received packet contains a valid number of bytes checksum and packet header but the number of bytes does not match that expected for the specific packet header This error is only relevant to users developing their own communication software and not using the x IMU API or x IMU GUI 17 1 14 Invalid register address Error code 0Ox000D Description An invalid register address error will be sent if the read or write register packet contains an invalid register address This error is only relevant to users developing their own communi cation software and not using the x IMU API or x IMU GUL 17 1 15 Register read only Error code Ox000E Description A register read only error will be sent if the write register packet represents an attempt to write a read only register 40 17 1 16 Invalid register value Error code Description Ox000F An invalid register value error will be sent if the write register packet contains an invalid register value for the specific address This error is only relevant to users developing their own communicat
43. as Address Value Description 0x0034 Q5 11 signed fixed point value between 16 and 15 99951 Calibrated hard iron bias affecting the magnetometer x axis in G See parameter h in the magnetometer section The hard iron bias parameters will change when the x IMU s local magnetic environment is altered for example when the x IMU is fixed to the battery See the magnetometer hard iron calibrations section for more information 18 3 54 Magnetometer y axis hard iron bias Address Value Description 0x0035 Q5 11 signed fixed point value between 16 and 15 99951 Calibrated hard iron bias affecting the magnetometer y axis in G See parameter h in the magnetometer section The hard iron bias parameters will change when the x IMU s local magnetic environment is altered for example when the x IMU is fixed to the battery See the magnetometer hard iron calibrations section for more information 51 18 3 55 Magnetometer z axis hard iron bias Address Value Description 0x0036 Q5 11 signed fixed point value between 16 and 15 99951 Calibrated hard iron bias affecting the magnetometer z axis in G See parameter hz in the magnetometer section The hard iron bias parameters will change when the x IMU s local magnetic environment is altered for example when the x IMU is fixed to the battery See the magnetometer hard iron calibrations section for more information 18 3 56 Algorithm mode Address Value
44. as and sensitivity calibration section for more information 18 3 50 Magnetometer x axis bias Address Value Description 0x0031 Q8 8 signed fixed point value between 128 and 127 9961 Calibrated bias of the magnetometer x axis in lsb See parameter bm in the magnetometer section The value of the parameter can be accurately evaluated through calibration using the Measure magnetometer bias and sensitivity command See the magnetometer bias and sensitivity calibration section for more information 18 3 51 Magnetometer y axis bias Address Value Description 0x0032 Q8 8 signed fixed point value between 128 and 127 9961 Calibrated bias of the magnetometer y axis in lsb See parameter bm in the magnetometer section The value of the parameter can be accurately evaluated through calibration using the Measure magnetometer bias and sensitivity command See the magnetometer bias and sensitivity calibration section for more information 18 3 52 Magnetometer z axis bias Address Value Description 0x0033 Q8 8 signed fixed point value between 128 and 127 9961 Calibrated bias of the magnetometer z axis in lsb See parameter bm in the magnetometer section The value of the parameter can be accurately evaluated through calibration using the Measure magnetometer bias and sensitivity command See the magnetometer bias and sensitivity calibration section for more information 18 3 53 Magnetometer x axis hard iron bi
45. ated As this error is sent immediately after the buffer has overrun the error will be successfully transmitted This error can be avoided by reducing the data output rates All data sent to the x IMU via USB is buffered in the USB receive buffer before being processed The time required to process the received data is dependent on the data If data is sent to the x IMU via USB at a rate at a rate greater than it can be processed then the receive buffer will overflow and some data will be lost When this happens a USB receive buffer overrun error will be generated 6 Bluetooth The x IMU streams all communication data simultaneously and identically via USB Bluetooth and to a file on the SD card The USB and Bluetooth connections are also be used to send commands read write registers and control the auxiliary port outputs from the host software application As both USB and Bluetooth connections appear as serial ports use of either communication channel is identical The on board Bluetooth radio is a class I device with a maximum range of 100 m The radio uses the Serial Port Profile SPP to enable connection to any Bluetooth host without the need to install specific drivers Once paired with a Bluetooth host the x IMU will appear as a serial port and be assigned an available port name for example COM3 The computer connects to the x IMU via Bluetooth by opening this serial port This is achieved via the Serial Port tab page of the x IMU GUI The Blue
46. bias Address Value Description 0x0025 Q8 8 signed fixed point value between 128 and 127 9961 Calibrated bias of the accelerometer y axis in Isb See parameter ba in the accelerometer section The value of the parameter can be accurately evaluated through calibration using the calculate accelerometer bias and sensitivitycommand See the accelerometer calibration section for more information 48 18 3 39 Accelerometer z axis bias Address Value Description 0x0026 Q8 8 signed fixed point value between 128 and 127 9961 Calibrated bias of the accelerometer z axis in lsb See parameter ba in the accelerometer section The value of the parameter can be accurately evaluated through calibration using the calculate accelerometer bias and sensitivitycommand See the accelerometer calibration section for more information 18 3 40 Accelerometer sampled x axis at 1 g Address Value Description 0x0027 Q12 4 signed fixed point value between 2048 and 2047 938 Sampled accelerometer x axis output in lsb when orientated to measure 1g obtained through the execution of the sample accelerometer axis at 1 g command This value is used by the accelerometer calibration algorithm to calculate the value of the accelerometer x axis sensitivity and accelerometer x axis bias See the accelerometer calibration section for more information 18 3 41 Accelerometer sampled y axis at 1 g Address Value Description 0x00
47. calibration section for more information 37 16 1 13 Measure magnetometer bias and sensitivity Command code 0x000C Description The measure magnetometer bias and sensitivity command is used to run an on board magnetometer calibration algorithm The x IMU uses the magnetometer s internal field generator to measure the mean magnetometer bias and sensitivity over approximately 16 seconds independent of external magnetic interference The magnetometer sensitivity and bias registers and then automatically updated This command should be used each time the magnetometer full scale range is changed The execution of this command will be aborted if a magnetometer axis saturates and a magnetometer saturation error will be generated See the magnetometer calibration section for more information 16 1 14 Algorithm initialise Command code 0x000D Description The algorithm initialise command will re start the algorithm from initial conditions This command can be used to force the algorithm to converge to steady state conditions if previous distortions to magnetic or other extreme sensor measurements have left the IMU or AHRS algorithm output at an erroneous orientation See the IMU and AHRS algorithms section for more information 16 1 15 Algorithm tare Command code 0x000E Description The algorithm tare command is used to set the algorithm datum orientation and store the reference quaternion to the tare quaternion registers These registers
48. ceived from the x IMU The data output rate of these packets may be set to on change only 1 Hz 2 Hz 4 Hz 8 Hz 16 Hz 32 Hz 64 Hz 128 Hz 256 Hz or 512 Hz in the digital I O data output rate register Digital outputs are set by sending a digital I O data packet to the x IMU 32 Pin I O Description AX0 Input Output Digital I O AX1 Input Output Digital I O AX2 Input Output Digital I O AX3 Input Output Digital I O AX4 Input Output Digital I O AX5 Input Output Digital I O AX6 Input Output Digital I O AX7 Input Output Digital I O Table 4 Auxiliary port pin assignments in digital I O mode 14 3 Analogue input In analogue input mode all 8 pins of the auxiliary port function as analogue inputs Each analogue input channel sas a 12 bit resolution and a range of 0 V to 3 3 V The user may access analogue input data as either raw un calibrated ADC results or as calibrated units by specifying the mode in the analogue input data mode register Analogue input data is provided in either the raw analogue input data or calibrated analogue input data packets The data output rate of these packets may be set to disabled 1 Hz 2 Hz 4 Hz 8 Hz 16 Hz 32 Hz 64 Hz 128 Hz 256 Hz or 512 Hz in the analogue input data output rate register Raw ADC data In raw data mode the analogue input data is the ADC integer value between 0 and 4096 corresponding to a voltage between 0 V and 3 3 V This data is provided in the raw analogue input data packets
49. command messages in message box check box Received Command Messages Y Display received command messages in message box Figure 7 x IMU GUI date time tab page 4 1 5 Tab page View sensor data The view sensor data tab page contains buttons to show or hide separate real time data graphic windows for incoming x IMU sensor data 14 a9 x IMU GUI v1 0 e e Serial Port Registers Date Time Commands View Sensor Data Au llay Port Data Logger SD Card Hardon Calibration Bootloader About Battery And Thermometer Data Show Battery Graph Show Thermometer Graph Inertial Magnetic Sensor Data Show Gyroscope Graph Show Accelerometer Graph Show Magnetometer Graph Legend X Y Z Orientation Data Show 3D Cuboid Show Euler Angle Graph Legend 8 y Figure 8 x IMU GUI view sensor data tab page The data from individual sensors is displayed in real time data graphs as seen in Figure 8 The controls bar at the bottom of each graph allow the view and scaling to be adjusted B Gyroscope Data o faa E Laa O 0 xy e gt Beams doggies E _ Hide panel _ Disconnect Figure 9 x IMU GUI gyroscope data window Orientation data received may be displayed in a graph as ZYX Euler angles and displayed as the orientation of a 3D cuboid as seen in figure 10 The c
50. command will be aborted if the gyroscope is detected as not being stationary and a gyroscope not stationary error will be generated See the gyroscope bias calibration section for more information 36 16 1 9 Sample gyroscope bias at temperature 2 Command code Description 0x0008 The sample gyroscope bias at temperature 2 command is used to calibrate the gyroscope bias parameters This command should be sent while the x IMU is stationary and at the lowest temperature the device is required to operate at The x IMU will measure the mean temperature and gyroscope output over approximately 16 seconds store the results to the sampled temperature 2 registers and then trigger a calculate gyroscope bias parameters command The execution of the sample gyroscope bias at temperature 2 command will be aborted if the gyroscope is detected as not being stationary and a gyroscope not stationary error will be generated See the gyroscope bias calibration section for more information 16 1 10 Calculate gyroscope bias parameters Command code Description 0x0009 The calculate gyroscope bias parameters command is used to execute the on board gyro scope bias calibration algorithm The algorithm uses the sampled gyroscope bias register values previously sampled by the sample gyroscope bias at temperature 1 and sample gy roscope bias at temperature 2 commands to calculate the gyroscope bias parameters and update the gyroscope bias parameters registers
51. cope bias at temperature 2 command This value is used by the gyroscope bias cali bration algorithm in the calculation the gyroscope bias parameters See the gyroscope bias calibration section for more information 18 3 32 Gyroscope sample 2 z axis bias Address Value Description 0x001F Q13 3 signed fixed point value between 4096 and 4095 875 Sampled gyroscope y axis output in lsb obtained through the execution of the Sample gyroscope bias at temperature 2 command This value is used by the gyroscope bias cali bration algorithm in the calculation the gyroscope bias parameters See the gyroscope bias calibration section for more information 47 18 3 33 Accelerometer full scale Address Value Description 0x0020 0x0000 2 g 0x0001 4 g 0x0002 8 g Full scale range of the accelerometer Each full scale range will have different associated sensitivity and bias values The accelerometer must therefore be recalibrated when the full scale range is changed See the accelerometer calibration section for more information 18 3 34 Accelerometer x axis sensitivity Address Value Description 0x0021 Q12 4 signed fixed point value between 2048 and 2047 938 Calibrated sensitivity of the accelerometer x axis in lsb g See parameter Sa in the ac celerometer section The value of the parameter can be accurately evaluated through cali bration using the calculate accelerometer bias and sensitivitycomman
52. correctly calibrated for calibrated gyroscope measurements to compensate for gyroscope bias temperature sensitivity The thermometer has 16 bit resolution and has a range of 30 C to 85 C See the IMU 3000 datasheet for further information on the thermometer s characteristics Raw ADC data In raw data mode the thermometer data is the ADC integer value between 32 768 and 32 767 linearly proportional to temperature This data is provided in the raw battery and thermometer data packets Calibrated data In calibrated data mode the thermometer data is the calibrated temperature in C This data is provided in the calibrate battery and thermometer data packets The calibrated measurement 7 is calculated from the raw ADC measurement 7 according to a defined sensitivity s and bias b as described by equation 2 Parameters b and s are defined in the thermometer sensitivity and bias registers Loz T f b 2 Sr 10 3 Gyroscope The triple axis gyroscope provides a measurement of the angular velocities around the x y and z axes of the x IMU The gyroscope must be correctly calibrated in order for the IMU and AHRS algorithms to be able to function correctly the algorithms use measurements of angular velocities to filter out errors in the estimated orientation caused by linear accelerations and temporal magnetic distortions The gyroscope has 16 bit resolution and a range of 250 s 500 s 1000 s or 2000 s selected i
53. d 17 1 3 Low battery Error code Description 0x0002 A low battery error is sent when the low battery voltage detection detects that the battery voltage has fallen below the specific level defined in the battery shutdown voltage register This message is sent immediately before the x IMU enters sleep mode See the low battery voltage detection section for more information 17 1 4 USB receive buffer overrun Error code Description 0x0003 A USB receive buffer over error will be sent if the USB receive buffer overruns and data to be received was lost This occurs when data is transmitted to the x IMU at a rate greater than the rate it can be processed Consider reducing the rate at which data is sent to the x IMU if this error occurs repeatedly See the USB bandwidth section for more information 17 1 5 USB transmit buffer overrun Error code Description 0x0004 A USB transmit buffer overrun error will be sent if the USB transmit buffer overruns and data due to be transmitted was lost This will occur when the communication channel bandwidth is unable to cope with the amount of data being transmitted Consider using lower data output rates if this error occurs repeatedly This error may be ignored in appli cations where USB data is not essential and the SD card is the intended data output In such applications the user need only be concerned with SD card write buffer overrun errors The x IMU will attempt to transmit data via U
54. d See the accelerom eter calibration section for more information 18 3 35 Accelerometer y axis sensitivity Address Value Description 0x0022 Q12 4 signed fixed point value between 2048 and 2047 938 Calibrated sensitivity of the accelerometer y axis in Isb g See parameter sq in the ac celerometer section The value of the parameter can be accurately evaluated through cali bration using the calculate accelerometer bias and sensitivitycommand See the accelerom eter calibration section for more information 18 3 36 Accelerometer z axis sensitivity Address Value Description 0x0023 Q12 4 signed fixed point value between 2048 and 2047 938 Calibrated sensitivity of the accelerometer z axis in lsb g See parameter sa in the ac celerometer section The value of the parameter can be accurately evaluated through cali bration using the calculate accelerometer bias and sensitivitycommand See the accelerom eter calibration section for more information 18 3 37 Accelerometer x axis bias Address Value Description 0x0024 Q8 8 signed fixed point value between 128 and 127 9961 Calibrated bias of the accelerometer x axis in lsb See parameter bg in the accelerometer section The value of the parameter can be accurately evaluated through calibration using the calculate accelerometer bias and sensitivitycommand See the accelerometer calibration section for more information 18 3 38 Accelerometer y axis
55. d point value between 256 and 127 9961 Description Calibrated bias of the ADXL345 C y axis in lsb The typical value is 0 lsb 18 3 104 ADXL345 C z axis bias Address 0x0067 Value Q8 8 signed fixed point value between 256 and 127 9961 Description Calibrated bias of the ADXL345 C z axis in lsb The typical value is 0 Isb 18 3 105 ADXL345 D x axis sensitivity Address 0x0068 Value Q10 6 signed fixed point value between 512 and 511 9844 Description Calibrated sensitivity of the ADXL345 D x axis in lsb g The typical value is 256 lsb g 18 3 106 ADXL345 D y axis sensitivity Address 0x0069 Value Q10 6 signed fixed point value between 512 and 511 9844 Description Calibrated sensitivity of the ADXL345 D y axis in lsb g The typical value is 256 Isb g 18 3 107 ADXL345 D z axis sensitivity Address 0x006A Value Q10 6 signed fixed point value between 512 and 511 9844 Description Calibrated sensitivity of the ADXL345 D z axis in lsb g The typical value is 256 Isb g 18 3 108 ADXL345 D x axis bias Address 0x006B Value Q8 8 signed fixed point value between 256 and 127 9961 Description Calibrated bias of the ADXL345 D x axis in Isb The typical value is 0 Isb 18 3 109 ADXL345 D y axis bias Address 0x006C Value Q8 8 signed fixed point value between 256 and 127 9961 Description Calibrated bias of the ADXL345 D y axis in lsb The typical value is 0 lsb 18 3 110 ADXL345 D z axis bias
56. e correctly calibrated in order for the IMU and AHRS algorithms to be able to function correctly the algorithms use the accelerometer to measure the direction of gravity and provide an absolute reference for the pitch and roll components of the estimated orientation The accelerometer has 12 bit resolution and selectable ranges from 2 g to 8 g The measurement range of the accelerometer is defined in accelerometer full scale register See the LSM303DLH datasheet for further information on the accelerometer s characteristics Raw ADC data In raw data mode the accelerometer data is the ADC integer values between 4096 and 4095 linearly proportional to accelerations This data is provided in the raw inertial magnetic data packets Calibrated data In calibrated data mode the accelerometer data are calibrated accelerations in g This data is provided in the calibrated inertial magnetic data packets The calibrated measurements az ay and a is calculated from the raw ADC measurements y a and a according to the defined sensitivities sa Sa and sa and biases ba ba and ba as described by equation 4 Parameters Sa Say Sas Da y ba and ba are defined in the separate accelerometer calibration parameters registers The sensitivities and biases will be different for each full scale measurement range 1 y Ax Sa 0 0 Gx ba al 0 sa 0 y ba 4 Az 0 0 Sa Az ba 10 5 Magnetometer The triple axis magnetom
57. e range of the gyroscope Each full scale range will have different associated sensi tivity and bias values The gyroscope should therefore be recalibrated when the full scale range is changed See the gyroscope calibration section for more information 18 3 10 Gyroscope x axis sensitivity Address Value Description 0x0009 Q9 7 signed fixed point value between 256 and 255 9922 Calibrated sensitivity of the gyroscope x axis in lsb s See parameter sy in the gyro scope section The value of the parameter can be accurately evaluated through calibration using the calculate gyroscope sensitivity command See the gyroscope sensitivity calibration section for more information 18 3 11 Gyroscope y axis sensitivity Address Value Description Ox000A Q9 7 signed fixed point value between 256 and 255 9922 Calibrated sensitivity of the gyroscope y axis in Isb s See parameter sy in the gyro scope section The value of the parameter can be accurately evaluated through calibration using the calculate gyroscope sensitivity command See the gyroscope sensitivity calibration section for more information 18 3 12 Gyroscope z axis sensitivity Address Value Description 0x000B Q9 7 signed fixed point value between 256 and 255 9922 Calibrated sensitivity of the gyroscope z axis in lsb s See parameter sy in the gyro scope section The value of the parameter can be accurately evaluated through calibration us
58. e with a low battery error By entering sleep mode prior to power failure the x IMU also ensures that the date and time of the real time clock and calendar are not lost The low battery voltage detection is disabled while USB is connected 13 5 Sleep timer The sleep timer will trigger sleep mode after the period of time defined in the sleep timer register has elapsed The sleep timer countdown starts when the x IMU starts up and may be reset by the sources listed below These sources enable the detection of motion the user or the host software to prevent the x IMU from entering sleep mode The sleep timer is disabled by specifying a sleep timer register value of 0 seconds The sleep timer is disabled while USB is connected Sleep timer reset sources e reset sleep timer command e Motion trigger wake up 13 6 Motion triggered wake up The motion trigger wake up is enabled via the motion trigger wake up register and may be either disabled or set to a low or high sensitivity Motion is detected using accelerometer If motion is detected while the x IMU is in sleep mode then the x IMU will wake up While the x IMU is not in sleep mode the motion trigger wake up is used to reset the sleep timer and thus postpone sleep while motion persists For example if the sleep timer is set to 20 seconds and there is motion is detected at least once every 20 seconds the motion trigger wake up will prevent the sleep timer from expiring and the x IMU will not enter
59. en files on the SD card before reset in this way the reset command may be of use to users wishing to break up a logging session into multiple files The reset command is used to put the x IMU into bootloader mode in order to upload new firmware A reset command is sent by the x IMU to the host computer as confirmation of reset power on and wake up 35 16 1 4 Sleep Command code Description 0x0003 A sleep command will put the device into sleep mode The x IMU will close any open files on the SD card before entering sleep mode The x IMU may be taken out of sleep mode by using the command button configured in sleep wake mode or using the motion triggered wake up functionality 16 1 5 Reset sleep timer Command code Description 0x0004 The reset sleep timer command will reset the sleep timer countdown and so postpone sleep An example usage of this command is to create behaviour where the x IMU will automatically enter sleep mode when communication with the host software ends or connection is lost 16 1 6 Sample gyroscope axis at 200 dps Command code Description 0x0005 The sample gyroscope axis at 200 dps command is used to calibrate the gyroscope sen sitivity parameters This command should be sent while the x IMU rotating at either 200 s or 200 s around either its z y or z axis The x IMU will automatically detect the axis and direction of rotation The mean gyroscope output will then be measured over appro
60. ers The sensitivities and biases will be different for each full scale measurement range Ma Sm 0 0 Mea bm hz my 0 sm 0 My bm hy 5 Mz 0 0 Sm Mz NN hz 11 Sensor calibration This section is currently unavailable but can be updated on request 12 IMU and AHRS algorithms This section is currently unavailable but can be updated on request 13 Power management The x IMU may be powered via USB an external power supply or a single cell lithium polymer LiPo battery cell which will be charged automatically while the x IMU is connected to a USB port 13 1 External supply The x IMU may be powered by a 3 5 to 6 3 V external supply via the auxiliary port The supply should be connected to the GND and EXT pins of the auxiliary port This power supply is only enabled while the power switch is in the off position In this situation the battery voltmeter will measure the voltage of the external supply 13 2 Battery and charging The x IMU has a standard connector for a 3 7 V single cell Lithium Polymer LiPo battery cell These batteries are widely available in range of capacities for example 1000 mAh and 2000 mAh The battery life is dependent on user settings and usage See the tips on minimising power consumption section The x IMU has an on board battery charger specially designed for LiPo battery cells The battery is charged automatically while the x IMU is connected to a USB port The red charging LED will remain
61. eter and provides a measurement of the magnetic flux along the x y and z axes The magnetometer must be correctly calibrated in order for the AHRS algorithm to be able to function correctly the algorithm uses the magnetometer to measure the Earth s magnetic field and provide an absolute reference for the heading component of the estimated orientation The magnetometer has 12 bit resolution and selectable ranges from 1 3 G to 8 1 G The measurement range of the magnetometer is defined in magnetometer full scale register See the LSM303DLH datasheet for further information on the magnetometer s characteristics Raw ADC data In raw data mode the magnetometer data is the ADC integer values between 4096 and 4095 linearly proportional to magnetic flux This data is provided in the raw inertial magnetic data packets A value of 4096 will be provided when the measurement saturates in either direction 28 Calibrated data In calibrated data mode the magnetometer data are calibrated accelerations in G This data is provided in the calibrated inertial magnetic data packets The calibrated measurements Mg my and m are calculated from the raw ADC measurements mz My and m according to the defined sensitivities Sm Sm aNd Sm biases bm bm and bm and hard iron biases hy hy and h as described by equation 5 Parameters Sm Sm Smes Dm Bm gt bm Ra hy and h are defined in the separate magnetometer calibration parameters regist
62. for more information 49 18 3 44 Accelerometer sampled y axis at 1 g Address Value Description 0x002B Q12 4 signed fixed point value between 2048 and 2047 938 Sampled accelerometer y axis output in lsb when orientated to measure 1g obtained through the execution of the sample accelerometer axis at 1 g command This value is used by the accelerometer calibration algorithm to calculate the value of the accelerometer y axis sensitivity and accelerometer y axis bias See the accelerometer calibration section for more information 18 3 45 Accelerometer sampled z axis at 1 g Address Value Description 0x002C Q12 4 signed fixed point value between 2048 and 2047 938 Sampled accelerometer z axis output in lsb when orientated to measure 1g obtained through the execution of the sample accelerometer axis at 1 g command This value is used by the accelerometer calibration algorithm to calculate the value of the accelerometer z axis sensitivity and accelerometer z axis bias See the accelerometer calibration section for more information 18 3 46 Magnetometer full scale Address Value Description 0x002D 0x0000 1 3G 0x0001 1 9G 0x0002 2 5G 0x0003 4 0 G 0x0004 4 7G 0x0005 5 6G 0x0006 8 1G Full scale range of the magnetometer Each full scale range will have different associated sensitivity and bias values The magnetometer therefore must be recalibrated when the full scale range
63. igital I O mode 18 3 79 Digital I O data output rate Address 0x004E Value 0x0000 Disabled On change only 0x0001 1 Hz 0x0002 2 Hz 0x0003 4 Hz 0x0004 8 Hz 0x0005 16 Hz 0x0006 32 Hz 0x0007 64 Hz 0x0008 128 Hz 0x0009 256 Hz 0x000A 512 Hz Description Output rate of the digital I O data packets Data rates can be reduced or disabled to reduce power consumption 18 3 80 Analogue input data mode Address 0x004F Value 0x0000 Raw ADC results 0x0001 Calibrated measurements Description Data output mode of analogue input See the analogue input section for more information 56 18 3 81 Analogue input data output rate Address 0x0050 Value 0x0000 On change only 0x0001 1 Hz 0x0002 2 Hz 0x0003 4 Hz 0x0004 8 Hz 0x0005 16 Hz 0x0006 32 Hz 0x0007 64 Hz 0x0008 128 Hz 0x0009 256 Hz 0x000A 512 Hz Description Output rate of the analogue input packets Data rates can be reduced or disabled to reduce power consumption See the analogue input section for more information 18 3 82 Analogue input sensitivity Address 0x0051 Value Q12 4 signed fixed point value between 2 048 and 2047 938 Description Calibrated sensitivity of the analogue input ADC in Isb V The typical value is 1241 188 Isb V See the analogue input section for more information 18 3 83 Analogue input bias Address 0x0052 Value Q8 8 signed fixed point value between 256 and 127 9961 Description Calib
64. illary Port Data Logger SD Card Hard tron Calibration Bootloader About Open Close Port Port name COM19 Refresh List Close Port Packet Counts Packets received 649025 Packets sent 66 Figure 4 x IMU GUI serial port tab page 4 1 2 Tab page Registers The registers tab page allows the user to view edit and back up all internal settings on the x IMU see the registers section for more information on x IMU registers All registers are organised into sections within a tree view where the end node of each branch is an individual register name and text box or drop down list containing the register value Register values that have been read directly from the x IMU or loaded from file will appear as blue text Any registers values then edited will appear as red text A right click on any register will show the action menu To read all register on the x IMU the user should right click anywhere in the registers tab page and select Read all registers The software will then read each register and update the values in the tree view Individual registers or groups of registers may be read by first selecting a register or group within the tree view and then selecting Read this register only or Read all registers in this group only Register values in the tree view may be written to the x IMU using the Write all registers Write this register only and Write all registers in this group only options in the action menu 12
65. ing the calculate gyroscope sensitivity command See the gyroscope sensitivity calibration section for more information 18 3 13 Gyroscope sampled x axis at 200 dps Address Value Description 0x000C Q16 0 signed fixed point value between 32 768 and 32 767 Sampled gyroscope x axis output in lsb when rotating at 200 s obtained through the execution of the sample gyroscope axis at 200 dps command This value is used by the gyroscope sensitivity calibration algorithm to calculate the gyroscope x axis sensitivity See the gyroscope sensitivity calibration section for more information 18 3 14 Gyroscope sampled y axis at 200 dps Address Value Description 0x000D Q16 0 signed fixed point value between 32 768 and 32 767 Sampled gyroscope y axis output in lsb when rotating at 200 s obtained through the execution of the sample gyroscope axis at 200 dps command This value is used by the gyroscope sensitivity calibration algorithm to calculate the gyroscope y axis sensitivity See the gyroscope sensitivity calibration section for more information 44 18 3 15 Gyroscope sampled z axis at 200 dps Address Value Description Ox000E Q16 0 signed fixed point value between 32 768 and 32 767 Sampled gyroscope z axis output in lsb when rotating at 200 s obtained through the execution of the sample gyroscope axis at 200 dps command This value is used by the gyroscope sensitivity calibration algorithm
66. intenance Connectivity e USB e Bluetooth Class 1 100m range SPP e Micro SD card Supports FAT16 32 and SDHC e UART see auxiliary port mode Power options e USB e LiPo battery On board charging via USB e External source from 3 6 V to 6 3 V e Low power consumption 50 mA to 150 mA dependent on settings and usage 130 A sleep mode Low profile e Dimensions 33 x 42 x 10 mm 57 x 38 x 21 mm with plastic housing and battery e Weight 12g 100 g with plastic housing and battery Other features e Motion triggered wake up and sleep timer e Real time clock and calendar e Configurable command button e Configurable 8 channel auxiliary port Auxiliary port modes e External power in from 3 6 V to 6 3 V e 3 3 V power out up to 100 mA e Digital I O mode 8 channels controlled via USB or Bluetooth e Analogue input mode 8 channels 12 bit resolution 0 to 3 3 V e PWM output mode 4 channels 1 to 65 535 Hz controlled via USB or Bluetooth e ADXL345 bus mode 4 external triple axis 16g 13 bit resolution accelerometers e UART mode 3 3 V 2400 to 921 6k baud substitutes Bluetooth 1 2 x IMU Software The x IMU GUI Graphical User Interface provides interface to all features and functionality of the x IMU via the x IMU API The x IMU GUI is open source and so is intended to serve as a comprehensive template for those using the x IMU API to develop their own applications Additional open source software examples using the x IMU
67. ion software and not using the x IMU API or x IMU GUL 17 1 17 Invalid command Error code Description 0x0010 An invalid command error will be sent if the command code within the command packet is not valid This error is only relevant to users developing their own communication software and not using the x IMU API or x IMU GUL 17 1 18 Gyroscope axis not at 200 dps Error code Description 0x0011 A gyroscope axis not at 200 dps error will be sent if an axis is detected as not being at approximately 200 s during the execution of a sample gyroscope axis at 200 dps command and the execution of the command was aborted See the gyroscope sensitivity calibration section for more information 17 1 19 Gyroscope not stationary Error code Description 0x0012 A gyroscope not stationary error will be sent if the gyroscope was detected as not being stationary during the execution of a sample gyroscope bias commands and the execution of the command was aborted See the gyroscope bias calibration section for more information 17 1 20 Accelerometer axis not at 1g Error code Description 0x0013 A accelerometer axis not at 1g error will be sent if an axis is detected as not being at approximately 1 g during the execution of a sample accelerometer axis at 1 g command and the execution of the command was aborted See the accelerometer calibration section for more information 17 1 21 Magnetometer saturation Error code
68. measurements through hard iron calibration Each x IMU is calibrated and supplied with a dummy SD card that may be used to ensure constant SD card socket magnetic characteristics lThe x IMU has known compatibility issues with counterfeit SDHC cards It is recommended that you only use genuine products from a reputable brand 25 8 Command button The x IMU features a configurable command button that allows the execution of commands while the x IMU is operating as a standalone device The command button modes are detailed below Only reset and sleep wake wp modes remain active while the x IMU is in sleep mode The command button is also used to confirm the factory reset command Command button modes Disabled Reset command Sleep wake up Algorithm initialise command Algorithm tare command Algorithm initialise then tare command 9 Real time clock and calendar The on board real time clock and calendar provides accurate measurement of the date and time and is pre programmed to account for leap years between the year 2000 and 2099 The real time clock and calendar data can be viewed and synchronised with the computer clock using the x IMU via the Date Time tab page The real time clock and calendar data is provided by the x IMU in the write date time data packets The data output rate of these packets may be set to disabled 1 Hz 2 Hz 4 Hz 8 Hz 16 Hz 32 Hz 64 Hz 128 Hz 256 Hz or 512 Hz in the date time data rate register
69. n the gyroscope full scale register See the IMU 3000 datasheet for further information on the gyroscope s characteristics Raw ADC data In raw data mode the gyroscope data is the ADC integer values between 32 768 and 32 767 linearly proportional to angular velocities This data is provided in the raw inertial magnetic data packets 27 Calibrated data In calibrated data mode the gyroscope data are calibrated angular velocities in s This data is provided in the calibrated inertial magnetic data packets The calibrated measurements gz Jy and g are calculated from the raw ADC measurements gz gy and gz according to the defined sensitivities Sg Sg and sg temperature of the device 7 biases at 25 C by bg and by bias temperature sensitivities fe fy and fz and bias drift compensation parameters az a and a provided by the IMU and AHRS algorithms The calibrated measurements are described by equation 3 Parameters Sy Sg Sg Ogas Dg bo Fx fy and f are defined in the separate gyroscope calibration parameters registers The sensitivities and biases will be different for each full scale measurement range Je 0 077 To Do fe 0 017 r 25 On Gy 9 sg 0 Gy bg 9 fy 0 T 25 dy 3 Gz 0 0 sy Gz bg 0 0 f 7 25 Qz 10 4 Accelerometer The triple axis accelerometer and provides a measurement of the accelerations along the x y and z axes of the x IMU The accelerometer must b
70. nd N A EXT External power input 3 5 V to 6 3 V RST Hard reset active low 0 V to 3 3 V 3V3 3 3 V power output 100 mA AX0 to AX7 I O channels 0 V to 3 3 V 4 mA source sink Table 2 Auxiliary port pins The mode of the auxiliary port is set by the auxiliary port mode register If the x IMU receives a packet associated with a specific axillary port mode while the axillary port is not in that mode the x IMU will respond with an ncorrect auxiliary port mode error For example this will happen if the x IMU receives a digital I O packet to change a digital output channel while the axillary port mode is disabled Auxiliary port modes e Disabled e Digital I O e Analogue input e PWM output e ADXL345 bus e UART 14 1 Disabled When disabled all auxiliary port channels are configured as high impedance inputs The auxiliary port in disabled when the x IMU is in sleep mode Table 3 summarises the auxiliary port pin assignments when disabled Pin I O Description AXO Input Unused AX1 Input Unused AX2 Input Unused AX3 Input Unused AX4 Input Unused AX5 Input Unused AX6 Input Unused AX7 Input Unused Table 3 Auxiliary port pin assignments when disabled 14 2 Digital I O mode In digital I O mode each pin of the auxiliary port functions as either a digital input or output The direction of each pin is defined within the digital I O direction register Digital input data is provided in either the digital I O data packets re
71. o be executed when the command button is pressed See the commands section for more information and details of individual commands 18 3 5 Battery voltmeter sensitivity Address 0x0004 Value Q11 5 signed fixed point value between 1024 and 1023 969 Description Calibrated sensitivity of the battery ADC in lsb V See parameter s in the battery volt meter section The typical calibrated value is 621 Isb V 18 3 6 Battery voltmeter bias Address 0x0005 Value Q8 8 signed fixed point value between 128 and 127 9961 Description Calibrated bias of the battery ADC in lsb See parameter b in the battery voltmeter section The typical calibrated value is 0 lsb 18 3 7 Thermometer sensitivity Address 0x0006 Value Q10 6 signed fixed point value between 512 and 511 9844 Description Calibrated sensitivity of the thermometer in lsb C See parameter s in the thermometer section The typical calibrated value is provided as 280 Isb C in the IMU 3000 datasheet 18 3 8 Thermometer bias Address 0x0007 Value Q16 0 signed fixed point value between 32768 and 32677 Description Calibrated bias of the thermometer in lsb See parameter b in the thermometer section The typical calibrated value is provided as 23 000 lsb in the IMU 3000 datasheet 43 18 3 9 Gyroscope full scale Address Value Description 0x0008 0x0000 250 s 0x0001 500 s 0x0002 1000 s 0x0003 2000 s Full scal
72. oint value between 0 and 15 99951 Description The maximum valid magnetic field magnitude in G that may be used by the algorithm in the estimation of heading Magnetic fields of an invalid magnitude will be ignored by the AHRS algorithm so that heading is determined from gyroscope measurements alone See the IMU and AHRS algorithms section for more information 18 3 63 Tare quaternion element 0 Address 0x003E Value Q1 15 signed fixed point value between 1 and 0 9999695 Description Quaternion stored to compute the algorithm output after a tare operation has been pre formed The tare quaternion can be set using the algorithm tare command and cleared using the clear tare command See the IMU and AHRS algorithms section for more information 18 3 64 Tare quaternion element 1 Address 0x003F Value Q1 15 signed fixed point value between 1 and 0 9999695 Description Quaternion stored to compute the algorithm output after a tare operation has been pre formed The tare quaternion can be set using the algorithm tare command and cleared using the clear tare command See the IMU and AHRS algorithms section for more information 18 3 65 Tare quaternion element 2 Address 0x0040 Value Q1 15 signed fixed point value between 1 and 0 9999695 Description Quaternion stored to compute the algorithm output after a tare operation has been pre formed The tare quaternion can be set using the algorithm tare command and cleared
73. ooth section for more information 3 7 Battery connector The on board battery connector allows the x IMU to be powered by any single cell Lithium Polymer LiPo battery The battery is automatically charged while the x IMU is connected to a USB host See the battery and charging section for more information 3 8 Auxiliary port header The auxiliary port that can be configured to one of many modes The auxiliary port connector is a 2 x 6 2 54 mm pitch female header socket The socket pins include ground external power input 3 3 V output hard reset and 8 I O lines See the auxiliary port section for more information 4 Software overview 4 1 x IMU GUI 4 1 1 Tab page Serial port The serial port tab page is used to manage the USB or Bluetooth connection between the software and the x IMU The USB and Bluetooth connections will each appear as a separate serial port see the USB 11 section and Bluetooth section for more information and how to find the serial port name assigned to each connection To connect to the x IMU the user first select the correct serial port name the x IMU appears as in the Port name drop down list If the name does not appear in the list the user can either press the Refresh List button to update the drop down list or type in the port name directly The Open Port button may then be pressed to connect to the device GUIVLO E if Registers Date Time Commands View Sensor Data A
74. r disabled to reduce power consumption 18 3 70 Inertial and magnetic data output rate Address Value Description 0x0045 0x0000 Disabled 0x0001 1 Hz 0x0002 2 Hz 0x0003 4 Hz 0x0004 8 Hz 0x0005 16 Hz 0x0006 32 Hz 0x0007 64 Hz 0x0008 128 Hz 0x0009 256 Hz Ox000A 512 Hz Output rate of the inertial and magnetic data packets Data rates can be reduced or disabled to reduce power consumption 54 18 3 71 Quaternion data output rate Address 0x0046 Value 0x0000 Disabled 0x0001 1 Hz 0x0002 2 Hz 0x0003 4 Hz 0x0004 8 Hz 0x0005 16 Hz 0x0006 32 Hz 0x0007 64 Hz 0x0008 128 Hz 0x0009 256 Hz 0x000A 512 Hz Description Output rate of the quaternion data packets Data rates can be reduced or disabled to reduce power consumption 18 3 72 SD card new file name Address 0x0047 Value 00000 to 65535 Description The file name used to be used when the next file is created on the SD card See the SD card section for more information 18 3 73 Battery shutdown voltage Address 0x0048 Value Q4 12 signed fixed point value between 3 5 and 7 999756 Description Minimum voltage threshold for the device to shutdown See the low battery voltage detec tion section for more information 18 3 74 Sleep timer Address 0x0049 Value 0 to 65535 Description Sleep timer value in seconds Once this period has elapsed the x IMU will enter sleep mode A value of 0 seconds will
75. r code 0x0007 Description An SD card buffer over error will be sent if the SD card buffer is overrun and data to be written to the SD was lost Consider using lower data output rates if this error occurs repeatedly An occurrence of this error may go unnoticed while the USB and Bluetooth are not used The red SD card LED indicates SD card activity if this LED behaviour approaches that of being solidly on then it is likely that the this error is occurring 17 1 9 Too few bytes in packet Error code 0x0008 Description A too few bytes in packet error will be sent if the received packet does not contain enough bytes to be valid This error is only relevant to users developing their own communication software and not using the x IMU API or x IMU GUI 17 1 10 Too many bytes in packet Error code 0x0009 Description A too many bytes in packet error will be sent if the received packet does not contains too many bytes to be valid This error is only relevant to users developing their own communication software and not using the x IMU API or x IMU GUL 17 1 11 Invalid checksum Error code Ox000A Description An invalid checksum error will be sent if the received packet contains a valid number of bytes but contains an invalid checksum This error is only relevant to users developing their own communication software and not using the x IMU API or x IMU GUL 17 1 12 Unknown packet header Error code Ox000B Description An Unknown packet he
76. rated bias of the battery ADC in lsb The typical value is 0 Isb See the analogue input section for more information 18 3 84 PWM frequency Address 0x0053 Value 3 to 65535 Description Frequency of the PWM output in Hz See the PWM section for more information 18 3 85 ADXL345 bus data mode Address 0x0054 Value 0x0000 Raw ADC results 0x0001 Calibrated measurements Description Data output mode of ADXL345 bus 57 18 3 86 ADXL345 bus data output rate Address 0x0055 Value 0x0000 On change only 0x0001 1 Hz 0x0002 2 Hz 0x0003 4 Hz 0x0004 8 Hz 0x0005 16 Hz 0x0006 32 Hz 0x0007 64 Hz 0x0008 128 Hz 0x0009 256 Hz Ox000A 512 Hz Description Output rate of the ADXL345 bus data packets Data rates can be reduced or disabled to reduce power consumption 18 3 87 ADXL345 A x axis sensitivity Address 0x0056 Value Q10 6 signed fixed point value between 512 and 511 9844 Description Calibrated sensitivity of the ADXL345 A x axis in lsb g The typical value is 256 Isb g The typical value is 256 Isb V 18 3 88 ADXL345 A y axis sensitivity Address 0x0057 Value Q10 6 signed fixed point value between 512 and 511 9844 Description Calibrated sensitivity of the ADXL345 A y axis in lsb g The typical value is 256 lsb g 18 3 89 ADXL345 A z axis sensitivity Address 0x0058 Value Q10 6 signed fixed point value between 512 and 511 9844 Description Calibrated sensitivity of the ADXL345
77. rmation 18 3 59 Algorithm initial proportional gain Address Value Description 0x003A Q5 11 signed fixed point value between 0 and 15 99951 Initial algorithm proportional feedback gain used during algorithm initialisation The effec tive proportional gain will ramp down from the algorithm initial proportional gain to the algorithm proportional gain over the algorithm initialisation period See the IMU and AHRS algorithms section for more information 18 3 60 Algorithm initialisation period Address Value Description 0x003B Q5 11 signed fixed point value between 0 and 15 99951 Algorithm initialisation period in seconds The effective proportional gain will ramp down from the algorithm initial proportional gain to the algorithm proportional gain over the algo rithm initialisation period See the IMU and AHRS algorithms section for more information 52 18 3 61 Algorithm minimum valid magnetic field magnitude Address 0x003C Value Q5 11 signed fixed point value between 0 and 15 99951 Description The minimum valid magnetic field magnitude in G that may be used by the algorithm in the estimation of heading Magnetic fields of an invalid magnitude will be ignored by the AHRS algorithm so that heading is determined from gyroscope measurements alone See the IMU and AHRS algorithms section for more information 18 3 62 Algorithm maximum valid magnetic field magnitude Address 0x003D Value Q5 11 signed fixed p
78. s Ga AR ee a i A e 40 17 1 9 Too few bytes in packet sos c e bee eee ee ee a ee ee E 40 17 110 Too many bytes im packet soe scania ara be ee Peles hae Gd eee ee A 40 Alda Invalid checksum uo iras ds bh bw ack Hee bE eh dod wee we a BBE 40 1 1 12 Unknown packet header sins ci meaai ana Book a eae a ae Ba ee ee 40 17 1 13 Invalid number of bytes for packet header lt lt o 40 11 14 Invalid register address een a ia Re a ew ee ee 40 im liloiepister Tead Only ee aa e A Hee da ee OG ee ee d 40 171 16 Invalid register Valle csi PA ADR RR Rw ea aS 41 LL Invalid command sr se a ki eea a sa a De ERA e 41 17 1 18 Gyroscope axis notat 200 APS a swor e s eeoa e a wee a i ae a ee a 41 17 1 19 Gyroscope not Stationary wa astre poaa e eee a a a R 41 17 1 20 Accelerometer axis not at lg e 41 17 121 Magnetometer saturation isece drs sado anida aote a whe ee ee 41 11 22 Incorrect auxiliary port Mode e e e str a ee a ee ee 41 17 1 23UART receive buffer overrun scos eas cep i aosa e e bea ee 42 17 1 24UART transmit buffer overrun c s sp toi pi te a G a a a ee 42 18 Registers 42 18 1 Reading registers co cocu mosa e RAN RE Oe a a e 42 18 2 Waitin KELISTO e ds E A A PR aes A ARA 42 18 3 Individual p gisters 6454246466 bb n bw bebe aa aa Ror dea a ao eeu deh 42 18 3 1 Firmware version major number s es aaco iedee da arma bien ee ee 42 18 3 2 Firmware version Minor number s soss s purua e R E
79. s otie iagi n 8d ek Bee hE ee we od wee Bee oi 58 18 3 91 ADXL345 A y axis DIAS joc ha eh ssaa Bae He DE am Bes e E 58 1S 3 92 ADXES45 A z axis DIAS w s pa tie e Se ae hte RR he ee a ee A pea 58 18 3 93 ADXL345 B x axis Sensitivity lt sc bso a4 RoR RRO EDR PR Oe ee ee 59 18 3 94ADXI 345 B y axis SQnsitivity scd e e doria au a ee He Be 59 18 395 ADXL345 B z axis sensitivity o o sc ooo ee ee ed 59 18 3 06 ADX L345 B x axis Dias sssi be ee Fa AD AR A ee A we mB e 59 18 3 97 ADXL345 B yeas bias eoc s i asa a i a A le Qo aoa ee eee Gave ee A 59 18 3 98 ADIXU345 B zaxis DIAS oc e a RR RR Ra A Ee BE ee ee eS 59 18 3 99 ADXL345 C x axis sensitivity i e se ago sma ee 59 18 3 100M DXL345 C y axis sensitivity e 59 18 3 10 DXL3J45 C z axis sensitivity ect a o a a a 59 18 3 0 ADXL3J45 C akis DIAS fk heb Red and ai aiana e eVe Dea GO ROR ee 59 I8 SI0ADXL345 C y axis Dias or a ch ee a be Rae eh A ee ee e 60 18 3 10A DXL345 C z axis Dias Awe circa sa le a eae ee wo RE Re 60 18 3 10ADX1L345 D x axis sensitivity u Eo maa k a a NE iR A ee 60 18 3 104DXL345 D y axis sensitivity a soa rora e 60 18 3 10ADXL345 D z axis Sensitivity c reaa ks aaa E A a a 60 18 3 10A DXL345 Di z axis DIAS e eii ka dd A a ed ad o da di 60 18 3 10ADXL345 D y axis bias 2 ee 60 18 3 MADXE345 D zas Dias s aarue A A e a ha e e ek rga 60 18 30 LARD baud rate s o piba ena al A a SEE aa 61 18 3 11UART hardware flow control
80. the value written is different from the current register value then the x IMU will save the new value to the flash memory and perform any required actions e g reconfigure the IMU 3000 for a different gyroscope full scale range If the write register packet contains an invalid register address then the x IMU will respond with an invalid register address error If the register write packet contains a register value that is invalid for the specified address then the x IMU will respond with an invalid register value error If a register write packet contains a register address that is read only then the x IMU will respond with a register read only error 18 3 Individual registers 18 3 1 Firmware version major number Address 0x0000 Value 0 to 65534 Read only Description The major number of the current firmware version loaded on the x IMU 42 18 3 2 Firmware version minor number Address 0x0001 Value 0 to 65534 Read only Description The minor number of the current firmware version loaded on the x IMU 18 3 3 Device ID Address 0x0002 Value 0x0000 to OxFFFF Read only Description The 4 digit hexadecimal ID of the x IMU taken as the last 2 bytes of the Bluetooth MAC address 18 3 4 Button mode Address 0x0003 Value 0x0000 Disabled 0x0001 Reset command 0x0002 Sleep wake up 0x0003 Algorithm initialise command 0x0004 Algorithm tare command 0x0005 Algorithm initialise then tare command Description The command t
81. tion for more information 18 3 22 Gyroscope x axis bias temperature sensitivity Address Value Description 0x0015 Q5 11 signed fixed point value between 16 and 15 99951 Calibrated bias temperature sensitivity of the gyroscope x axis in lsb C See parameter fr in the gyroscope section The value of the parameter can be accurately evaluated through calibration using the Calculate gyroscope bias parameters command See the gyroscope bias calibration section for more information 18 3 23 Gyroscope y axis bias temperature sensitivity Address Value Description 0x0016 Q5 11 signed fixed point value between 16 and 15 99951 Calibrated bias temperature sensitivity of the gyroscope y axis in Isb C See parameter fy in the gyroscope section The value of the parameter can be accurately evaluated through calibration using the Calculate gyroscope bias parameters command See the gyroscope bias calibration section for more information 18 3 24 Gyroscope z axis bias temperature sensitivity Address Value Description 0x0017 Q5 11 signed fixed point value between 16 and 15 99951 Calibrated bias temperature sensitivity of the gyroscope z axis in Isb C See parameter f in the gyroscope section The value of the parameter can be accurately evaluated through calibration using the Calculate gyroscope bias parameters command See the gyroscope bias calibration section for more information 18 3 25 Gyroscope sample
82. to calculate the gyroscope z axis sensitivity See the gyroscope sensitivity calibration section for more information 18 3 19 Gyroscope x axis bias at 25 degrees Celsius Address Value Description 0x0012 Q13 3 signed fixed point value between 4096 and 4095 875 Calibrated bias of the gyroscope x axis at 25 C in Isb See parameter b in the gyroscope section The value of the parameter can be accurately evaluated through calibration us ing the Calculate gyroscope bias parameters command See the gyroscope bias calibration section for more information 18 3 20 Gyroscope y axis bias at 25 degrees Celsius Address Value Description 0x0013 Q13 3 signed fixed point value between 4096 and 4095 875 Calibrated bias of the gyroscope y axis at 25 C in Isb See parameter b in the gyroscope section The value of the parameter can be accurately evaluated through calibration us ing the Calculate gyroscope bias parameters command See the gyroscope bias calibration section for more information 45 18 3 21 Gyroscope z axis bias at 25 degrees Celsius Address Value Description 0x0014 Q13 3 signed fixed point value between 4096 and 4095 875 Calibrated bias of the gyroscope z axis at 25 C in lsb See parameter by in the gyroscope section The value of the parameter can be accurately evaluated through calibration us ing the Calculate gyroscope bias parameters command See the gyroscope bias calibration sec
83. tooth connection 21 will be lost when the x IMU is switch off enters sleep mode or is out of range The connection status of the x IMU is indicated by the Bluetooth LED The Bluetooth radio can be completely disabled by the user via the Bluetooth power register to reduce power consumption 6 1 Pairing the x IMU with a Bluetooth host As with any Bluetooth device the x IMU must first be paired with the host computer before a Bluetooth connection can be made This pairing process is the same for all Bluetooth devices and will be familiar those who have used other Bluetooth devices such as printers or mobile phones To pair the x IMU with a host computer the host computer s Bluetooth must be enabled and the x IMU must be switched on and the Bluetooth power enabled so that the Bluetooth LED is flashing The user may then use the host computer to search for and the x IMU to be paired with the computer The x IMU will appear with the name x IMU ABCD where the characters ABCD are the device ID of the x IMU For example Figure 19 shows how this is done in Windows 7 having right clicked the Bluetooth icon the task bar Select a device to add to this computer Windows will continue to look for new devices and display them here z IMU 2D49 b Bluetooth Other Add a Device Allow a Device to Connect Show Bluetooth Devices Send a File Receive a File What if Windows doesn t find my device Join a Personal Area Ne
84. tput rates will mean the LED will flash rapidly In this way the SD card LED provides an indication of SD card bandwidth performance 7 3 SD card bandwidth It is possible for the user to define data output rates so that the amount of data being generated by the x IMU exceeds the bandwidth of a communication channel The SD card bandwidth is greater than the USB and Bluetooth bandwidth and so the SD card may still provide reliable data logging when the USB or Bluetooth channel bandwidth is exceeded If the SD card bandwidth is exceed the SD card buffer will overrun and some data will be lost When this happens an SD card write buffer overrun error will be generated This error packet is sent immediately after the buffer has overrun so that the error will always be successfully logged to the SD card This error can be avoided by reducing the data output rates The SD card LED may be used to provides an indication of SD card bandwidth performance while access to errors is not available The effective bandwidth of SD card is varies between different SD card brands and may decrease signifi cantly if the SD card becomes fragmented It is therefore recommended that the SD card is formatted prior to each use 7 4 Magnetic distortions from the SD card socket The SD card socket contains a ferromagnetic mechanism that may distort magnetometer measurements in different ways dependant on whether an SD card is inserted or not These distortions are removed from
85. twork Open Settings Remove Icon Figure 19 Searching for the x IMU as a new Bluetooth device in Windows 7 Once the x IMU has been found by the host computer it can be added This will require the user to enter the x IMU s Bluetooth pass code 1234 The x IMU Bluetooth pairing will be assigned an available serial port name by the host computer for example COM3 For example Figure 20 shows this being done in Windows 7 22 Enter the pairing code for the device This will verify that you are connecting to the correct device 1234 The code is either displayed on your device or in the information that came with the device O Configuring device What if I can t find the device pairing code Standard Serial over Bluetooth link COM3 Se ere eee Figure 20 Adding the x IMU as a new Bluetooth device in Windows 7 The port name assigned to the x IMU Bluetooth pairing can be confirmed at any time by viewing the services of the x IMU For example Figure 21 shows how this is done in Windows 7 having right clicked the x IMU Bluetooth device icon i SC JJ gt corran AN Cool Panetems gt Devicesand Pinters BuetothDevces typ Sern Dev 2 Add a device Add a printer Remove device 4 Devices 1 I x IMU 2049 Properties General Hardware Services Bluetooth This Bluetooth device offers the following services To use a Bluetooth Services Y Serial port SPP SPP
86. uboid is displayed in a screen coordinate frame where the x axis is aligned to the width of the screen left to right the z axis aligned to the height bottom to top and the y axis projects into the screen To align the motion of the physical x IMU and 3D cuboid displayed on the screen the user should first align the axes of the physical x IMU to the screen coordinate frame and then use the algorithm tare command 15 a 3D Cuboid Figure 10 x IMU GUI 3D cuboid window 4 1 6 Tab page Auxiliary port The auxiliary port tab page contains buttons to show or hide individual control windows for the different modes of the auxiliary port aL x IMU GUI v1 0 noe Ex Serial Port Registers Date Time Commands View Sensor Data Auodllary Port Data Logger SD Card Hard Iron Calibration Bootloader About Digital 1 0 Show Digital 1 0 Panel Figure 11 x IMU GUI auxiliary port tab page Digital I O control panel The digital I O control panel displays the state and mode of each channel of the auxiliary port when in digital I O mode as shown in figure 12 Each channel is represented by a check box If the channel mode is output then the check box is enabled and may be checked or un checked to set the channel high or low respectively If the channel is an input the check box is disabled and will be checked or un checked if the channel is high or low respectively 16 Figure 12
87. uter may then communicate with the x IMU by opening this serial port This is achieved via the serial port tab page of the x IMU GUI The USB connection is a reliable communication channel that cannot be comprised by user settings the x IMU will not enter sleep mode due to the sleep timer or low battery voltage detection while the USB is connected The USB connection can be used to power the x IMU and is used by the on board charging circuit to charge the battery if connected The on board USB interface is powered directly by the USB connection so that the x IMU will remain detectable and the serial port may be held open by the computer even while the x IMU is switched off or in sleep mode 5 1 Installing USB drivers The Windows USB drivers can be downloaded from the x IMU webpage Drivers for other operating systems are available of the FTDI website To install the Windows drivers simply run the exe file This will automatically detect specific Windows operating system being used and install the correct drivers Once the drivers have been installed and the x IMU connected to the computer the x IMU will appear as a serial port and be assigned an available port name for example COM2 The port name assigned to the x IMU USB connection can be confirmed at any time by viewing the computer s Ports in Windows device manager as shown in Figure 18 20 Device Ma le File Action View Help Es ill ie E gE 4 y MECH RV170 M Computer a Disk
88. utput channel AX6 AX7 Input Unused Table 6 Auxiliary port pin assignments for PWM output mode 14 5 ADXL345 bus mode This section is currently unavailable but can be updated on request Pin I O Description AX0 Output ADXL345 A SPI CS AX1 Input SPI CLK AX2 Output ADXL345 B SPI CS AX3 Input SPI DIN AX4 Output ADXL345 C SPI CS AX5 Input SPI DOUT AX6 Output ADXL345 D SPI CS AX7 Input Power enable Table 7 Auxiliary port pin assignments for ADXL345 bus mode 14 6 UART mode In UART mode four pins of the auxiliary port function as a configurable UART with hardware flow control The Bluetooth power will automatically be disabled when UART mode is enabled Commination via the auxiliary port UART is identical to that via the virtual serial ports enabled by the Bluetooth or USB connection The UART baud rate may be set to 2400 4800 7200 9600 14400 19200 38400 57600 115200 230400 460800 or 921600 baud in the UART baud rate register The UART hardware flow control can be enabled or disabled in the UART hardware flow control register Pin I O Description AXO Output TX AX1 Input Unused AX2 Output RX AX3 Input Unused AX4 Output CTS AX5 Input Unused AX6 Output RTS AX7 Input Unused Table 8 Auxiliary port pin assignments for UART mode 14 6 1 UART bandwidth It is possible for the user to define data output rates so that the amount of data being generated by the x IMU exceeds the bandwidth of a
89. ved 34886 Files created LoggedData_DateTime bdt LoggedData_CalBattTherm csv LoggedData_CallnertialMagnetic csw LoggedData_Quaternion csv LoggedData_RotationMatrix csv LoggedData_EulerAngles csv LoggedData_DigitallO csv Figure 14 x IMU GUI data logger report 4 1 8 Tab page SD card The SD card tab page allows the user to convert binary files bin saved to the SD card in to readable data files These files may be imported to user software such as Microsoft Excel and MATLAB The location and file name must be specified in the File path text box The file conversion will start when the Convert button is clicked This process occurs in the background and may take a while if a large binary file is specified bere recy telee _ Serial Por Registers Date Time Commands View Sensor Data Awilary Port Data Logger Hard ron Calibration Bootloader About Convert Binary File File path Browse Convert Figure 15 x IMU GUI SD card tab page Once the conversion is complete a report window will be presented detailing the number of each type of packet read and the specific data files created as shown in figure 16 18 Total packets read 32085028 Packet read errors 0 Date time packets read 48837 Raw battery and thermometer packets read 0 Calibrated battery and thermometer packets read 781371 Raw inertial magnetic packets read 0 Calibrated inertial
90. x IMU GUI digital I O control panel 4 1 7 Tab page Data logger The data logger tab allows the user to log incoming real time data to file These files may be imported to user software such as Microsoft Excel and MATLAB The user may select the location and first part of the file name in the File path text box This file name will be extended with an appropriate description and extension when the individual data files are created For example if a file name of myFile is specified Euler angle and date time data will be saved to myFile_EulerAngles csv and myFile_DateTime txt 2 x IMU GUI v1 0 Serial Port Registers Date Time Commands View Sensor Data Auxillary Por Log Received Data To file File path C Users Seb Madgwick Documents LoggedData Figure 13 x IMU GUI data logger tab page The Start Stop Logging button is used to start and stop the data logger When logging is stopped a report window will be presented detailing the number of each type of packet logged and the specific data files created as shown in figure 14 17 Total packets received 87898 Packet reception errors 0 Date time packets received 136 Raw battery and thermometer packets received 0 Calibrated battery and thermometer packets received 545 Raw inertial magnetic packets received 0 Calibrated inertial magnetic packets received 34885 Quaternion packets received 17443 Digital V O packets recei
91. x IMU User Manual 4 3 x io Technologies November 14 2011 Disclaimer The x IMU and associated software are provided in an as in condition No warranties whether express implied or statutory including but not limited to implied warranties of merchantability and fitness for a particular purpose apply x io Technologies shall not in any circumstances be liable for special incidental or consequential damages for any reason whatsoever Contents 1 x IMU overview 1 1 x IMU Features 1 2 x IMU Software Getting started Hardware overview 3 1 Power switch 6 24 iaa ec a a ke a ee ee 32 Command DUO a e bee ae Be A ee a a OG ee CERO LEG EH AGS Bes 3 3 LEDS 2 45 4844 dd ed i Re A BA A Ow ew eae de dol gd ead 3 3 1 Status LED Green s ret Be ee ee eS de e 3 3 2 SD card LED Amber cies ee ae eo Swe e ew Dd a 39 3 Bluetooth LED Blue o 2 ha wehbe ad ES RR Pa eG Ae RA 3 34 Charging LED Rede esp 42 34 4b nach Gah eb eb ee bk eee Be pd 31 USB sockets ctw a a bee a A See Re A 3 0 MicroSD card SOCket sc wee dee Se ee a BK he Bh ie a ae ee we Oe Pe 3 0 Bluetooth module s s pra s aaiae epee ble aud a eae eee SAHA aa ou Battery connector e ia ds o beet A den esd A ae ee ge 3 3 Auxiliary port header 2 054 Abad Roa 4eA SE AChR Ee EOE ED Ae EGS Oe BEE ES Software overview 41 IMU GUI 4 1 1 Tab page SEMA DOTE se 4 406 654 40 0h be ebb one ne Pea ee eG 4 1 2 Tab page Registers sa
92. ximately 8 seconds before being stored to the corresponding register A calcu late gyroscope sensitivity command will then be executed The execution of the sample gyroscope axis at 200 dps command will be aborted if a gyroscope axis is detected as not being at approximately 200 s and a gyroscope axis not at 200 dps error will be generated See the gyroscope sensitivity calibration section for more information 16 1 7 Calculate gyroscope sensitivity Command code Description 0x0006 The calculate gyroscope sensitivity command is used to execute the on board gyroscope sensitivity calibration algorithm The algorithm uses the sampled gyroscope bias register values previously obtained by the sample gyroscope axis at 200 dps command to update the gyroscope sensitivity parameters registers See the gyroscope sensitivity calibration section for more information 16 1 8 Sample gyroscope bias at temperature 1 Command code Description 0x0007 The sample gyroscope bias at temperature 1 command is used to calibrate the gyroscope bias parameters This command should be sent while the x IMU is stationary and at the lowest temperature the device is required to operate at The x IMU will measure the mean temperature and gyroscope output over approximately 16 seconds store the results to the sampled temperature 1 registers and then trigger a calculate gyroscope bias parameters command The execution of the sample gyroscope bias at temperature 1
Download Pdf Manuals
Related Search
Related Contents
FAIRFORD COMMUNITY CENTRE USER GUIDE Contents Page Size: 420mm X 280mm FRENCH Page 1 EVGA GeForce GTX470 GeForce GTX 470 1.25GB Copyright © All rights reserved.
Failed to retrieve file