An example C++ library and Teensyduino project for the ADIS16448 iSensor Ten Degrees of Freedom Inertial Sensor
This example library was written to give engineers, students, and makers a starting point for using a high-performance, compact, precision inertial sensor. The code in this repository will provide the user with:
- A header file listing all of the unit's available registers
- Functions for reading output registers and writing control registers using 8-bit frames
- Note that the ADIS16448 requires 16 bit SPI transactions. spi.transfer() is called twice for each transfer and CS is manually toggled to overcome the Arduino language's limitation
- Functions for performing common routines such as resetting the sensor
- Burst-mode data acquisition and checksum verification
- Example Arduino sketches which synchronously read data from the sensor and write it to the serial port
- An example program that will read data from the serial port and write it to a .csv file
- CRC16 calculation examples written for MATLAB and LabVIEW
- In order to compile and execute the Teensyduino sketch, you'll need to download the Arduino package (v1.6.11 as of this writing). You can download the IDE here.
- You'll also need to install the Teensyduino library provided by PJRC.
- Finally, you'll need a Teensy sold by PJRC here. Version 3.x or LC is supported.
- The main Teensyduino sketch issues a command to clear the terminal window after displaying data. For best results, connect to your Teensy using PuTTY, an open source terminal program.
Once you've installed the Arduino IDE and Teensyduino libraries, copy the ADIS16448 folder into My Documents > Arduino > libraries
Be sure to restart the Arduino IDE to refresh the library directory!
If using a Teensy, the onboard regulator should provide enough current for the ADIS16448 to properly operate.
You'll need to build a cable to interface the sensor with the ADIS16448/PCBZ. The image below shows a custom Teensy interface board for iSensors products.
Pin assignments for the Teensy can be found in the example sketch comments.
Once you have the sensor connected and have opened the ADIS16448_Teensy_BurstRead_Example.ino example sketch, use PuTTY to connect to the arduino using the following settings. Note that your COM port may be different:
If everything is working, you should see a screen like this:
The demo software will only update the screen ~2 times/second, but every sample is being captured by the interrupt service routine.
A single burst frame should look like this when viewed with a logic analyzer: