usrp-users@lists.ettus.com

Discussion and technical support related to USRP, UHD, RFNoC

View all threads

Re: [USRP-users] Question about the IMU (MPU-9150) on the E310

BI
Beeman, Isaac L.
Tue, Nov 12, 2019 5:36 PM

Marcus and List,

I was hoping someone knew the steps involved to get the RTIMULib setup on the USRP. I tried building and installing both the RTIMULib and Linux folders, but the Linux one fails:

-- Found unsuitable Qt version "" from NOTFOUND
Qt QTOPENGL library not found.
Qt QTGUI library not found.
Qt QTCORE library not found.
CMake Error at RTIMULibGL/CMakeLists.txt:90 (QT4_ADD_RESOURCES):
Unknown CMake command "QT4_ADD_RESOURCES".
-- Configuring incomplete, errors occurred!

I figured that I can't install the RTIMULibDemo apps because they use a GUI, so I built and installed the RTIMULibDrive and RTIMULibCal individually. Only, when I try to run one of these apps I get the following error:

RTIMULibDrive: error while loading shared libraries: libRTIMULib.so.7: cannot open shared object file: No such file or directory

I don't get how to fix this. When I build and install the same apps on my host computer they run fine (but obviously can't find any IMU). Considering that any applications I write also use the same libraries, I feel like this is going to be an issue.

There isn't any documentation that I can find on the usage of the C++ library for RTIMULib. Just reading the code in RTIMULibDrive.cpp as an example, it doesn't seem too complicated, but it obviously is a generic program that isn't using the settings needed to connect to the MPU-9150.

If anyone knows how to get one of these apps (RTIMULibDrive or RTIMULibCal) working or how to use RTIMULib.h in connecting to the MPU-9150 over I2C, it would be much appreciated.

-Isaac Beeman

P.S. I also tried 'i2cdetect -y 0' to see if the MPU-9150 has the I2C address 0x69 like the schematics say, but I only get:

Warning: Can't use SMBus Quick Write command, will skip some addresses
0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:
10:
20:
30: -- -- -- -- -- -- -- --
40:
50: UU UU -- -- -- -- -- -- -- -- -- -- -- -- -- --
60:
70:

with nothing under 0x69. So that's weird.

-----Original Message-----
From: USRP-users usrp-users-bounces@lists.ettus.com On Behalf Of Marcus D. Leech via USRP-users
Sent: Tuesday, November 12, 2019 10:35 AM
To: usrp-users@lists.ettus.com
Subject: [EXT] Re: [USRP-users] Question about the IMU (MPU-9150) on the E310

On 11/12/2019 10:26 AM, Beeman, Isaac L. via USRP-users wrote:

Hi List,

I have recently started working with the E310/E312 and have gotten multichannel RX/TX and GPS working, but I can't figure out how to grab data off of the internal IMU/MPU-9150. I found some website (http://gnuradio.cn/en/html/support/en/page_usrp_e3x0.html) that said that the USRP image should contain RTIMULib applications with allow the user to test the IMU, but, unless I am looking in the wrong place, the current image for the E310 does not have any RTIMULib applications on it.

I want to know if there are any API calls or libraries that would allow me to do development with the IMU.

-Isaac Beeman


You might start here:

https://github.com/RTIMULib

Marcus and List, I was hoping someone knew the steps involved to get the RTIMULib setup on the USRP. I tried building and installing both the RTIMULib and Linux folders, but the Linux one fails: -- Found unsuitable Qt version "" from NOTFOUND Qt QTOPENGL library not found. Qt QTGUI library not found. Qt QTCORE library not found. CMake Error at RTIMULibGL/CMakeLists.txt:90 (QT4_ADD_RESOURCES): Unknown CMake command "QT4_ADD_RESOURCES". -- Configuring incomplete, errors occurred! I figured that I can't install the RTIMULibDemo apps because they use a GUI, so I built and installed the RTIMULibDrive and RTIMULibCal individually. Only, when I try to run one of these apps I get the following error: RTIMULibDrive: error while loading shared libraries: libRTIMULib.so.7: cannot open shared object file: No such file or directory I don't get how to fix this. When I build and install the same apps on my host computer they run fine (but obviously can't find any IMU). Considering that any applications I write also use the same libraries, I feel like this is going to be an issue. There isn't any documentation that I can find on the usage of the C++ library for RTIMULib. Just reading the code in RTIMULibDrive.cpp as an example, it doesn't seem too complicated, but it obviously is a generic program that isn't using the settings needed to connect to the MPU-9150. If anyone knows how to get one of these apps (RTIMULibDrive or RTIMULibCal) working or how to use RTIMULib.h in connecting to the MPU-9150 over I2C, it would be much appreciated. -Isaac Beeman P.S. I also tried 'i2cdetect -y 0' to see if the MPU-9150 has the I2C address 0x69 like the schematics say, but I only get: Warning: Can't use SMBus Quick Write command, will skip some addresses 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: 10: 20: 30: -- -- -- -- -- -- -- -- 40: 50: UU UU -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: 70: with nothing under 0x69. So that's weird. -----Original Message----- From: USRP-users <usrp-users-bounces@lists.ettus.com> On Behalf Of Marcus D. Leech via USRP-users Sent: Tuesday, November 12, 2019 10:35 AM To: usrp-users@lists.ettus.com Subject: [EXT] Re: [USRP-users] Question about the IMU (MPU-9150) on the E310 On 11/12/2019 10:26 AM, Beeman, Isaac L. via USRP-users wrote: > Hi List, > > I have recently started working with the E310/E312 and have gotten multichannel RX/TX and GPS working, but I can't figure out how to grab data off of the internal IMU/MPU-9150. I found some website (http://gnuradio.cn/en/html/support/en/page_usrp_e3x0.html) that said that the USRP image should contain RTIMULib applications with allow the user to test the IMU, but, unless I am looking in the wrong place, the current image for the E310 does not have any RTIMULib applications on it. > > I want to know if there are any API calls or libraries that would allow me to do development with the IMU. > > -Isaac Beeman > > _______________________________________________ You might start here: https://github.com/RTIMULib
MD
Michael Dickens
Tue, Nov 12, 2019 8:29 PM

Hi Isaac - UHD itself provides no API to the IMU; never has. The RTIMULib,
possibly an older version than current and assuming it can be built and
installed on the E310, should be able to access the IMU to provide
information from it. Note "possibly", "assuming", "should" ... clearly this
isn't a majorly supported feature of the E310! Good luck! - MLD

On Tue, Nov 12, 2019 at 12:37 PM Beeman, Isaac L. via USRP-users <
usrp-users@lists.ettus.com> wrote:

Marcus and List,

I was hoping someone knew the steps involved to get the RTIMULib setup on
the USRP. I tried building and installing both the RTIMULib and Linux
folders, but the Linux one fails:

-- Found unsuitable Qt version "" from NOTFOUND
Qt QTOPENGL library not found.
Qt QTGUI library not found.
Qt QTCORE library not found.
CMake Error at RTIMULibGL/CMakeLists.txt:90 (QT4_ADD_RESOURCES):
Unknown CMake command "QT4_ADD_RESOURCES".
-- Configuring incomplete, errors occurred!

I figured that I can't install the RTIMULibDemo apps because they use a
GUI, so I built and installed the RTIMULibDrive and RTIMULibCal
individually. Only, when I try to run one of these apps I get the following
error:

RTIMULibDrive: error while loading shared libraries: libRTIMULib.so.7:
cannot open shared object file: No such file or directory

I don't get how to fix this. When I build and install the same apps on my
host computer they run fine (but obviously can't find any IMU). Considering
that any applications I write also use the same libraries, I feel like this
is going to be an issue.

There isn't any documentation that I can find on the usage of the C++
library for RTIMULib. Just reading the code in RTIMULibDrive.cpp as an
example, it doesn't seem too complicated, but it obviously is a generic
program that isn't using the settings needed to connect to the MPU-9150.

If anyone knows how to get one of these apps (RTIMULibDrive or
RTIMULibCal) working or how to use RTIMULib.h in connecting to the MPU-9150
over I2C, it would be much appreciated.

-Isaac Beeman

P.S. I also tried 'i2cdetect -y 0' to see if the MPU-9150 has the I2C
address 0x69 like the schematics say, but I only get:

Warning: Can't use SMBus Quick Write command, will skip some addresses
0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:
10:
20:
30: -- -- -- -- -- -- -- --
40:
50: UU UU -- -- -- -- -- -- -- -- -- -- -- -- -- --
60:
70:

with nothing under 0x69. So that's weird.

-----Original Message-----
From: USRP-users usrp-users-bounces@lists.ettus.com On Behalf Of Marcus
D. Leech via USRP-users
Sent: Tuesday, November 12, 2019 10:35 AM
To: usrp-users@lists.ettus.com
Subject: [EXT] Re: [USRP-users] Question about the IMU (MPU-9150) on the
E310

On 11/12/2019 10:26 AM, Beeman, Isaac L. via USRP-users wrote:

Hi List,

I have recently started working with the E310/E312 and have gotten

multichannel RX/TX and GPS working, but I can't figure out how to grab data
off of the internal IMU/MPU-9150. I found some website (
http://gnuradio.cn/en/html/support/en/page_usrp_e3x0.html) that said that
the USRP image should contain RTIMULib applications with allow the user to
test the IMU, but, unless I am looking in the wrong place, the current
image for the E310 does not have any RTIMULib applications on it.

I want to know if there are any API calls or libraries that would allow

me to do development with the IMU.

-Isaac Beeman


--
Michael Dickens
Ettus Research Technical Support
Email: support@ettus.com
Web: https://ettus.com/

Hi Isaac - UHD itself provides no API to the IMU; never has. The RTIMULib, possibly an older version than current and assuming it can be built and installed on the E310, should be able to access the IMU to provide information from it. Note "possibly", "assuming", "should" ... clearly this isn't a majorly supported feature of the E310! Good luck! - MLD On Tue, Nov 12, 2019 at 12:37 PM Beeman, Isaac L. via USRP-users < usrp-users@lists.ettus.com> wrote: > Marcus and List, > > I was hoping someone knew the steps involved to get the RTIMULib setup on > the USRP. I tried building and installing both the RTIMULib and Linux > folders, but the Linux one fails: > > > -- Found unsuitable Qt version "" from NOTFOUND > Qt QTOPENGL library not found. > Qt QTGUI library not found. > Qt QTCORE library not found. > CMake Error at RTIMULibGL/CMakeLists.txt:90 (QT4_ADD_RESOURCES): > Unknown CMake command "QT4_ADD_RESOURCES". > -- Configuring incomplete, errors occurred! > > > I figured that I can't install the RTIMULibDemo apps because they use a > GUI, so I built and installed the RTIMULibDrive and RTIMULibCal > individually. Only, when I try to run one of these apps I get the following > error: > > > RTIMULibDrive: error while loading shared libraries: libRTIMULib.so.7: > cannot open shared object file: No such file or directory > > > I don't get how to fix this. When I build and install the same apps on my > host computer they run fine (but obviously can't find any IMU). Considering > that any applications I write also use the same libraries, I feel like this > is going to be an issue. > > There isn't any documentation that I can find on the usage of the C++ > library for RTIMULib. Just reading the code in RTIMULibDrive.cpp as an > example, it doesn't seem too complicated, but it obviously is a generic > program that isn't using the settings needed to connect to the MPU-9150. > > If anyone knows how to get one of these apps (RTIMULibDrive or > RTIMULibCal) working or how to use RTIMULib.h in connecting to the MPU-9150 > over I2C, it would be much appreciated. > > -Isaac Beeman > > > > P.S. I also tried 'i2cdetect -y 0' to see if the MPU-9150 has the I2C > address 0x69 like the schematics say, but I only get: > > Warning: Can't use SMBus Quick Write command, will skip some addresses > 0 1 2 3 4 5 6 7 8 9 a b c d e f > 00: > 10: > 20: > 30: -- -- -- -- -- -- -- -- > 40: > 50: UU UU -- -- -- -- -- -- -- -- -- -- -- -- -- -- > 60: > 70: > > with nothing under 0x69. So that's weird. > > > -----Original Message----- > From: USRP-users <usrp-users-bounces@lists.ettus.com> On Behalf Of Marcus > D. Leech via USRP-users > Sent: Tuesday, November 12, 2019 10:35 AM > To: usrp-users@lists.ettus.com > Subject: [EXT] Re: [USRP-users] Question about the IMU (MPU-9150) on the > E310 > > On 11/12/2019 10:26 AM, Beeman, Isaac L. via USRP-users wrote: > > Hi List, > > > > I have recently started working with the E310/E312 and have gotten > multichannel RX/TX and GPS working, but I can't figure out how to grab data > off of the internal IMU/MPU-9150. I found some website ( > http://gnuradio.cn/en/html/support/en/page_usrp_e3x0.html) that said that > the USRP image should contain RTIMULib applications with allow the user to > test the IMU, but, unless I am looking in the wrong place, the current > image for the E310 does not have any RTIMULib applications on it. > > > > I want to know if there are any API calls or libraries that would allow > me to do development with the IMU. > > > > -Isaac Beeman > > > > _______________________________________________ > > You might start here: > > https://github.com/RTIMULib > > _______________________________________________ > USRP-users mailing list > USRP-users@lists.ettus.com > http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com > -- Michael Dickens Ettus Research Technical Support Email: support@ettus.com Web: https://ettus.com/
SP
Samuel Prager
Tue, Nov 12, 2019 10:50 PM

Hi Isaac,

Here is a simple example program I wrote a while back for continuously streaming IMU data on the E310/E312.

https://github.com/samprager/E312IMUTest

See the README for RTIMULib installation instructions (the correct library is https://github.com/RPi-Distro/RTIMULib).

Sam
On Nov 12, 2019, 12:30 PM -0800, Michael Dickens via USRP-users usrp-users@lists.ettus.com, wrote:

Hi Isaac - UHD itself provides no API to the IMU; never has. The RTIMULib, possibly an older version than current and assuming it can be built and installed on the E310, should be able to access the IMU to provide information from it. Note "possibly", "assuming", "should" ... clearly this isn't a majorly supported feature of the E310! Good luck! - MLD

On Tue, Nov 12, 2019 at 12:37 PM Beeman, Isaac L. via USRP-users usrp-users@lists.ettus.com wrote:

Marcus and List,

I was hoping someone knew the steps involved to get the RTIMULib setup on the USRP. I tried building and installing both the RTIMULib and Linux folders, but the Linux one fails:

-- Found unsuitable Qt version "" from NOTFOUND
Qt QTOPENGL library not found.
Qt QTGUI library not found.
Qt QTCORE library not found.
CMake Error at RTIMULibGL/CMakeLists.txt:90 (QT4_ADD_RESOURCES):
    Unknown CMake command "QT4_ADD_RESOURCES".
-- Configuring incomplete, errors occurred!

I figured that I can't install the RTIMULibDemo apps because they use a GUI, so I built and installed the RTIMULibDrive and RTIMULibCal individually. Only, when I try to run one of these apps I get the following error:

RTIMULibDrive: error while loading shared libraries: libRTIMULib.so.7: cannot open shared object file: No such file or directory

I don't get how to fix this. When I build and install the same apps on my host computer they run fine (but obviously can't find any IMU). Considering that any applications I write also use the same libraries, I feel like this is going to be an issue.

There isn't any documentation that I can find on the usage of the C++ library for RTIMULib. Just reading the code in RTIMULibDrive.cpp as an example, it doesn't seem too complicated, but it obviously is a generic program that isn't using the settings needed to connect to the MPU-9150.

If anyone knows how to get one of these apps (RTIMULibDrive or RTIMULibCal) working or how to use RTIMULib.h in connecting to the MPU-9150 over I2C, it would be much appreciated.

-Isaac Beeman

P.S. I also tried 'i2cdetect -y 0' to see if the MPU-9150 has the I2C address 0x69 like the schematics say, but I only get:

Warning: Can't use SMBus Quick Write command, will skip some addresses
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:
10:
20:
30: -- -- -- -- -- -- -- --
40:
50: UU UU -- -- -- -- -- -- -- -- -- -- -- -- -- --
60:
70:

with nothing under 0x69. So that's weird.

-----Original Message-----
From: USRP-users usrp-users-bounces@lists.ettus.com On Behalf Of Marcus D. Leech via USRP-users
Sent: Tuesday, November 12, 2019 10:35 AM
To: usrp-users@lists.ettus.com
Subject: [EXT] Re: [USRP-users] Question about the IMU (MPU-9150) on the E310

On 11/12/2019 10:26 AM, Beeman, Isaac L. via USRP-users wrote:

Hi List,

I have recently started working with the E310/E312 and have gotten multichannel RX/TX and GPS working, but I can't figure out how to grab data off of the internal IMU/MPU-9150. I found some website (http://gnuradio.cn/en/html/support/en/page_usrp_e3x0.html) that said that the USRP image should contain RTIMULib applications with allow the user to test the IMU, but, unless I am looking in the wrong place, the current image for the E310 does not have any RTIMULib applications on it.

I want to know if there are any API calls or libraries that would allow me to do development with the IMU.

-Isaac Beeman


Hi Isaac, Here is a simple example program I wrote a while back for continuously streaming IMU data on the E310/E312. https://github.com/samprager/E312IMUTest See the README for RTIMULib installation instructions (the correct library is https://github.com/RPi-Distro/RTIMULib). Sam On Nov 12, 2019, 12:30 PM -0800, Michael Dickens via USRP-users <usrp-users@lists.ettus.com>, wrote: > Hi Isaac - UHD itself provides no API to the IMU; never has. The RTIMULib, possibly an older version than current and assuming it can be built and installed on the E310, should be able to access the IMU to provide information from it. Note "possibly", "assuming", "should" ... clearly this isn't a majorly supported feature of the E310! Good luck! - MLD > > > On Tue, Nov 12, 2019 at 12:37 PM Beeman, Isaac L. via USRP-users <usrp-users@lists.ettus.com> wrote: > > > Marcus and List, > > > > > > I was hoping someone knew the steps involved to get the RTIMULib setup on the USRP. I tried building and installing both the RTIMULib and Linux folders, but the Linux one fails: > > > > > > > > > -- Found unsuitable Qt version "" from NOTFOUND > > > Qt QTOPENGL library not found. > > > Qt QTGUI library not found. > > > Qt QTCORE library not found. > > > CMake Error at RTIMULibGL/CMakeLists.txt:90 (QT4_ADD_RESOURCES): > > >     Unknown CMake command "QT4_ADD_RESOURCES". > > > -- Configuring incomplete, errors occurred! > > > > > > > > > I figured that I can't install the RTIMULibDemo apps because they use a GUI, so I built and installed the RTIMULibDrive and RTIMULibCal individually. Only, when I try to run one of these apps I get the following error: > > > > > > > > > RTIMULibDrive: error while loading shared libraries: libRTIMULib.so.7: cannot open shared object file: No such file or directory > > > > > > > > > I don't get how to fix this. When I build and install the same apps on my host computer they run fine (but obviously can't find any IMU). Considering that any applications I write also use the same libraries, I feel like this is going to be an issue. > > > > > > There isn't any documentation that I can find on the usage of the C++ library for RTIMULib. Just reading the code in RTIMULibDrive.cpp as an example, it doesn't seem too complicated, but it obviously is a generic program that isn't using the settings needed to connect to the MPU-9150. > > > > > > If anyone knows how to get one of these apps (RTIMULibDrive or RTIMULibCal) working or how to use RTIMULib.h in connecting to the MPU-9150 over I2C, it would be much appreciated. > > > > > > -Isaac Beeman > > > > > > > > > > > > P.S. I also tried 'i2cdetect -y 0' to see if the MPU-9150 has the I2C address 0x69 like the schematics say, but I only get: > > > > > > Warning: Can't use SMBus Quick Write command, will skip some addresses > > >      0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f > > > 00: > > > 10: > > > 20: > > > 30: -- -- -- -- -- -- -- -- > > > 40: > > > 50: UU UU -- -- -- -- -- -- -- -- -- -- -- -- -- -- > > > 60: > > > 70: > > > > > > with nothing under 0x69. So that's weird. > > > > > > > > > -----Original Message----- > > > From: USRP-users <usrp-users-bounces@lists.ettus.com> On Behalf Of Marcus D. Leech via USRP-users > > > Sent: Tuesday, November 12, 2019 10:35 AM > > > To: usrp-users@lists.ettus.com > > > Subject: [EXT] Re: [USRP-users] Question about the IMU (MPU-9150) on the E310 > > > > > > On 11/12/2019 10:26 AM, Beeman, Isaac L. via USRP-users wrote: > > > > Hi List, > > > > > > > > I have recently started working with the E310/E312 and have gotten multichannel RX/TX and GPS working, but I can't figure out how to grab data off of the internal IMU/MPU-9150. I found some website (http://gnuradio.cn/en/html/support/en/page_usrp_e3x0.html) that said that the USRP image should contain RTIMULib applications with allow the user to test the IMU, but, unless I am looking in the wrong place, the current image for the E310 does not have any RTIMULib applications on it. > > > > > > > > I want to know if there are any API calls or libraries that would allow me to do development with the IMU. > > > > > > > > -Isaac Beeman > > > > > > > > _______________________________________________ > > > > > > You might start here: > > > > > > https://github.com/RTIMULib > > > > > > _______________________________________________ > > > USRP-users mailing list > > > USRP-users@lists.ettus.com > > > http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com > > > -- > Michael Dickens > Ettus Research Technical Support > Email: support@ettus.com > Web: https://ettus.com/ > _______________________________________________ > USRP-users mailing list > USRP-users@lists.ettus.com > https://urldefense.proofpoint.com/v2/url?u=http-3A__lists.ettus.com_mailman_listinfo_usrp-2Dusers-5Flists.ettus.com&d=DwICAg&c=clK7kQUTWtAVEOVIgvi0NU5BOUHhpN0H8p7CSfnc_gI&r=opIuWAKmywF059tAs2i3Pg&m=rGLxgINOMrS4sAfnjQ9mFF9r3gnmnGlRtI8Lfh1c_9g&s=8wPPngBEnPiaAxtUARbH1opcSV3Pgih5Konyr2kf9-c&e=
BI
Beeman, Isaac L.
Mon, Nov 18, 2019 4:24 PM

Hi Sam,

Thanks for linking your simple example program for streaming IMU data. I finally got the RTIMULib built and installed on the E312, but when I run your program I get this output:

root@ni-e31x-:~/usr/E312IMUTest/build# ./E312IMUTest
Do something here with example option input: for example
Settings file not found. Using defaults and creating settings file
Failed to open I2C bus 1
Failed to open SPI bus 0, select 0
Failed to open SPI bus 0, select 1
No IMU detected
Using fusion algorithm RTQF
No IMU found
Error intializing IMU

Was there any other setup I needed to do before running it (i.e. creating a settings file for the radio)? Do you think using a newer version of UHD and the E312 image might cause this issue?

Isaac Beeman


From: Samuel Prager sprager@usc.edu
Sent: Tuesday, November 12, 2019 5:50 PM
To: Beeman, Isaac L. ilbeeman@wpi.edu; Michael Dickens michael.dickens@ettus.com
Cc: usrp-users@lists.ettus.com usrp-users@lists.ettus.com
Subject: [EXT] Re: [USRP-users] Question about the IMU (MPU-9150) on the E310

Hi Isaac,

Here is a simple example program I wrote a while back for continuously streaming IMU data on the E310/E312.

https://github.com/samprager/E312IMUTesthttps://nam03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fsamprager%2FE312IMUTest&data=02%7C01%7Cilbeeman%40wpi.edu%7Ccef26121da504f6f64ef08d767c2b4d7%7C589c76f5ca1541f9884b55ec15a0672a%7C0%7C0%7C637091958270712195&sdata=3pQUZTIvh45iFS8enyrS1MPGDiscUBdpVv0mHpg5W0o%3D&reserved=0

See the README for RTIMULib installation instructions (the correct library is https://github.com/RPi-Distro/RTIMULibhttps://nam03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FRPi-Distro%2FRTIMULib&data=02%7C01%7Cilbeeman%40wpi.edu%7Ccef26121da504f6f64ef08d767c2b4d7%7C589c76f5ca1541f9884b55ec15a0672a%7C0%7C0%7C637091958270722198&sdata=Fw44bvF609L1W4chj1NfTr1dr42qRkkm71JnaqZRP98%3D&reserved=0).

Sam
On Nov 12, 2019, 12:30 PM -0800, Michael Dickens via USRP-users usrp-users@lists.ettus.com, wrote:
Hi Isaac - UHD itself provides no API to the IMU; never has. The RTIMULib, possibly an older version than current and assuming it can be built and installed on the E310, should be able to access the IMU to provide information from it. Note "possibly", "assuming", "should" ... clearly this isn't a majorly supported feature of the E310! Good luck! - MLD

On Tue, Nov 12, 2019 at 12:37 PM Beeman, Isaac L. via USRP-users <usrp-users@lists.ettus.commailto:usrp-users@lists.ettus.com> wrote:
Marcus and List,

I was hoping someone knew the steps involved to get the RTIMULib setup on the USRP. I tried building and installing both the RTIMULib and Linux folders, but the Linux one fails:

-- Found unsuitable Qt version "" from NOTFOUND
Qt QTOPENGL library not found.
Qt QTGUI library not found.
Qt QTCORE library not found.
CMake Error at RTIMULibGL/CMakeLists.txt:90 (QT4_ADD_RESOURCES):
Unknown CMake command "QT4_ADD_RESOURCES".
-- Configuring incomplete, errors occurred!

I figured that I can't install the RTIMULibDemo apps because they use a GUI, so I built and installed the RTIMULibDrive and RTIMULibCal individually. Only, when I try to run one of these apps I get the following error:

RTIMULibDrive: error while loading shared libraries: libRTIMULib.so.7: cannot open shared object file: No such file or directory

I don't get how to fix this. When I build and install the same apps on my host computer they run fine (but obviously can't find any IMU). Considering that any applications I write also use the same libraries, I feel like this is going to be an issue.

There isn't any documentation that I can find on the usage of the C++ library for RTIMULib. Just reading the code in RTIMULibDrive.cpp as an example, it doesn't seem too complicated, but it obviously is a generic program that isn't using the settings needed to connect to the MPU-9150.

If anyone knows how to get one of these apps (RTIMULibDrive or RTIMULibCal) working or how to use RTIMULib.h in connecting to the MPU-9150 over I2C, it would be much appreciated.

-Isaac Beeman

P.S. I also tried 'i2cdetect -y 0' to see if the MPU-9150 has the I2C address 0x69 like the schematics say, but I only get:

Warning: Can't use SMBus Quick Write command, will skip some addresses
0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:
10:
20:
30: -- -- -- -- -- -- -- --
40:
50: UU UU -- -- -- -- -- -- -- -- -- -- -- -- -- --
60:
70:

with nothing under 0x69. So that's weird.

-----Original Message-----
From: USRP-users <usrp-users-bounces@lists.ettus.commailto:usrp-users-bounces@lists.ettus.com> On Behalf Of Marcus D. Leech via USRP-users
Sent: Tuesday, November 12, 2019 10:35 AM
To: usrp-users@lists.ettus.commailto:usrp-users@lists.ettus.com
Subject: [EXT] Re: [USRP-users] Question about the IMU (MPU-9150) on the E310

On 11/12/2019 10:26 AM, Beeman, Isaac L. via USRP-users wrote:

Hi List,

I have recently started working with the E310/E312 and have gotten multichannel RX/TX and GPS working, but I can't figure out how to grab data off of the internal IMU/MPU-9150. I found some website (http://gnuradio.cn/en/html/support/en/page_usrp_e3x0.htmlhttps://nam03.safelinks.protection.outlook.com/?url=https%3A%2F%2Furldefense.proofpoint.com%2Fv2%2Furl%3Fu%3Dhttp-3A__gnuradio.cn_en_html_support_en_page-5Fusrp-5Fe3x0.html%26d%3DDwMFaQ%26c%3DclK7kQUTWtAVEOVIgvi0NU5BOUHhpN0H8p7CSfnc_gI%26r%3DopIuWAKmywF059tAs2i3Pg%26m%3DrGLxgINOMrS4sAfnjQ9mFF9r3gnmnGlRtI8Lfh1c_9g%26s%3DfT3qR8x5-PwNd6mUUK4W_0mJBVKoBdE53vAvmpAFz6M%26e%3D&data=02%7C01%7Cilbeeman%40wpi.edu%7Ccef26121da504f6f64ef08d767c2b4d7%7C589c76f5ca1541f9884b55ec15a0672a%7C0%7C0%7C637091958270722198&sdata=iwZjSXpqEEE1kJ%2FS9w%2FUrDgu6ogXQIsj38VxZwelHNE%3D&reserved=0) that said that the USRP image should contain RTIMULib applications with allow the user to test the IMU, but, unless I am looking in the wrong place, the current image for the E310 does not have any RTIMULib applications on it.

I want to know if there are any API calls or libraries that would allow me to do development with the IMU.

-Isaac Beeman


You might start here:

https://github.com/RTIMULibhttps://nam03.safelinks.protection.outlook.com/?url=https%3A%2F%2Furldefense.proofpoint.com%2Fv2%2Furl%3Fu%3Dhttps-3A__github.com_RTIMULib%26d%3DDwMFaQ%26c%3DclK7kQUTWtAVEOVIgvi0NU5BOUHhpN0H8p7CSfnc_gI%26r%3DopIuWAKmywF059tAs2i3Pg%26m%3DrGLxgINOMrS4sAfnjQ9mFF9r3gnmnGlRtI8Lfh1c_9g%26s%3DNIewtdUlqSB7hPPCxPdlvxHxo4oRBNidm-Df5qiTLFc%26e%3D&data=02%7C01%7Cilbeeman%40wpi.edu%7Ccef26121da504f6f64ef08d767c2b4d7%7C589c76f5ca1541f9884b55ec15a0672a%7C0%7C0%7C637091958270732197&sdata=fe55C%2BuNXLda1CKtlfeK0OvJbaAZvH5UnrFnlM61PI4%3D&reserved=0


USRP-users mailing list
USRP-users@lists.ettus.commailto:USRP-users@lists.ettus.com
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.comhttps://nam03.safelinks.protection.outlook.com/?url=https%3A%2F%2Furldefense.proofpoint.com%2Fv2%2Furl%3Fu%3Dhttp-3A__lists.ettus.com_mailman_listinfo_usrp-2Dusers-5Flists.ettus.com%26d%3DDwMFaQ%26c%3DclK7kQUTWtAVEOVIgvi0NU5BOUHhpN0H8p7CSfnc_gI%26r%3DopIuWAKmywF059tAs2i3Pg%26m%3DrGLxgINOMrS4sAfnjQ9mFF9r3gnmnGlRtI8Lfh1c_9g%26s%3D8wPPngBEnPiaAxtUARbH1opcSV3Pgih5Konyr2kf9-c%26e%3D&data=02%7C01%7Cilbeeman%40wpi.edu%7Ccef26121da504f6f64ef08d767c2b4d7%7C589c76f5ca1541f9884b55ec15a0672a%7C0%7C0%7C637091958270742195&sdata=lAzQHTWL%2FMinepF93tvzrtFVBGFLSQjCI8meyoB59tc%3D&reserved=0

--
Michael Dickens
Ettus Research Technical Support
Email: support@ettus.commailto:support@ettus.com
Web: https://ettus.com/https://nam03.safelinks.protection.outlook.com/?url=https%3A%2F%2Furldefense.proofpoint.com%2Fv2%2Furl%3Fu%3Dhttps-3A__ettus.com_%26d%3DDwMFaQ%26c%3DclK7kQUTWtAVEOVIgvi0NU5BOUHhpN0H8p7CSfnc_gI%26r%3DopIuWAKmywF059tAs2i3Pg%26m%3DrGLxgINOMrS4sAfnjQ9mFF9r3gnmnGlRtI8Lfh1c_9g%26s%3DFVmNPR5VsaNFSu2W3JXNVpqQiNivgYWHJAGCOGvRw3c%26e%3D&data=02%7C01%7Cilbeeman%40wpi.edu%7Ccef26121da504f6f64ef08d767c2b4d7%7C589c76f5ca1541f9884b55ec15a0672a%7C0%7C0%7C637091958270742195&sdata=XGZ%2BclKFjKQlvHy4ig5up44eShLfbBogAEy%2F1S9EFpA%3D&reserved=0


USRP-users mailing list
USRP-users@lists.ettus.com
https://urldefense.proofpoint.com/v2/url?u=http-3A__lists.ettus.com_mailman_listinfo_usrp-2Dusers-5Flists.ettus.com&d=DwICAg&c=clK7kQUTWtAVEOVIgvi0NU5BOUHhpN0H8p7CSfnc_gI&r=opIuWAKmywF059tAs2i3Pg&m=rGLxgINOMrS4sAfnjQ9mFF9r3gnmnGlRtI8Lfh1c_9g&s=8wPPngBEnPiaAxtUARbH1opcSV3Pgih5Konyr2kf9-c&e=

Hi Sam, Thanks for linking your simple example program for streaming IMU data. I finally got the RTIMULib built and installed on the E312, but when I run your program I get this output: root@ni-e31x-:~/usr/E312IMUTest/build# ./E312IMUTest Do something here with example option input: for example Settings file not found. Using defaults and creating settings file Failed to open I2C bus 1 Failed to open SPI bus 0, select 0 Failed to open SPI bus 0, select 1 No IMU detected Using fusion algorithm RTQF No IMU found Error intializing IMU Was there any other setup I needed to do before running it (i.e. creating a settings file for the radio)? Do you think using a newer version of UHD and the E312 image might cause this issue? Isaac Beeman ________________________________ From: Samuel Prager <sprager@usc.edu> Sent: Tuesday, November 12, 2019 5:50 PM To: Beeman, Isaac L. <ilbeeman@wpi.edu>; Michael Dickens <michael.dickens@ettus.com> Cc: usrp-users@lists.ettus.com <usrp-users@lists.ettus.com> Subject: [EXT] Re: [USRP-users] Question about the IMU (MPU-9150) on the E310 Hi Isaac, Here is a simple example program I wrote a while back for continuously streaming IMU data on the E310/E312. https://github.com/samprager/E312IMUTest<https://nam03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fsamprager%2FE312IMUTest&data=02%7C01%7Cilbeeman%40wpi.edu%7Ccef26121da504f6f64ef08d767c2b4d7%7C589c76f5ca1541f9884b55ec15a0672a%7C0%7C0%7C637091958270712195&sdata=3pQUZTIvh45iFS8enyrS1MPGDiscUBdpVv0mHpg5W0o%3D&reserved=0> See the README for RTIMULib installation instructions (the correct library is https://github.com/RPi-Distro/RTIMULib<https://nam03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FRPi-Distro%2FRTIMULib&data=02%7C01%7Cilbeeman%40wpi.edu%7Ccef26121da504f6f64ef08d767c2b4d7%7C589c76f5ca1541f9884b55ec15a0672a%7C0%7C0%7C637091958270722198&sdata=Fw44bvF609L1W4chj1NfTr1dr42qRkkm71JnaqZRP98%3D&reserved=0>). Sam On Nov 12, 2019, 12:30 PM -0800, Michael Dickens via USRP-users <usrp-users@lists.ettus.com>, wrote: Hi Isaac - UHD itself provides no API to the IMU; never has. The RTIMULib, possibly an older version than current and assuming it can be built and installed on the E310, should be able to access the IMU to provide information from it. Note "possibly", "assuming", "should" ... clearly this isn't a majorly supported feature of the E310! Good luck! - MLD On Tue, Nov 12, 2019 at 12:37 PM Beeman, Isaac L. via USRP-users <usrp-users@lists.ettus.com<mailto:usrp-users@lists.ettus.com>> wrote: Marcus and List, I was hoping someone knew the steps involved to get the RTIMULib setup on the USRP. I tried building and installing both the RTIMULib and Linux folders, but the Linux one fails: -- Found unsuitable Qt version "" from NOTFOUND Qt QTOPENGL library not found. Qt QTGUI library not found. Qt QTCORE library not found. CMake Error at RTIMULibGL/CMakeLists.txt:90 (QT4_ADD_RESOURCES): Unknown CMake command "QT4_ADD_RESOURCES". -- Configuring incomplete, errors occurred! I figured that I can't install the RTIMULibDemo apps because they use a GUI, so I built and installed the RTIMULibDrive and RTIMULibCal individually. Only, when I try to run one of these apps I get the following error: RTIMULibDrive: error while loading shared libraries: libRTIMULib.so.7: cannot open shared object file: No such file or directory I don't get how to fix this. When I build and install the same apps on my host computer they run fine (but obviously can't find any IMU). Considering that any applications I write also use the same libraries, I feel like this is going to be an issue. There isn't any documentation that I can find on the usage of the C++ library for RTIMULib. Just reading the code in RTIMULibDrive.cpp as an example, it doesn't seem too complicated, but it obviously is a generic program that isn't using the settings needed to connect to the MPU-9150. If anyone knows how to get one of these apps (RTIMULibDrive or RTIMULibCal) working or how to use RTIMULib.h in connecting to the MPU-9150 over I2C, it would be much appreciated. -Isaac Beeman P.S. I also tried 'i2cdetect -y 0' to see if the MPU-9150 has the I2C address 0x69 like the schematics say, but I only get: Warning: Can't use SMBus Quick Write command, will skip some addresses 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: 10: 20: 30: -- -- -- -- -- -- -- -- 40: 50: UU UU -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: 70: with nothing under 0x69. So that's weird. -----Original Message----- From: USRP-users <usrp-users-bounces@lists.ettus.com<mailto:usrp-users-bounces@lists.ettus.com>> On Behalf Of Marcus D. Leech via USRP-users Sent: Tuesday, November 12, 2019 10:35 AM To: usrp-users@lists.ettus.com<mailto:usrp-users@lists.ettus.com> Subject: [EXT] Re: [USRP-users] Question about the IMU (MPU-9150) on the E310 On 11/12/2019 10:26 AM, Beeman, Isaac L. via USRP-users wrote: > Hi List, > > I have recently started working with the E310/E312 and have gotten multichannel RX/TX and GPS working, but I can't figure out how to grab data off of the internal IMU/MPU-9150. I found some website (http://gnuradio.cn/en/html/support/en/page_usrp_e3x0.html<https://nam03.safelinks.protection.outlook.com/?url=https%3A%2F%2Furldefense.proofpoint.com%2Fv2%2Furl%3Fu%3Dhttp-3A__gnuradio.cn_en_html_support_en_page-5Fusrp-5Fe3x0.html%26d%3DDwMFaQ%26c%3DclK7kQUTWtAVEOVIgvi0NU5BOUHhpN0H8p7CSfnc_gI%26r%3DopIuWAKmywF059tAs2i3Pg%26m%3DrGLxgINOMrS4sAfnjQ9mFF9r3gnmnGlRtI8Lfh1c_9g%26s%3DfT3qR8x5-PwNd6mUUK4W_0mJBVKoBdE53vAvmpAFz6M%26e%3D&data=02%7C01%7Cilbeeman%40wpi.edu%7Ccef26121da504f6f64ef08d767c2b4d7%7C589c76f5ca1541f9884b55ec15a0672a%7C0%7C0%7C637091958270722198&sdata=iwZjSXpqEEE1kJ%2FS9w%2FUrDgu6ogXQIsj38VxZwelHNE%3D&reserved=0>) that said that the USRP image should contain RTIMULib applications with allow the user to test the IMU, but, unless I am looking in the wrong place, the current image for the E310 does not have any RTIMULib applications on it. > > I want to know if there are any API calls or libraries that would allow me to do development with the IMU. > > -Isaac Beeman > > _______________________________________________ You might start here: https://github.com/RTIMULib<https://nam03.safelinks.protection.outlook.com/?url=https%3A%2F%2Furldefense.proofpoint.com%2Fv2%2Furl%3Fu%3Dhttps-3A__github.com_RTIMULib%26d%3DDwMFaQ%26c%3DclK7kQUTWtAVEOVIgvi0NU5BOUHhpN0H8p7CSfnc_gI%26r%3DopIuWAKmywF059tAs2i3Pg%26m%3DrGLxgINOMrS4sAfnjQ9mFF9r3gnmnGlRtI8Lfh1c_9g%26s%3DNIewtdUlqSB7hPPCxPdlvxHxo4oRBNidm-Df5qiTLFc%26e%3D&data=02%7C01%7Cilbeeman%40wpi.edu%7Ccef26121da504f6f64ef08d767c2b4d7%7C589c76f5ca1541f9884b55ec15a0672a%7C0%7C0%7C637091958270732197&sdata=fe55C%2BuNXLda1CKtlfeK0OvJbaAZvH5UnrFnlM61PI4%3D&reserved=0> _______________________________________________ USRP-users mailing list USRP-users@lists.ettus.com<mailto:USRP-users@lists.ettus.com> http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com<https://nam03.safelinks.protection.outlook.com/?url=https%3A%2F%2Furldefense.proofpoint.com%2Fv2%2Furl%3Fu%3Dhttp-3A__lists.ettus.com_mailman_listinfo_usrp-2Dusers-5Flists.ettus.com%26d%3DDwMFaQ%26c%3DclK7kQUTWtAVEOVIgvi0NU5BOUHhpN0H8p7CSfnc_gI%26r%3DopIuWAKmywF059tAs2i3Pg%26m%3DrGLxgINOMrS4sAfnjQ9mFF9r3gnmnGlRtI8Lfh1c_9g%26s%3D8wPPngBEnPiaAxtUARbH1opcSV3Pgih5Konyr2kf9-c%26e%3D&data=02%7C01%7Cilbeeman%40wpi.edu%7Ccef26121da504f6f64ef08d767c2b4d7%7C589c76f5ca1541f9884b55ec15a0672a%7C0%7C0%7C637091958270742195&sdata=lAzQHTWL%2FMinepF93tvzrtFVBGFLSQjCI8meyoB59tc%3D&reserved=0> -- Michael Dickens Ettus Research Technical Support Email: support@ettus.com<mailto:support@ettus.com> Web: https://ettus.com/<https://nam03.safelinks.protection.outlook.com/?url=https%3A%2F%2Furldefense.proofpoint.com%2Fv2%2Furl%3Fu%3Dhttps-3A__ettus.com_%26d%3DDwMFaQ%26c%3DclK7kQUTWtAVEOVIgvi0NU5BOUHhpN0H8p7CSfnc_gI%26r%3DopIuWAKmywF059tAs2i3Pg%26m%3DrGLxgINOMrS4sAfnjQ9mFF9r3gnmnGlRtI8Lfh1c_9g%26s%3DFVmNPR5VsaNFSu2W3JXNVpqQiNivgYWHJAGCOGvRw3c%26e%3D&data=02%7C01%7Cilbeeman%40wpi.edu%7Ccef26121da504f6f64ef08d767c2b4d7%7C589c76f5ca1541f9884b55ec15a0672a%7C0%7C0%7C637091958270742195&sdata=XGZ%2BclKFjKQlvHy4ig5up44eShLfbBogAEy%2F1S9EFpA%3D&reserved=0> _______________________________________________ USRP-users mailing list USRP-users@lists.ettus.com https://urldefense.proofpoint.com/v2/url?u=http-3A__lists.ettus.com_mailman_listinfo_usrp-2Dusers-5Flists.ettus.com&d=DwICAg&c=clK7kQUTWtAVEOVIgvi0NU5BOUHhpN0H8p7CSfnc_gI&r=opIuWAKmywF059tAs2i3Pg&m=rGLxgINOMrS4sAfnjQ9mFF9r3gnmnGlRtI8Lfh1c_9g&s=8wPPngBEnPiaAxtUARbH1opcSV3Pgih5Konyr2kf9-c&e=
SP
Samuel Prager
Mon, Nov 18, 2019 5:29 PM

Hi Isaac,

I vaguely remember seeing this behavior on one of our e312s but it’s been a while. If I recall, the solution involved the RTIMULib.ini file (which should be created in /etc). Either the ini file was set to use the wrong SPI bus or the ini file was being saved in the wrong place or not at all. I would start there.

Sam
On Nov 18, 2019, 8:24 AM -0800, Beeman, Isaac L. , wrote:

Hi Sam,

Thanks for linking your simple example program for streaming IMU data. I finally got the RTIMULib built and installed on the E312, but when I run your program I get this output:

root@ni-e31x-:~/usr/E312IMUTest/build# ./E312IMUTest
Do something here with example option input: for example
Settings file not found. Using defaults and creating settings file
Failed to open I2C bus 1
Failed to open SPI bus 0, select 0
Failed to open SPI bus 0, select 1
No IMU detected
Using fusion algorithm RTQF
No IMU found
Error intializing IMU

Was there any other setup I needed to do before running it (i.e. creating a settings file for the radio)? Do you think using a newer version of UHD and the E312 image might cause this issue?

Isaac Beeman

From: Samuel Prager sprager@usc.edu
Sent: Tuesday, November 12, 2019 5:50 PM
To: Beeman, Isaac L. ilbeeman@wpi.edu; Michael Dickens michael.dickens@ettus.com
Cc: usrp-users@lists.ettus.com usrp-users@lists.ettus.com
Subject: [EXT] Re: [USRP-users] Question about the IMU (MPU-9150) on the E310

Hi Isaac,

Here is a simple example program I wrote a while back for continuously streaming IMU data on the E310/E312.

https://github.com/samprager/E312IMUTest

See the README for RTIMULib installation instructions (the correct library is https://github.com/RPi-Distro/RTIMULib).

Sam
On Nov 12, 2019, 12:30 PM -0800, Michael Dickens via USRP-users usrp-users@lists.ettus.com, wrote:

Hi Isaac - UHD itself provides no API to the IMU; never has. The RTIMULib, possibly an older version than current and assuming it can be built and installed on the E310, should be able to access the IMU to provide information from it. Note "possibly", "assuming", "should" ... clearly this isn't a majorly supported feature of the E310! Good luck! - MLD

On Tue, Nov 12, 2019 at 12:37 PM Beeman, Isaac L. via USRP-users usrp-users@lists.ettus.com wrote:

Marcus and List,

I was hoping someone knew the steps involved to get the RTIMULib setup on the USRP. I tried building and installing both the RTIMULib and Linux folders, but the Linux one fails:

-- Found unsuitable Qt version "" from NOTFOUND
Qt QTOPENGL library not found.
Qt QTGUI library not found.
Qt QTCORE library not found.
CMake Error at RTIMULibGL/CMakeLists.txt:90 (QT4_ADD_RESOURCES):
    Unknown CMake command "QT4_ADD_RESOURCES".
-- Configuring incomplete, errors occurred!

I figured that I can't install the RTIMULibDemo apps because they use a GUI, so I built and installed the RTIMULibDrive and RTIMULibCal individually. Only, when I try to run one of these apps I get the following error:

RTIMULibDrive: error while loading shared libraries: libRTIMULib.so.7: cannot open shared object file: No such file or directory

I don't get how to fix this. When I build and install the same apps on my host computer they run fine (but obviously can't find any IMU). Considering that any applications I write also use the same libraries, I feel like this is going to be an issue.

There isn't any documentation that I can find on the usage of the C++ library for RTIMULib. Just reading the code in RTIMULibDrive.cpp as an example, it doesn't seem too complicated, but it obviously is a generic program that isn't using the settings needed to connect to the MPU-9150.

If anyone knows how to get one of these apps (RTIMULibDrive or RTIMULibCal) working or how to use RTIMULib.h in connecting to the MPU-9150 over I2C, it would be much appreciated.

-Isaac Beeman

P.S. I also tried 'i2cdetect -y 0' to see if the MPU-9150 has the I2C address 0x69 like the schematics say, but I only get:

Warning: Can't use SMBus Quick Write command, will skip some addresses
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:
10:
20:
30: -- -- -- -- -- -- -- --
40:
50: UU UU -- -- -- -- -- -- -- -- -- -- -- -- -- --
60:
70:

with nothing under 0x69. So that's weird.

-----Original Message-----
From: USRP-users usrp-users-bounces@lists.ettus.com On Behalf Of Marcus D. Leech via USRP-users
Sent: Tuesday, November 12, 2019 10:35 AM
To: usrp-users@lists.ettus.com
Subject: [EXT] Re: [USRP-users] Question about the IMU (MPU-9150) on the E310

On 11/12/2019 10:26 AM, Beeman, Isaac L. via USRP-users wrote:

Hi List,

I have recently started working with the E310/E312 and have gotten multichannel RX/TX and GPS working, but I can't figure out how to grab data off of the internal IMU/MPU-9150. I found some website (http://gnuradio.cn/en/html/support/en/page_usrp_e3x0.html) that said that the USRP image should contain RTIMULib applications with allow the user to test the IMU, but, unless I am looking in the wrong place, the current image for the E310 does not have any RTIMULib applications on it.

I want to know if there are any API calls or libraries that would allow me to do development with the IMU.

-Isaac Beeman


Hi Isaac, I vaguely remember seeing this behavior on one of our e312s but it’s been a while. If I recall, the solution involved the RTIMULib.ini file (which should be created in /etc). Either the ini file was set to use the wrong SPI bus or the ini file was being saved in the wrong place or not at all. I would start there. Sam On Nov 18, 2019, 8:24 AM -0800, Beeman, Isaac L. , wrote: > Hi Sam, > > Thanks for linking your simple example program for streaming IMU data. I finally got the RTIMULib built and installed on the E312, but when I run your program I get this output: > > root@ni-e31x-:~/usr/E312IMUTest/build# ./E312IMUTest > Do something here with example option input: for example > Settings file not found. Using defaults and creating settings file > Failed to open I2C bus 1 > Failed to open SPI bus 0, select 0 > Failed to open SPI bus 0, select 1 > No IMU detected > Using fusion algorithm RTQF > No IMU found > Error intializing IMU > > Was there any other setup I needed to do before running it (i.e. creating a settings file for the radio)? Do you think using a newer version of UHD and the E312 image might cause this issue? > > Isaac Beeman > > From: Samuel Prager <sprager@usc.edu> > Sent: Tuesday, November 12, 2019 5:50 PM > To: Beeman, Isaac L. <ilbeeman@wpi.edu>; Michael Dickens <michael.dickens@ettus.com> > Cc: usrp-users@lists.ettus.com <usrp-users@lists.ettus.com> > Subject: [EXT] Re: [USRP-users] Question about the IMU (MPU-9150) on the E310 > > Hi Isaac, > > Here is a simple example program I wrote a while back for continuously streaming IMU data on the E310/E312. > > https://github.com/samprager/E312IMUTest > > See the README for RTIMULib installation instructions (the correct library is https://github.com/RPi-Distro/RTIMULib). > > Sam > On Nov 12, 2019, 12:30 PM -0800, Michael Dickens via USRP-users <usrp-users@lists.ettus.com>, wrote: > > Hi Isaac - UHD itself provides no API to the IMU; never has. The RTIMULib, possibly an older version than current and assuming it can be built and installed on the E310, should be able to access the IMU to provide information from it. Note "possibly", "assuming", "should" ... clearly this isn't a majorly supported feature of the E310! Good luck! - MLD > > > > On Tue, Nov 12, 2019 at 12:37 PM Beeman, Isaac L. via USRP-users <usrp-users@lists.ettus.com> wrote: > > > Marcus and List, > > > > > > I was hoping someone knew the steps involved to get the RTIMULib setup on the USRP. I tried building and installing both the RTIMULib and Linux folders, but the Linux one fails: > > > > > > > > > -- Found unsuitable Qt version "" from NOTFOUND > > > Qt QTOPENGL library not found. > > > Qt QTGUI library not found. > > > Qt QTCORE library not found. > > > CMake Error at RTIMULibGL/CMakeLists.txt:90 (QT4_ADD_RESOURCES): > > >     Unknown CMake command "QT4_ADD_RESOURCES". > > > -- Configuring incomplete, errors occurred! > > > > > > > > > I figured that I can't install the RTIMULibDemo apps because they use a GUI, so I built and installed the RTIMULibDrive and RTIMULibCal individually. Only, when I try to run one of these apps I get the following error: > > > > > > > > > RTIMULibDrive: error while loading shared libraries: libRTIMULib.so.7: cannot open shared object file: No such file or directory > > > > > > > > > I don't get how to fix this. When I build and install the same apps on my host computer they run fine (but obviously can't find any IMU). Considering that any applications I write also use the same libraries, I feel like this is going to be an issue. > > > > > > There isn't any documentation that I can find on the usage of the C++ library for RTIMULib. Just reading the code in RTIMULibDrive.cpp as an example, it doesn't seem too complicated, but it obviously is a generic program that isn't using the settings needed to connect to the MPU-9150. > > > > > > If anyone knows how to get one of these apps (RTIMULibDrive or RTIMULibCal) working or how to use RTIMULib.h in connecting to the MPU-9150 over I2C, it would be much appreciated. > > > > > > -Isaac Beeman > > > > > > > > > > > > P.S. I also tried 'i2cdetect -y 0' to see if the MPU-9150 has the I2C address 0x69 like the schematics say, but I only get: > > > > > > Warning: Can't use SMBus Quick Write command, will skip some addresses > > >      0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f > > > 00: > > > 10: > > > 20: > > > 30: -- -- -- -- -- -- -- -- > > > 40: > > > 50: UU UU -- -- -- -- -- -- -- -- -- -- -- -- -- -- > > > 60: > > > 70: > > > > > > with nothing under 0x69. So that's weird. > > > > > > > > > -----Original Message----- > > > From: USRP-users <usrp-users-bounces@lists.ettus.com> On Behalf Of Marcus D. Leech via USRP-users > > > Sent: Tuesday, November 12, 2019 10:35 AM > > > To: usrp-users@lists.ettus.com > > > Subject: [EXT] Re: [USRP-users] Question about the IMU (MPU-9150) on the E310 > > > > > > On 11/12/2019 10:26 AM, Beeman, Isaac L. via USRP-users wrote: > > > > Hi List, > > > > > > > > I have recently started working with the E310/E312 and have gotten multichannel RX/TX and GPS working, but I can't figure out how to grab data off of the internal IMU/MPU-9150. I found some website (http://gnuradio.cn/en/html/support/en/page_usrp_e3x0.html) that said that the USRP image should contain RTIMULib applications with allow the user to test the IMU, but, unless I am looking in the wrong place, the current image for the E310 does not have any RTIMULib applications on it. > > > > > > > > I want to know if there are any API calls or libraries that would allow me to do development with the IMU. > > > > > > > > -Isaac Beeman > > > > > > > > _______________________________________________ > > > > > > You might start here: > > > > > > https://github.com/RTIMULib > > > > > > _______________________________________________ > > > USRP-users mailing list > > > USRP-users@lists.ettus.com > > > http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com > > > > > > -- > > Michael Dickens > > Ettus Research Technical Support > > Email: support@ettus.com > > Web: https://ettus.com/ > > _______________________________________________ > > USRP-users mailing list > > USRP-users@lists.ettus.com > > https://urldefense.proofpoint.com/v2/url?u=http-3A__lists.ettus.com_mailman_listinfo_usrp-2Dusers-5Flists.ettus.com&d=DwICAg&c=clK7kQUTWtAVEOVIgvi0NU5BOUHhpN0H8p7CSfnc_gI&r=opIuWAKmywF059tAs2i3Pg&m=rGLxgINOMrS4sAfnjQ9mFF9r3gnmnGlRtI8Lfh1c_9g&s=8wPPngBEnPiaAxtUARbH1opcSV3Pgih5Konyr2kf9-c&e=
BI
Beeman, Isaac L.
Mon, Nov 18, 2019 5:30 PM

I figured I should modify the RTIMULib.ini file in /etc/ to at least point at the correct bus 0 instead of 1:

I2CBus=0

because the MPU-9150 should be at address 0x69 on bus 0. But got an output of

root@ni-e31x-:~/usr/E312IMUTest/build# ./E312IMUTest
Do something here with example option input: for example
Settings file /etc/RTIMULib.ini loaded
Using fusion algorithm RTQF
min/max compass calibration not in use
Ellipsoid compass calibration not in use
Accel calibration not in use
I2C read error from 0, 117 - Failed to read MPU9150 id
I2C read error from 0, 114 - Failed to read fifo count
Press Ctrl + C to stop streaming...
I2C read error from 0, 114 - Failed to read fifo count
I2C read error from 0, 114 - Failed to read fifo count
I2C read error from 0, 114 - Failed to read fifo count
...

At least I get an output now, even if it failed to work. I don't know how to fix this error.

I decided to do some investigating and found that the I2C device at 0x69 is not the MPU-9150, but the MPU-6050, which is one of the two chips on the MPU-9150.

root@ni-e31x-:~# cat /sys/class/i2c-dev/i2c-0/device/0-0069/name
mpu6050

There is no sign of the other chips: AK8975 (3-axis compass) at 0x0C or BMP085 (pressure sensor) at 0x77. Maybe I'm doing something wrong, but it seems as if something is more wrong than just the failed I2C read.

Isaac Beeman


From: Beeman, Isaac L. ilbeeman@wpi.edu
Sent: Monday, November 18, 2019 11:24 AM
To: Samuel Prager sprager@usc.edu; usrp-users@lists.ettus.com usrp-users@lists.ettus.com
Subject: Re: [EXT] Re: [USRP-users] Question about the IMU (MPU-9150) on the E310

Hi Sam,

Thanks for linking your simple example program for streaming IMU data. I finally got the RTIMULib built and installed on the E312, but when I run your program I get this output:

root@ni-e31x-:~/usr/E312IMUTest/build# ./E312IMUTest
Do something here with example option input: for example
Settings file not found. Using defaults and creating settings file
Failed to open I2C bus 1
Failed to open SPI bus 0, select 0
Failed to open SPI bus 0, select 1
No IMU detected
Using fusion algorithm RTQF
No IMU found
Error intializing IMU

Was there any other setup I needed to do before running it (i.e. creating a settings file for the radio)? Do you think using a newer version of UHD and the E312 image might cause this issue?

Isaac Beeman


From: Samuel Prager sprager@usc.edu
Sent: Tuesday, November 12, 2019 5:50 PM
To: Beeman, Isaac L. ilbeeman@wpi.edu; Michael Dickens michael.dickens@ettus.com
Cc: usrp-users@lists.ettus.com usrp-users@lists.ettus.com
Subject: [EXT] Re: [USRP-users] Question about the IMU (MPU-9150) on the E310

Hi Isaac,

Here is a simple example program I wrote a while back for continuously streaming IMU data on the E310/E312.

https://github.com/samprager/E312IMUTesthttps://nam03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fsamprager%2FE312IMUTest&data=02%7C01%7Cilbeeman%40wpi.edu%7Ccef26121da504f6f64ef08d767c2b4d7%7C589c76f5ca1541f9884b55ec15a0672a%7C0%7C0%7C637091958270712195&sdata=3pQUZTIvh45iFS8enyrS1MPGDiscUBdpVv0mHpg5W0o%3D&reserved=0

See the README for RTIMULib installation instructions (the correct library is https://github.com/RPi-Distro/RTIMULibhttps://nam03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FRPi-Distro%2FRTIMULib&data=02%7C01%7Cilbeeman%40wpi.edu%7Ccef26121da504f6f64ef08d767c2b4d7%7C589c76f5ca1541f9884b55ec15a0672a%7C0%7C0%7C637091958270722198&sdata=Fw44bvF609L1W4chj1NfTr1dr42qRkkm71JnaqZRP98%3D&reserved=0).

Sam
On Nov 12, 2019, 12:30 PM -0800, Michael Dickens via USRP-users usrp-users@lists.ettus.com, wrote:
Hi Isaac - UHD itself provides no API to the IMU; never has. The RTIMULib, possibly an older version than current and assuming it can be built and installed on the E310, should be able to access the IMU to provide information from it. Note "possibly", "assuming", "should" ... clearly this isn't a majorly supported feature of the E310! Good luck! - MLD

On Tue, Nov 12, 2019 at 12:37 PM Beeman, Isaac L. via USRP-users <usrp-users@lists.ettus.commailto:usrp-users@lists.ettus.com> wrote:
Marcus and List,

I was hoping someone knew the steps involved to get the RTIMULib setup on the USRP. I tried building and installing both the RTIMULib and Linux folders, but the Linux one fails:

-- Found unsuitable Qt version "" from NOTFOUND
Qt QTOPENGL library not found.
Qt QTGUI library not found.
Qt QTCORE library not found.
CMake Error at RTIMULibGL/CMakeLists.txt:90 (QT4_ADD_RESOURCES):
Unknown CMake command "QT4_ADD_RESOURCES".
-- Configuring incomplete, errors occurred!

I figured that I can't install the RTIMULibDemo apps because they use a GUI, so I built and installed the RTIMULibDrive and RTIMULibCal individually. Only, when I try to run one of these apps I get the following error:

RTIMULibDrive: error while loading shared libraries: libRTIMULib.so.7: cannot open shared object file: No such file or directory

I don't get how to fix this. When I build and install the same apps on my host computer they run fine (but obviously can't find any IMU). Considering that any applications I write also use the same libraries, I feel like this is going to be an issue.

There isn't any documentation that I can find on the usage of the C++ library for RTIMULib. Just reading the code in RTIMULibDrive.cpp as an example, it doesn't seem too complicated, but it obviously is a generic program that isn't using the settings needed to connect to the MPU-9150.

If anyone knows how to get one of these apps (RTIMULibDrive or RTIMULibCal) working or how to use RTIMULib.h in connecting to the MPU-9150 over I2C, it would be much appreciated.

-Isaac Beeman

P.S. I also tried 'i2cdetect -y 0' to see if the MPU-9150 has the I2C address 0x69 like the schematics say, but I only get:

Warning: Can't use SMBus Quick Write command, will skip some addresses
0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:
10:
20:
30: -- -- -- -- -- -- -- --
40:
50: UU UU -- -- -- -- -- -- -- -- -- -- -- -- -- --
60:
70:

with nothing under 0x69. So that's weird.

-----Original Message-----
From: USRP-users <usrp-users-bounces@lists.ettus.commailto:usrp-users-bounces@lists.ettus.com> On Behalf Of Marcus D. Leech via USRP-users
Sent: Tuesday, November 12, 2019 10:35 AM
To: usrp-users@lists.ettus.commailto:usrp-users@lists.ettus.com
Subject: [EXT] Re: [USRP-users] Question about the IMU (MPU-9150) on the E310

On 11/12/2019 10:26 AM, Beeman, Isaac L. via USRP-users wrote:

Hi List,

I have recently started working with the E310/E312 and have gotten multichannel RX/TX and GPS working, but I can't figure out how to grab data off of the internal IMU/MPU-9150. I found some website (http://gnuradio.cn/en/html/support/en/page_usrp_e3x0.htmlhttps://nam03.safelinks.protection.outlook.com/?url=https%3A%2F%2Furldefense.proofpoint.com%2Fv2%2Furl%3Fu%3Dhttp-3A__gnuradio.cn_en_html_support_en_page-5Fusrp-5Fe3x0.html%26d%3DDwMFaQ%26c%3DclK7kQUTWtAVEOVIgvi0NU5BOUHhpN0H8p7CSfnc_gI%26r%3DopIuWAKmywF059tAs2i3Pg%26m%3DrGLxgINOMrS4sAfnjQ9mFF9r3gnmnGlRtI8Lfh1c_9g%26s%3DfT3qR8x5-PwNd6mUUK4W_0mJBVKoBdE53vAvmpAFz6M%26e%3D&data=02%7C01%7Cilbeeman%40wpi.edu%7Ccef26121da504f6f64ef08d767c2b4d7%7C589c76f5ca1541f9884b55ec15a0672a%7C0%7C0%7C637091958270722198&sdata=iwZjSXpqEEE1kJ%2FS9w%2FUrDgu6ogXQIsj38VxZwelHNE%3D&reserved=0) that said that the USRP image should contain RTIMULib applications with allow the user to test the IMU, but, unless I am looking in the wrong place, the current image for the E310 does not have any RTIMULib applications on it.

I want to know if there are any API calls or libraries that would allow me to do development with the IMU.

-Isaac Beeman


You might start here:

https://github.com/RTIMULibhttps://nam03.safelinks.protection.outlook.com/?url=https%3A%2F%2Furldefense.proofpoint.com%2Fv2%2Furl%3Fu%3Dhttps-3A__github.com_RTIMULib%26d%3DDwMFaQ%26c%3DclK7kQUTWtAVEOVIgvi0NU5BOUHhpN0H8p7CSfnc_gI%26r%3DopIuWAKmywF059tAs2i3Pg%26m%3DrGLxgINOMrS4sAfnjQ9mFF9r3gnmnGlRtI8Lfh1c_9g%26s%3DNIewtdUlqSB7hPPCxPdlvxHxo4oRBNidm-Df5qiTLFc%26e%3D&data=02%7C01%7Cilbeeman%40wpi.edu%7Ccef26121da504f6f64ef08d767c2b4d7%7C589c76f5ca1541f9884b55ec15a0672a%7C0%7C0%7C637091958270732197&sdata=fe55C%2BuNXLda1CKtlfeK0OvJbaAZvH5UnrFnlM61PI4%3D&reserved=0


USRP-users mailing list
USRP-users@lists.ettus.commailto:USRP-users@lists.ettus.com
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.comhttps://nam03.safelinks.protection.outlook.com/?url=https%3A%2F%2Furldefense.proofpoint.com%2Fv2%2Furl%3Fu%3Dhttp-3A__lists.ettus.com_mailman_listinfo_usrp-2Dusers-5Flists.ettus.com%26d%3DDwMFaQ%26c%3DclK7kQUTWtAVEOVIgvi0NU5BOUHhpN0H8p7CSfnc_gI%26r%3DopIuWAKmywF059tAs2i3Pg%26m%3DrGLxgINOMrS4sAfnjQ9mFF9r3gnmnGlRtI8Lfh1c_9g%26s%3D8wPPngBEnPiaAxtUARbH1opcSV3Pgih5Konyr2kf9-c%26e%3D&data=02%7C01%7Cilbeeman%40wpi.edu%7Ccef26121da504f6f64ef08d767c2b4d7%7C589c76f5ca1541f9884b55ec15a0672a%7C0%7C0%7C637091958270742195&sdata=lAzQHTWL%2FMinepF93tvzrtFVBGFLSQjCI8meyoB59tc%3D&reserved=0

--
Michael Dickens
Ettus Research Technical Support
Email: support@ettus.commailto:support@ettus.com
Web: https://ettus.com/https://nam03.safelinks.protection.outlook.com/?url=https%3A%2F%2Furldefense.proofpoint.com%2Fv2%2Furl%3Fu%3Dhttps-3A__ettus.com_%26d%3DDwMFaQ%26c%3DclK7kQUTWtAVEOVIgvi0NU5BOUHhpN0H8p7CSfnc_gI%26r%3DopIuWAKmywF059tAs2i3Pg%26m%3DrGLxgINOMrS4sAfnjQ9mFF9r3gnmnGlRtI8Lfh1c_9g%26s%3DFVmNPR5VsaNFSu2W3JXNVpqQiNivgYWHJAGCOGvRw3c%26e%3D&data=02%7C01%7Cilbeeman%40wpi.edu%7Ccef26121da504f6f64ef08d767c2b4d7%7C589c76f5ca1541f9884b55ec15a0672a%7C0%7C0%7C637091958270742195&sdata=XGZ%2BclKFjKQlvHy4ig5up44eShLfbBogAEy%2F1S9EFpA%3D&reserved=0


USRP-users mailing list
USRP-users@lists.ettus.com
https://urldefense.proofpoint.com/v2/url?u=http-3A__lists.ettus.com_mailman_listinfo_usrp-2Dusers-5Flists.ettus.com&d=DwICAg&c=clK7kQUTWtAVEOVIgvi0NU5BOUHhpN0H8p7CSfnc_gI&r=opIuWAKmywF059tAs2i3Pg&m=rGLxgINOMrS4sAfnjQ9mFF9r3gnmnGlRtI8Lfh1c_9g&s=8wPPngBEnPiaAxtUARbH1opcSV3Pgih5Konyr2kf9-c&e=

I figured I should modify the RTIMULib.ini file in /etc/ to at least point at the correct bus 0 instead of 1: I2CBus=0 because the MPU-9150 should be at address 0x69 on bus 0. But got an output of root@ni-e31x-:~/usr/E312IMUTest/build# ./E312IMUTest Do something here with example option input: for example Settings file /etc/RTIMULib.ini loaded Using fusion algorithm RTQF min/max compass calibration not in use Ellipsoid compass calibration not in use Accel calibration not in use I2C read error from 0, 117 - Failed to read MPU9150 id I2C read error from 0, 114 - Failed to read fifo count Press Ctrl + C to stop streaming... I2C read error from 0, 114 - Failed to read fifo count I2C read error from 0, 114 - Failed to read fifo count I2C read error from 0, 114 - Failed to read fifo count ... At least I get an output now, even if it failed to work. I don't know how to fix this error. I decided to do some investigating and found that the I2C device at 0x69 is not the MPU-9150, but the MPU-6050, which is one of the two chips on the MPU-9150. root@ni-e31x-:~# cat /sys/class/i2c-dev/i2c-0/device/0-0069/name mpu6050 There is no sign of the other chips: AK8975 (3-axis compass) at 0x0C or BMP085 (pressure sensor) at 0x77. Maybe I'm doing something wrong, but it seems as if something is more wrong than just the failed I2C read. Isaac Beeman ________________________________ From: Beeman, Isaac L. <ilbeeman@wpi.edu> Sent: Monday, November 18, 2019 11:24 AM To: Samuel Prager <sprager@usc.edu>; usrp-users@lists.ettus.com <usrp-users@lists.ettus.com> Subject: Re: [EXT] Re: [USRP-users] Question about the IMU (MPU-9150) on the E310 Hi Sam, Thanks for linking your simple example program for streaming IMU data. I finally got the RTIMULib built and installed on the E312, but when I run your program I get this output: root@ni-e31x-:~/usr/E312IMUTest/build# ./E312IMUTest Do something here with example option input: for example Settings file not found. Using defaults and creating settings file Failed to open I2C bus 1 Failed to open SPI bus 0, select 0 Failed to open SPI bus 0, select 1 No IMU detected Using fusion algorithm RTQF No IMU found Error intializing IMU Was there any other setup I needed to do before running it (i.e. creating a settings file for the radio)? Do you think using a newer version of UHD and the E312 image might cause this issue? Isaac Beeman ________________________________ From: Samuel Prager <sprager@usc.edu> Sent: Tuesday, November 12, 2019 5:50 PM To: Beeman, Isaac L. <ilbeeman@wpi.edu>; Michael Dickens <michael.dickens@ettus.com> Cc: usrp-users@lists.ettus.com <usrp-users@lists.ettus.com> Subject: [EXT] Re: [USRP-users] Question about the IMU (MPU-9150) on the E310 Hi Isaac, Here is a simple example program I wrote a while back for continuously streaming IMU data on the E310/E312. https://github.com/samprager/E312IMUTest<https://nam03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fsamprager%2FE312IMUTest&data=02%7C01%7Cilbeeman%40wpi.edu%7Ccef26121da504f6f64ef08d767c2b4d7%7C589c76f5ca1541f9884b55ec15a0672a%7C0%7C0%7C637091958270712195&sdata=3pQUZTIvh45iFS8enyrS1MPGDiscUBdpVv0mHpg5W0o%3D&reserved=0> See the README for RTIMULib installation instructions (the correct library is https://github.com/RPi-Distro/RTIMULib<https://nam03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FRPi-Distro%2FRTIMULib&data=02%7C01%7Cilbeeman%40wpi.edu%7Ccef26121da504f6f64ef08d767c2b4d7%7C589c76f5ca1541f9884b55ec15a0672a%7C0%7C0%7C637091958270722198&sdata=Fw44bvF609L1W4chj1NfTr1dr42qRkkm71JnaqZRP98%3D&reserved=0>). Sam On Nov 12, 2019, 12:30 PM -0800, Michael Dickens via USRP-users <usrp-users@lists.ettus.com>, wrote: Hi Isaac - UHD itself provides no API to the IMU; never has. The RTIMULib, possibly an older version than current and assuming it can be built and installed on the E310, should be able to access the IMU to provide information from it. Note "possibly", "assuming", "should" ... clearly this isn't a majorly supported feature of the E310! Good luck! - MLD On Tue, Nov 12, 2019 at 12:37 PM Beeman, Isaac L. via USRP-users <usrp-users@lists.ettus.com<mailto:usrp-users@lists.ettus.com>> wrote: Marcus and List, I was hoping someone knew the steps involved to get the RTIMULib setup on the USRP. I tried building and installing both the RTIMULib and Linux folders, but the Linux one fails: -- Found unsuitable Qt version "" from NOTFOUND Qt QTOPENGL library not found. Qt QTGUI library not found. Qt QTCORE library not found. CMake Error at RTIMULibGL/CMakeLists.txt:90 (QT4_ADD_RESOURCES): Unknown CMake command "QT4_ADD_RESOURCES". -- Configuring incomplete, errors occurred! I figured that I can't install the RTIMULibDemo apps because they use a GUI, so I built and installed the RTIMULibDrive and RTIMULibCal individually. Only, when I try to run one of these apps I get the following error: RTIMULibDrive: error while loading shared libraries: libRTIMULib.so.7: cannot open shared object file: No such file or directory I don't get how to fix this. When I build and install the same apps on my host computer they run fine (but obviously can't find any IMU). Considering that any applications I write also use the same libraries, I feel like this is going to be an issue. There isn't any documentation that I can find on the usage of the C++ library for RTIMULib. Just reading the code in RTIMULibDrive.cpp as an example, it doesn't seem too complicated, but it obviously is a generic program that isn't using the settings needed to connect to the MPU-9150. If anyone knows how to get one of these apps (RTIMULibDrive or RTIMULibCal) working or how to use RTIMULib.h in connecting to the MPU-9150 over I2C, it would be much appreciated. -Isaac Beeman P.S. I also tried 'i2cdetect -y 0' to see if the MPU-9150 has the I2C address 0x69 like the schematics say, but I only get: Warning: Can't use SMBus Quick Write command, will skip some addresses 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: 10: 20: 30: -- -- -- -- -- -- -- -- 40: 50: UU UU -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: 70: with nothing under 0x69. So that's weird. -----Original Message----- From: USRP-users <usrp-users-bounces@lists.ettus.com<mailto:usrp-users-bounces@lists.ettus.com>> On Behalf Of Marcus D. Leech via USRP-users Sent: Tuesday, November 12, 2019 10:35 AM To: usrp-users@lists.ettus.com<mailto:usrp-users@lists.ettus.com> Subject: [EXT] Re: [USRP-users] Question about the IMU (MPU-9150) on the E310 On 11/12/2019 10:26 AM, Beeman, Isaac L. via USRP-users wrote: > Hi List, > > I have recently started working with the E310/E312 and have gotten multichannel RX/TX and GPS working, but I can't figure out how to grab data off of the internal IMU/MPU-9150. I found some website (http://gnuradio.cn/en/html/support/en/page_usrp_e3x0.html<https://nam03.safelinks.protection.outlook.com/?url=https%3A%2F%2Furldefense.proofpoint.com%2Fv2%2Furl%3Fu%3Dhttp-3A__gnuradio.cn_en_html_support_en_page-5Fusrp-5Fe3x0.html%26d%3DDwMFaQ%26c%3DclK7kQUTWtAVEOVIgvi0NU5BOUHhpN0H8p7CSfnc_gI%26r%3DopIuWAKmywF059tAs2i3Pg%26m%3DrGLxgINOMrS4sAfnjQ9mFF9r3gnmnGlRtI8Lfh1c_9g%26s%3DfT3qR8x5-PwNd6mUUK4W_0mJBVKoBdE53vAvmpAFz6M%26e%3D&data=02%7C01%7Cilbeeman%40wpi.edu%7Ccef26121da504f6f64ef08d767c2b4d7%7C589c76f5ca1541f9884b55ec15a0672a%7C0%7C0%7C637091958270722198&sdata=iwZjSXpqEEE1kJ%2FS9w%2FUrDgu6ogXQIsj38VxZwelHNE%3D&reserved=0>) that said that the USRP image should contain RTIMULib applications with allow the user to test the IMU, but, unless I am looking in the wrong place, the current image for the E310 does not have any RTIMULib applications on it. > > I want to know if there are any API calls or libraries that would allow me to do development with the IMU. > > -Isaac Beeman > > _______________________________________________ You might start here: https://github.com/RTIMULib<https://nam03.safelinks.protection.outlook.com/?url=https%3A%2F%2Furldefense.proofpoint.com%2Fv2%2Furl%3Fu%3Dhttps-3A__github.com_RTIMULib%26d%3DDwMFaQ%26c%3DclK7kQUTWtAVEOVIgvi0NU5BOUHhpN0H8p7CSfnc_gI%26r%3DopIuWAKmywF059tAs2i3Pg%26m%3DrGLxgINOMrS4sAfnjQ9mFF9r3gnmnGlRtI8Lfh1c_9g%26s%3DNIewtdUlqSB7hPPCxPdlvxHxo4oRBNidm-Df5qiTLFc%26e%3D&data=02%7C01%7Cilbeeman%40wpi.edu%7Ccef26121da504f6f64ef08d767c2b4d7%7C589c76f5ca1541f9884b55ec15a0672a%7C0%7C0%7C637091958270732197&sdata=fe55C%2BuNXLda1CKtlfeK0OvJbaAZvH5UnrFnlM61PI4%3D&reserved=0> _______________________________________________ USRP-users mailing list USRP-users@lists.ettus.com<mailto:USRP-users@lists.ettus.com> http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com<https://nam03.safelinks.protection.outlook.com/?url=https%3A%2F%2Furldefense.proofpoint.com%2Fv2%2Furl%3Fu%3Dhttp-3A__lists.ettus.com_mailman_listinfo_usrp-2Dusers-5Flists.ettus.com%26d%3DDwMFaQ%26c%3DclK7kQUTWtAVEOVIgvi0NU5BOUHhpN0H8p7CSfnc_gI%26r%3DopIuWAKmywF059tAs2i3Pg%26m%3DrGLxgINOMrS4sAfnjQ9mFF9r3gnmnGlRtI8Lfh1c_9g%26s%3D8wPPngBEnPiaAxtUARbH1opcSV3Pgih5Konyr2kf9-c%26e%3D&data=02%7C01%7Cilbeeman%40wpi.edu%7Ccef26121da504f6f64ef08d767c2b4d7%7C589c76f5ca1541f9884b55ec15a0672a%7C0%7C0%7C637091958270742195&sdata=lAzQHTWL%2FMinepF93tvzrtFVBGFLSQjCI8meyoB59tc%3D&reserved=0> -- Michael Dickens Ettus Research Technical Support Email: support@ettus.com<mailto:support@ettus.com> Web: https://ettus.com/<https://nam03.safelinks.protection.outlook.com/?url=https%3A%2F%2Furldefense.proofpoint.com%2Fv2%2Furl%3Fu%3Dhttps-3A__ettus.com_%26d%3DDwMFaQ%26c%3DclK7kQUTWtAVEOVIgvi0NU5BOUHhpN0H8p7CSfnc_gI%26r%3DopIuWAKmywF059tAs2i3Pg%26m%3DrGLxgINOMrS4sAfnjQ9mFF9r3gnmnGlRtI8Lfh1c_9g%26s%3DFVmNPR5VsaNFSu2W3JXNVpqQiNivgYWHJAGCOGvRw3c%26e%3D&data=02%7C01%7Cilbeeman%40wpi.edu%7Ccef26121da504f6f64ef08d767c2b4d7%7C589c76f5ca1541f9884b55ec15a0672a%7C0%7C0%7C637091958270742195&sdata=XGZ%2BclKFjKQlvHy4ig5up44eShLfbBogAEy%2F1S9EFpA%3D&reserved=0> _______________________________________________ USRP-users mailing list USRP-users@lists.ettus.com https://urldefense.proofpoint.com/v2/url?u=http-3A__lists.ettus.com_mailman_listinfo_usrp-2Dusers-5Flists.ettus.com&d=DwICAg&c=clK7kQUTWtAVEOVIgvi0NU5BOUHhpN0H8p7CSfnc_gI&r=opIuWAKmywF059tAs2i3Pg&m=rGLxgINOMrS4sAfnjQ9mFF9r3gnmnGlRtI8Lfh1c_9g&s=8wPPngBEnPiaAxtUARbH1opcSV3Pgih5Konyr2kf9-c&e=
SP
Samuel Prager
Mon, Nov 18, 2019 7:03 PM

Hi Isaac,

Yes this is exactly the error we had seen before. I was able to reproduce these errors on our E312.

For some reason it looks like the auto discover isn’t working properly (not finding correct device type and not assigning correct I2c bus or I2CSlaveAddress).

You should be able to fix the issue by following these steps:

  1. root@ettus-e3xx-sg3:~# mv /etc/RTIMULib.ini /etc/RTIMULib.ini.backup

This will force creation of a new /etc/RTIMULib.ini file

  1. Now run the program. You should see the following output (as before):

root@ettus-e3xx-sg3:~# E312IMUTest
Do something here with example option input: for example
Settings file not found. Using defaults and creating settings file
Failed to open I2C bus 1
Failed to open SPI bus 0, select 0
No IMU detected
Using fusion algorithm RTQF
No IMU found

  1. In the newly created /etc/RTIMULib.ini file make the following changes:

IMUType=2

Fusion type type -

  0 - Null. Use if only sensor data required without fusion

  1 - Kalman STATE4

  2 - RTQF

FusionType=2

Is bus I2C: 'true' for I2C, 'false' for SPI

BusIsI2C=true

I2C Bus (between 0 and 7)

I2CBus=0

SPI Bus (between 0 and 7)

SPIBus=0

SPI select (between 0 and 1)

SPISelect=0

SPI Speed in Hz

SPISpeed=500000

I2C slave address (filled in automatically by auto discover)

I2CSlaveAddress=105

  1. You should now be able to run the program successfully (If you get I2C read errors, try restarting the E310. Everything should work afterwards).

For reference, I have included my complete /etc/RTIMULib.ini file:

root@ettus-e3xx-sg3:~# cat /etc/RTIMULib.ini

RTIMULib settings file

General settings

IMU type -

  0 = Auto discover

  1 = Null (used when data is provided from a remote IMU

  2 = InvenSense MPU-9150

  3 = STM L3GD20H + LSM303D

  4 = STM L3GD20 + LSM303DLHC

  5 = STM LSM9DS0

  6 = STM LSM9DS1

  7 = InvenSense MPU-9250

  8 = STM L3GD20H + LSM303DLHC

  9 = Bosch BMX055

  10 = Bosch BNX055

IMUType=2

Fusion type type -

  0 - Null. Use if only sensor data required without fusion

  1 - Kalman STATE4

  2 - RTQF

FusionType=2

Is bus I2C: 'true' for I2C, 'false' for SPI

BusIsI2C=true

I2C Bus (between 0 and 7)

I2CBus=0

SPI Bus (between 0 and 7)

SPIBus=0

SPI select (between 0 and 1)

SPISelect=0

SPI Speed in Hz

SPISpeed=500000

I2C slave address (filled in automatically by auto discover)

I2CSlaveAddress=105

IMU axis rotation - see RTIMU.h for details

AxisRotation=0

Pressure sensor type -

  0 = Auto discover

  1 = Null (no hardware or don't use)

  2 = BMP180

  3 = LPS25H

  4 = MS5611

  5 = MS5637

PressureType=0

I2C pressure sensor address (filled in automatically by auto discover)

I2CPressureAddress=0

Humidity sensor type -

  0 = Auto discover

  1 = Null (no hardware or don't use)

  2 = HTS221

  3 = HTU21D

HumidityType=0

I2C humidity sensor address (filled in automatically by auto discover)

I2CHumidityAddress=0

Compass calibration settings

CompassCalValid=false
CompassCalMinX=0.000000
CompassCalMinY=0.000000
CompassCalMinZ=0.000000
CompassCalMaxX=0.000000
CompassCalMaxY=0.000000
CompassCalMaxZ=0.000000

Compass adjustment settings

Compass declination is in radians and is subtracted from calculated heading

compassAdjDeclination=0.000000

Compass ellipsoid calibration

compassCalEllipsoidValid=false
compassCalOffsetX=0.000000
compassCalOffsetY=0.000000
compassCalOffsetZ=0.000000
compassCalCorr11=1.000000
compassCalCorr12=0.000000
compassCalCorr13=0.000000
compassCalCorr21=0.000000
compassCalCorr22=1.000000
compassCalCorr23=0.000000
compassCalCorr31=0.000000
compassCalCorr32=0.000000
compassCalCorr33=1.000000

Accel calibration

AccelCalValid=false
AccelCalMinX=0.000000
AccelCalMinY=0.000000
AccelCalMinZ=0.000000
AccelCalMaxX=0.000000
AccelCalMaxY=0.000000
AccelCalMaxZ=0.000000

Saved gyro bias data

GyroBiasValid=true
GyroBiasX=-0.031280
GyroBiasY=-0.017285
GyroBiasZ=-0.020221

MPU-9150 settings

Gyro sample rate (between 5Hz and 1000Hz)

MPU9150GyroAccelSampleRate=900

Compass sample rate (between 1Hz and 100Hz)

MPU9150CompassSampleRate=80

Gyro/accel low pass filter -

  0 - gyro: 256Hz, accel: 260Hz

  1 - gyro: 188Hz, accel: 184Hz

  2 - gyro: 98Hz, accel: 98Hz

  3 - gyro: 42Hz, accel: 44Hz

  4 - gyro: 20Hz, accel: 21Hz

  5 - gyro: 10Hz, accel: 10Hz

  6 - gyro: 5Hz, accel: 5Hz

MPU9150GyroAccelLpf=4

Gyro full scale range -

  0  - +/- 250 degress per second

  8  - +/- 500 degress per second

  16 - +/- 1000 degress per second

  24 - +/- 2000 degress per second

MPU9150GyroFSR=8

Accel full scale range -

  0  - +/- 2g

  8  - +/- 4g

  16 - +/- 8g

  24 - +/- 16g

MPU9150AccelFSR=0

MPU-9250 settings

Gyro sample rate (between 5Hz and 1000Hz plus 8000Hz and 32000Hz)

MPU9250GyroAccelSampleRate=80

Compass sample rate (between 1Hz and 100Hz)

MPU9250CompassSampleRate=40

Gyro low pass filter -

  0x11 - 8800Hz, 0.64mS delay

  0x10 - 3600Hz, 0.11mS delay

  0x00 - 250Hz, 0.97mS delay

  0x01 - 184Hz, 2.9mS delay

  0x02 - 92Hz, 3.9mS delay

  0x03 - 41Hz, 5.9mS delay

  0x04 - 20Hz, 9.9mS delay

  0x05 - 10Hz, 17.85mS delay

  0x06 - 5Hz, 33.48mS delay

MPU9250GyroLpf=3

Accel low pass filter -

  0x08 - 1130Hz, 0.75mS delay

  0x00 - 460Hz, 1.94mS delay

  0x01 - 184Hz, 5.80mS delay

  0x02 - 92Hz, 7.80mS delay

  0x03 - 41Hz, 11.80mS delay

  0x04 - 20Hz, 19.80mS delay

  0x05 - 10Hz, 35.70mS delay

  0x06 - 5Hz, 66.96mS delay

MPU9250AccelLpf=3

Gyro full scale range -

  0  - +/- 250 degress per second

  8  - +/- 500 degress per second

  16 - +/- 1000 degress per second

  24 - +/- 2000 degress per second

MPU9250GyroFSR=16

Accel full scale range -

  0  - +/- 2g

  8  - +/- 4g

  16 - +/- 8g

  24 - +/- 16g

MPU9250AccelFSR=16

L3GD20H + LSM303D settings

Gyro sample rate -

  0 = 12.5Hz

  1 = 25Hz

  2 = 50Hz

  3 = 100Hz

  4 = 200Hz

  5 = 400Hz

  6 = 800Hz

GD20HM303DGyroSampleRate=2

Gyro full scale range -

  0 = 245 degrees per second

  1 = 500 degrees per second

  2 = 2000 degrees per second

GD20HM303DGyroFsr=1

Gyro high pass filter -

  0 - 9 but see the L3GD20H manual for details

GD20HM303DGyroHpf=4

Gyro bandwidth -

  0 - 3 but see the L3GD20H manual for details

GD20HM303DGyroBW=1

Accel sample rate -

  1 = 3.125Hz

  2 = 6.25Hz

  3 = 12.5Hz

  4 = 25Hz

  5 = 50Hz

  6 = 100Hz

  7 = 200Hz

  8 = 400Hz

  9 = 800Hz

  10 = 1600Hz

GD20HM303DAccelSampleRate=5

Accel full scale range -

  0 = +/- 2g

  1 = +/- 4g

  2 = +/- 6g

  3 = +/- 8g

  4 = +/- 16g

GD20HM303DAccelFsr=3

Accel low pass filter -

  0 = 773Hz

  1 = 194Hz

  2 = 362Hz

  3 = 50Hz

GD20HM303DAccelLpf=3

Compass sample rate -

  0 = 3.125Hz

  1 = 6.25Hz

  2 = 12.5Hz

  3 = 25Hz

  4 = 50Hz

  5 = 100Hz

GD20HM303DCompassSampleRate=4

Compass full scale range -

  0 = +/- 200 uT

  1 = +/- 400 uT

  2 = +/- 800 uT

  3 = +/- 1200 uT

GD20HM303DCompassFsr=0

L3GD20 + LSM303DLHC settings

Gyro sample rate -

  0 = 95z

  1 = 190Hz

  2 = 380Hz

  3 = 760Hz

GD20M303DLHCGyroSampleRate=0

Gyro full scale range -

  0 = 250 degrees per second

  1 = 500 degrees per second

  2 = 2000 degrees per second

GD20M303DLHCGyroFsr=1

Gyro high pass filter -

  0 - 9 but see the L3GD20 manual for details

GD20M303DLHCGyroHpf=4

Gyro bandwidth -

  0 - 3 but see the L3GD20 manual for details

GD20M303DLHCGyroBW=1

Accel sample rate -

  1 = 1Hz

  2 = 10Hz

  3 = 25Hz

  4 = 50Hz

  5 = 100Hz

  6 = 200Hz

  7 = 400Hz

GD20M303DLHCAccelSampleRate=4

Accel full scale range -

  0 = +/- 2g

  1 = +/- 4g

  2 = +/- 8g

  3 = +/- 16g

GD20M303DLHCAccelFsr=2

Compass sample rate -

  0 = 0.75Hz

  1 = 1.5Hz

  2 = 3Hz

  3 = 7.5Hz

  4 = 15Hz

  5 = 30Hz

  6 = 75Hz

  7 = 220Hz

GD20M303DLHCCompassSampleRate=5

Compass full scale range -

  1 = +/- 130 uT

  2 = +/- 190 uT

  3 = +/- 250 uT

  4 = +/- 400 uT

  5 = +/- 470 uT

  6 = +/- 560 uT

  7 = +/- 810 uT

GD20M303DLHCCompassFsr=1

L3GD20H + LSM303DLHC settings

Gyro sample rate -

  0 = 12.5Hz

  1 = 25Hz

  2 = 50Hz

  3 = 100Hz

  4 = 200Hz

  5 = 400Hz

  6 = 800Hz

GD20HM303DLHCGyroSampleRate=2

Gyro full scale range -

  0 = 245 degrees per second

  1 = 500 degrees per second

  2 = 2000 degrees per second

GD20HM303DLHCGyroFsr=1

Gyro high pass filter -

  0 - 9 but see the L3GD20H manual for details

GD20HM303DLHCGyroHpf=4

Gyro bandwidth -

  0 - 3 but see the L3GD20H manual for details

GD20HM303DLHCGyroBW=1

Accel sample rate -

  1 = 1Hz

  2 = 10Hz

  3 = 25Hz

  4 = 50Hz

  5 = 100Hz

  6 = 200Hz

  7 = 400Hz

GD20HM303DLHCAccelSampleRate=4

Accel full scale range -

  0 = +/- 2g

  1 = +/- 4g

  2 = +/- 8g

  3 = +/- 16g

GD20HM303DLHCAccelFsr=2

Compass sample rate -

  0 = 0.75Hz

  1 = 1.5Hz

  2 = 3Hz

  3 = 7.5Hz

  4 = 15Hz

  5 = 30Hz

  6 = 75Hz

  7 = 220Hz

GD20HM303DLHCCompassSampleRate=5

Compass full scale range -

  1 = +/- 130 uT

  2 = +/- 190 uT

  3 = +/- 250 uT

  4 = +/- 400 uT

  5 = +/- 470 uT

  6 = +/- 560 uT

  7 = +/- 810 uT

GD20HM303DLHCCompassFsr=1

LSM9DS0 settings

Gyro sample rate -

  0 = 95z

  1 = 190Hz

  2 = 380Hz

  3 = 760Hz

LSM9DS0GyroSampleRate=0

Gyro full scale range -

  0 = 250 degrees per second

  1 = 500 degrees per second

  2 = 2000 degrees per second

LSM9DS0GyroFsr=1

Gyro high pass filter -

  0 - 9 but see the LSM9DS0 manual for details

LSM9DS0GyroHpf=4

Gyro bandwidth -

  0 - 3 but see the LSM9DS0 manual for details

LSM9DS0GyroBW=1

Accel sample rate -

  1 = 3.125Hz

  2 = 6.25Hz

  3 = 12.5Hz

  4 = 25Hz

  5 = 50Hz

  6 = 100Hz

  7 = 200Hz

  8 = 400Hz

  9 = 800Hz

  10 = 1600Hz

LSM9DS0AccelSampleRate=5

Accel full scale range -

  0 = +/- 2g

  1 = +/- 4g

  2 = +/- 6g

  3 = +/- 8g

  4 = +/- 16g

LSM9DS0AccelFsr=3

Accel low pass filter -

  0 = 773Hz

  1 = 194Hz

  2 = 362Hz

  3 = 50Hz

LSM9DS0AccelLpf=3

Compass sample rate -

  0 = 3.125Hz

  1 = 6.25Hz

  2 = 12.5Hz

  3 = 25Hz

  4 = 50Hz

  5 = 100Hz

LSM9DS0CompassSampleRate=4

Compass full scale range -

  0 = +/- 200 uT

  1 = +/- 400 uT

  2 = +/- 800 uT

  3 = +/- 1200 uT

LSM9DS0CompassFsr=0

LSM9DS1 settings

Gyro sample rate -

  0 = 95Hz

  1 = 190Hz

  2 = 380Hz

  3 = 760Hz

LSM9DS1GyroSampleRate=2

Gyro full scale range -

  0 = 250 degrees per second

  1 = 500 degrees per second

  2 = 2000 degrees per second

LSM9DS1GyroFsr=1

Gyro high pass filter -

  0 - 9 but see the LSM9DS1 manual for details

LSM9DS1GyroHpf=4

Gyro bandwidth -

  0 - 3 but see the LSM9DS1 manual for details

LSM9DS1GyroBW=1

Accel sample rate -

  1 = 14.9Hz

  2 = 59.5Hz

  3 = 119Hz

  4 = 238Hz

  5 = 476Hz

  6 = 952Hz

LSM9DS1AccelSampleRate=3

Accel full scale range -

  0 = +/- 2g

  1 = +/- 16g

  2 = +/- 4g

  3 = +/- 8g

LSM9DS1AccelFsr=3

Accel low pass filter -

  0 = 408Hz

  1 = 211Hz

  2 = 105Hz

  3 = 50Hz

LSM9DS1AccelLpf=3

Compass sample rate -

  0 = 0.625Hz

  1 = 1.25Hz

  2 = 2.5Hz

  3 = 5Hz

  4 = 10Hz

  5 = 20Hz

  6 = 40Hz

  7 = 80Hz

LSM9DS1CompassSampleRate=5

Compass full scale range -

  0 = +/- 400 uT

  1 = +/- 800 uT

  2 = +/- 1200 uT

  3 = +/- 1600 uT

LSM9DS1CompassFsr=0

BMX055 settings

Gyro sample rate -

  0 = 2000Hz (532Hz filter)

  1 = 2000Hz (230Hz filter)

  2 = 1000Hz (116Hz filter)

  3 = 400Hz (47Hz filter)

  4 = 200Hz (23Hz filter)

  5 = 100Hz (12Hz filter)

  6 = 200Hz (64Hz filter)

  7 = 100Hz (32Hz filter)

BMX055GyroSampleRate=7

Gyro full scale range -

  0 = 2000 deg/s

  1 = 1000 deg/s

  2 = 500 deg/s

  3 = 250 deg/s

  4 = 125 deg/s

BMX055GyroFsr=2

Accel sample rate -

  0 = 15.63Hz

  1 = 31.25

  2 = 62.5

  3 = 125

  4 = 250

  5 = 500

  6 = 1000

  7 = 2000

BMX055AccelSampleRate=3

Accel full scale range -

  0 = +/- 2g

  1 = +/- 4g

  2 = +/- 8g

  3 = +/- 16g

BMX055AccelFsr=2

Mag presets -

  0 = Low power

  1 = Regular

  2 = Enhanced

  3 = High accuracy

BMX055MagPreset=1

Hope this helps,
-Sam
On Nov 18, 2019, 9:31 AM -0800, Samuel Prager sprager@usc.edu, wrote:

Hi Isaac,

I vaguely remember seeing this behavior on one of our e312s but it’s been a while. If I recall, the solution involved the RTIMULib.ini file (which should be created in /etc). Either the ini file was set to use the wrong SPI bus or the ini file was being saved in the wrong place or not at all. I would start there.

Sam
On Nov 18, 2019, 8:24 AM -0800, Beeman, Isaac L. , wrote:

Hi Sam,

Thanks for linking your simple example program for streaming IMU data. I finally got the RTIMULib built and installed on the E312, but when I run your program I get this output:

root@ni-e31x-:~/usr/E312IMUTest/build# ./E312IMUTest
Do something here with example option input: for example
Settings file not found. Using defaults and creating settings file
Failed to open I2C bus 1
Failed to open SPI bus 0, select 0
Failed to open SPI bus 0, select 1
No IMU detected
Using fusion algorithm RTQF
No IMU found
Error intializing IMU

Was there any other setup I needed to do before running it (i.e. creating a settings file for the radio)? Do you think using a newer version of UHD and the E312 image might cause this issue?

Isaac Beeman

From: Samuel Prager sprager@usc.edu
Sent: Tuesday, November 12, 2019 5:50 PM
To: Beeman, Isaac L. ilbeeman@wpi.edu; Michael Dickens michael.dickens@ettus.com
Cc: usrp-users@lists.ettus.com usrp-users@lists.ettus.com
Subject: [EXT] Re: [USRP-users] Question about the IMU (MPU-9150) on the E310

Hi Isaac,

Here is a simple example program I wrote a while back for continuously streaming IMU data on the E310/E312.

https://github.com/samprager/E312IMUTest

See the README for RTIMULib installation instructions (the correct library is https://github.com/RPi-Distro/RTIMULib).

Sam
On Nov 12, 2019, 12:30 PM -0800, Michael Dickens via USRP-users usrp-users@lists.ettus.com, wrote:

Hi Isaac - UHD itself provides no API to the IMU; never has. The RTIMULib, possibly an older version than current and assuming it can be built and installed on the E310, should be able to access the IMU to provide information from it. Note "possibly", "assuming", "should" ... clearly this isn't a majorly supported feature of the E310! Good luck! - MLD

On Tue, Nov 12, 2019 at 12:37 PM Beeman, Isaac L. via USRP-users usrp-users@lists.ettus.com wrote:

Marcus and List,

I was hoping someone knew the steps involved to get the RTIMULib setup on the USRP. I tried building and installing both the RTIMULib and Linux folders, but the Linux one fails:

-- Found unsuitable Qt version "" from NOTFOUND
Qt QTOPENGL library not found.
Qt QTGUI library not found.
Qt QTCORE library not found.
CMake Error at RTIMULibGL/CMakeLists.txt:90 (QT4_ADD_RESOURCES):
    Unknown CMake command "QT4_ADD_RESOURCES".
-- Configuring incomplete, errors occurred!

I figured that I can't install the RTIMULibDemo apps because they use a GUI, so I built and installed the RTIMULibDrive and RTIMULibCal individually. Only, when I try to run one of these apps I get the following error:

RTIMULibDrive: error while loading shared libraries: libRTIMULib.so.7: cannot open shared object file: No such file or directory

I don't get how to fix this. When I build and install the same apps on my host computer they run fine (but obviously can't find any IMU). Considering that any applications I write also use the same libraries, I feel like this is going to be an issue.

There isn't any documentation that I can find on the usage of the C++ library for RTIMULib. Just reading the code in RTIMULibDrive.cpp as an example, it doesn't seem too complicated, but it obviously is a generic program that isn't using the settings needed to connect to the MPU-9150.

If anyone knows how to get one of these apps (RTIMULibDrive or RTIMULibCal) working or how to use RTIMULib.h in connecting to the MPU-9150 over I2C, it would be much appreciated.

-Isaac Beeman

P.S. I also tried 'i2cdetect -y 0' to see if the MPU-9150 has the I2C address 0x69 like the schematics say, but I only get:

Warning: Can't use SMBus Quick Write command, will skip some addresses
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:
10:
20:
30: -- -- -- -- -- -- -- --
40:
50: UU UU -- -- -- -- -- -- -- -- -- -- -- -- -- --
60:
70:

with nothing under 0x69. So that's weird.

-----Original Message-----
From: USRP-users usrp-users-bounces@lists.ettus.com On Behalf Of Marcus D. Leech via USRP-users
Sent: Tuesday, November 12, 2019 10:35 AM
To: usrp-users@lists.ettus.com
Subject: [EXT] Re: [USRP-users] Question about the IMU (MPU-9150) on the E310

On 11/12/2019 10:26 AM, Beeman, Isaac L. via USRP-users wrote:

Hi List,

I have recently started working with the E310/E312 and have gotten multichannel RX/TX and GPS working, but I can't figure out how to grab data off of the internal IMU/MPU-9150. I found some website (http://gnuradio.cn/en/html/support/en/page_usrp_e3x0.html) that said that the USRP image should contain RTIMULib applications with allow the user to test the IMU, but, unless I am looking in the wrong place, the current image for the E310 does not have any RTIMULib applications on it.

I want to know if there are any API calls or libraries that would allow me to do development with the IMU.

-Isaac Beeman


Hi Isaac, Yes this is exactly the error we had seen before. I was able to reproduce these errors on our E312. For some reason it looks like the auto discover isn’t working properly (not finding correct device type and not assigning correct I2c bus or I2CSlaveAddress). You should be able to fix the issue by following these steps: 1) root@ettus-e3xx-sg3:~# mv /etc/RTIMULib.ini /etc/RTIMULib.ini.backup This will force creation of a new /etc/RTIMULib.ini file 2) Now run the program. You should see the following output (as before): root@ettus-e3xx-sg3:~# E312IMUTest Do something here with example option input: for example Settings file not found. Using defaults and creating settings file Failed to open I2C bus 1 Failed to open SPI bus 0, select 0 No IMU detected Using fusion algorithm RTQF No IMU found 3) In the newly created /etc/RTIMULib.ini file make the following changes: IMUType=2 # # Fusion type type - #   0 - Null. Use if only sensor data required without fusion #   1 - Kalman STATE4 #   2 - RTQF FusionType=2 # # Is bus I2C: 'true' for I2C, 'false' for SPI BusIsI2C=true # # I2C Bus (between 0 and 7) I2CBus=0 # # SPI Bus (between 0 and 7) SPIBus=0 # # SPI select (between 0 and 1) SPISelect=0 # # SPI Speed in Hz SPISpeed=500000 # # I2C slave address (filled in automatically by auto discover) I2CSlaveAddress=105 5) You should now be able to run the program successfully (If you get I2C read errors, try restarting the E310. Everything should work afterwards). For reference, I have included my complete /etc/RTIMULib.ini file: root@ettus-e3xx-sg3:~# cat /etc/RTIMULib.ini # ##################################################################### # # RTIMULib settings file # General settings # # IMU type - #   0 = Auto discover #   1 = Null (used when data is provided from a remote IMU #   2 = InvenSense MPU-9150 #   3 = STM L3GD20H + LSM303D #   4 = STM L3GD20 + LSM303DLHC #   5 = STM LSM9DS0 #   6 = STM LSM9DS1 #   7 = InvenSense MPU-9250 #   8 = STM L3GD20H + LSM303DLHC #   9 = Bosch BMX055 #   10 = Bosch BNX055 IMUType=2 # # Fusion type type - #   0 - Null. Use if only sensor data required without fusion #   1 - Kalman STATE4 #   2 - RTQF FusionType=2 # # Is bus I2C: 'true' for I2C, 'false' for SPI BusIsI2C=true # # I2C Bus (between 0 and 7) I2CBus=0 # # SPI Bus (between 0 and 7) SPIBus=0 # # SPI select (between 0 and 1) SPISelect=0 # # SPI Speed in Hz SPISpeed=500000 # # I2C slave address (filled in automatically by auto discover) I2CSlaveAddress=105 # # IMU axis rotation - see RTIMU.h for details AxisRotation=0 # Pressure sensor type - #   0 = Auto discover #   1 = Null (no hardware or don't use) #   2 = BMP180 #   3 = LPS25H #   4 = MS5611 #   5 = MS5637 PressureType=0 # # I2C pressure sensor address (filled in automatically by auto discover) I2CPressureAddress=0 # Humidity sensor type - #   0 = Auto discover #   1 = Null (no hardware or don't use) #   2 = HTS221 #   3 = HTU21D HumidityType=0 # # I2C humidity sensor address (filled in automatically by auto discover) I2CHumidityAddress=0 # ##################################################################### # # Compass calibration settings CompassCalValid=false CompassCalMinX=0.000000 CompassCalMinY=0.000000 CompassCalMinZ=0.000000 CompassCalMaxX=0.000000 CompassCalMaxY=0.000000 CompassCalMaxZ=0.000000 # ##################################################################### # # Compass adjustment settings # Compass declination is in radians and is subtracted from calculated heading compassAdjDeclination=0.000000 # ##################################################################### # # Compass ellipsoid calibration compassCalEllipsoidValid=false compassCalOffsetX=0.000000 compassCalOffsetY=0.000000 compassCalOffsetZ=0.000000 compassCalCorr11=1.000000 compassCalCorr12=0.000000 compassCalCorr13=0.000000 compassCalCorr21=0.000000 compassCalCorr22=1.000000 compassCalCorr23=0.000000 compassCalCorr31=0.000000 compassCalCorr32=0.000000 compassCalCorr33=1.000000 # ##################################################################### # # Accel calibration AccelCalValid=false AccelCalMinX=0.000000 AccelCalMinY=0.000000 AccelCalMinZ=0.000000 AccelCalMaxX=0.000000 AccelCalMaxY=0.000000 AccelCalMaxZ=0.000000 # ##################################################################### # # Saved gyro bias data GyroBiasValid=true GyroBiasX=-0.031280 GyroBiasY=-0.017285 GyroBiasZ=-0.020221 # ##################################################################### # # MPU-9150 settings # # Gyro sample rate (between 5Hz and 1000Hz) MPU9150GyroAccelSampleRate=900 # # Compass sample rate (between 1Hz and 100Hz) MPU9150CompassSampleRate=80 # # Gyro/accel low pass filter - #   0 - gyro: 256Hz, accel: 260Hz #   1 - gyro: 188Hz, accel: 184Hz #   2 - gyro: 98Hz, accel: 98Hz #   3 - gyro: 42Hz, accel: 44Hz #   4 - gyro: 20Hz, accel: 21Hz #   5 - gyro: 10Hz, accel: 10Hz #   6 - gyro: 5Hz, accel: 5Hz MPU9150GyroAccelLpf=4 # # Gyro full scale range - #   0  - +/- 250 degress per second #   8  - +/- 500 degress per second #   16 - +/- 1000 degress per second #   24 - +/- 2000 degress per second MPU9150GyroFSR=8 # # Accel full scale range - #   0  - +/- 2g #   8  - +/- 4g #   16 - +/- 8g #   24 - +/- 16g MPU9150AccelFSR=0 # ##################################################################### # # MPU-9250 settings # # Gyro sample rate (between 5Hz and 1000Hz plus 8000Hz and 32000Hz) MPU9250GyroAccelSampleRate=80 # # Compass sample rate (between 1Hz and 100Hz) MPU9250CompassSampleRate=40 # # Gyro low pass filter - #   0x11 - 8800Hz, 0.64mS delay #   0x10 - 3600Hz, 0.11mS delay #   0x00 - 250Hz, 0.97mS delay #   0x01 - 184Hz, 2.9mS delay #   0x02 - 92Hz, 3.9mS delay #   0x03 - 41Hz, 5.9mS delay #   0x04 - 20Hz, 9.9mS delay #   0x05 - 10Hz, 17.85mS delay #   0x06 - 5Hz, 33.48mS delay MPU9250GyroLpf=3 # # Accel low pass filter - #   0x08 - 1130Hz, 0.75mS delay #   0x00 - 460Hz, 1.94mS delay #   0x01 - 184Hz, 5.80mS delay #   0x02 - 92Hz, 7.80mS delay #   0x03 - 41Hz, 11.80mS delay #   0x04 - 20Hz, 19.80mS delay #   0x05 - 10Hz, 35.70mS delay #   0x06 - 5Hz, 66.96mS delay MPU9250AccelLpf=3 # # Gyro full scale range - #   0  - +/- 250 degress per second #   8  - +/- 500 degress per second #   16 - +/- 1000 degress per second #   24 - +/- 2000 degress per second MPU9250GyroFSR=16 # # Accel full scale range - #   0  - +/- 2g #   8  - +/- 4g #   16 - +/- 8g #   24 - +/- 16g MPU9250AccelFSR=16 # ##################################################################### # # L3GD20H + LSM303D settings # # Gyro sample rate - #   0 = 12.5Hz #   1 = 25Hz #   2 = 50Hz #   3 = 100Hz #   4 = 200Hz #   5 = 400Hz #   6 = 800Hz GD20HM303DGyroSampleRate=2 # # Gyro full scale range - #   0 = 245 degrees per second #   1 = 500 degrees per second #   2 = 2000 degrees per second GD20HM303DGyroFsr=1 # # Gyro high pass filter - #   0 - 9 but see the L3GD20H manual for details GD20HM303DGyroHpf=4 # # Gyro bandwidth - #   0 - 3 but see the L3GD20H manual for details GD20HM303DGyroBW=1 # Accel sample rate - #   1 = 3.125Hz #   2 = 6.25Hz #   3 = 12.5Hz #   4 = 25Hz #   5 = 50Hz #   6 = 100Hz #   7 = 200Hz #   8 = 400Hz #   9 = 800Hz #   10 = 1600Hz GD20HM303DAccelSampleRate=5 # # Accel full scale range - #   0 = +/- 2g #   1 = +/- 4g #   2 = +/- 6g #   3 = +/- 8g #   4 = +/- 16g GD20HM303DAccelFsr=3 # # Accel low pass filter - #   0 = 773Hz #   1 = 194Hz #   2 = 362Hz #   3 = 50Hz GD20HM303DAccelLpf=3 # # Compass sample rate - #   0 = 3.125Hz #   1 = 6.25Hz #   2 = 12.5Hz #   3 = 25Hz #   4 = 50Hz #   5 = 100Hz GD20HM303DCompassSampleRate=4 # # Compass full scale range - #   0 = +/- 200 uT #   1 = +/- 400 uT #   2 = +/- 800 uT #   3 = +/- 1200 uT GD20HM303DCompassFsr=0 # ##################################################################### # # L3GD20 + LSM303DLHC settings # # Gyro sample rate - #   0 = 95z #   1 = 190Hz #   2 = 380Hz #   3 = 760Hz GD20M303DLHCGyroSampleRate=0 # # Gyro full scale range - #   0 = 250 degrees per second #   1 = 500 degrees per second #   2 = 2000 degrees per second GD20M303DLHCGyroFsr=1 # # Gyro high pass filter - #   0 - 9 but see the L3GD20 manual for details GD20M303DLHCGyroHpf=4 # # Gyro bandwidth - #   0 - 3 but see the L3GD20 manual for details GD20M303DLHCGyroBW=1 # Accel sample rate - #   1 = 1Hz #   2 = 10Hz #   3 = 25Hz #   4 = 50Hz #   5 = 100Hz #   6 = 200Hz #   7 = 400Hz GD20M303DLHCAccelSampleRate=4 # # Accel full scale range - #   0 = +/- 2g #   1 = +/- 4g #   2 = +/- 8g #   3 = +/- 16g GD20M303DLHCAccelFsr=2 # # Compass sample rate - #   0 = 0.75Hz #   1 = 1.5Hz #   2 = 3Hz #   3 = 7.5Hz #   4 = 15Hz #   5 = 30Hz #   6 = 75Hz #   7 = 220Hz GD20M303DLHCCompassSampleRate=5 # # Compass full scale range - #   1 = +/- 130 uT #   2 = +/- 190 uT #   3 = +/- 250 uT #   4 = +/- 400 uT #   5 = +/- 470 uT #   6 = +/- 560 uT #   7 = +/- 810 uT GD20M303DLHCCompassFsr=1 # ##################################################################### # # L3GD20H + LSM303DLHC settings # # # Gyro sample rate - #   0 = 12.5Hz #   1 = 25Hz #   2 = 50Hz #   3 = 100Hz #   4 = 200Hz #   5 = 400Hz #   6 = 800Hz GD20HM303DLHCGyroSampleRate=2 # # Gyro full scale range - #   0 = 245 degrees per second #   1 = 500 degrees per second #   2 = 2000 degrees per second GD20HM303DLHCGyroFsr=1 # # Gyro high pass filter - #   0 - 9 but see the L3GD20H manual for details GD20HM303DLHCGyroHpf=4 # # Gyro bandwidth - #   0 - 3 but see the L3GD20H manual for details GD20HM303DLHCGyroBW=1 # Accel sample rate - #   1 = 1Hz #   2 = 10Hz #   3 = 25Hz #   4 = 50Hz #   5 = 100Hz #   6 = 200Hz #   7 = 400Hz GD20HM303DLHCAccelSampleRate=4 # # Accel full scale range - #   0 = +/- 2g #   1 = +/- 4g #   2 = +/- 8g #   3 = +/- 16g GD20HM303DLHCAccelFsr=2 # # Compass sample rate - #   0 = 0.75Hz #   1 = 1.5Hz #   2 = 3Hz #   3 = 7.5Hz #   4 = 15Hz #   5 = 30Hz #   6 = 75Hz #   7 = 220Hz GD20HM303DLHCCompassSampleRate=5 # # Compass full scale range - #   1 = +/- 130 uT #   2 = +/- 190 uT #   3 = +/- 250 uT #   4 = +/- 400 uT #   5 = +/- 470 uT #   6 = +/- 560 uT #   7 = +/- 810 uT GD20HM303DLHCCompassFsr=1 # ##################################################################### # # LSM9DS0 settings # # Gyro sample rate - #   0 = 95z #   1 = 190Hz #   2 = 380Hz #   3 = 760Hz LSM9DS0GyroSampleRate=0 # # Gyro full scale range - #   0 = 250 degrees per second #   1 = 500 degrees per second #   2 = 2000 degrees per second LSM9DS0GyroFsr=1 # # Gyro high pass filter - #   0 - 9 but see the LSM9DS0 manual for details LSM9DS0GyroHpf=4 # # Gyro bandwidth - #   0 - 3 but see the LSM9DS0 manual for details LSM9DS0GyroBW=1 # Accel sample rate - #   1 = 3.125Hz #   2 = 6.25Hz #   3 = 12.5Hz #   4 = 25Hz #   5 = 50Hz #   6 = 100Hz #   7 = 200Hz #   8 = 400Hz #   9 = 800Hz #   10 = 1600Hz LSM9DS0AccelSampleRate=5 # # Accel full scale range - #   0 = +/- 2g #   1 = +/- 4g #   2 = +/- 6g #   3 = +/- 8g #   4 = +/- 16g LSM9DS0AccelFsr=3 # # Accel low pass filter - #   0 = 773Hz #   1 = 194Hz #   2 = 362Hz #   3 = 50Hz LSM9DS0AccelLpf=3 # # Compass sample rate - #   0 = 3.125Hz #   1 = 6.25Hz #   2 = 12.5Hz #   3 = 25Hz #   4 = 50Hz #   5 = 100Hz LSM9DS0CompassSampleRate=4 # # Compass full scale range - #   0 = +/- 200 uT #   1 = +/- 400 uT #   2 = +/- 800 uT #   3 = +/- 1200 uT LSM9DS0CompassFsr=0 # ##################################################################### # # LSM9DS1 settings # # Gyro sample rate - #   0 = 95Hz #   1 = 190Hz #   2 = 380Hz #   3 = 760Hz LSM9DS1GyroSampleRate=2 # # Gyro full scale range - #   0 = 250 degrees per second #   1 = 500 degrees per second #   2 = 2000 degrees per second LSM9DS1GyroFsr=1 # # Gyro high pass filter - #   0 - 9 but see the LSM9DS1 manual for details LSM9DS1GyroHpf=4 # # Gyro bandwidth - #   0 - 3 but see the LSM9DS1 manual for details LSM9DS1GyroBW=1 # Accel sample rate - #   1 = 14.9Hz #   2 = 59.5Hz #   3 = 119Hz #   4 = 238Hz #   5 = 476Hz #   6 = 952Hz LSM9DS1AccelSampleRate=3 # # Accel full scale range - #   0 = +/- 2g #   1 = +/- 16g #   2 = +/- 4g #   3 = +/- 8g LSM9DS1AccelFsr=3 # # Accel low pass filter - #   0 = 408Hz #   1 = 211Hz #   2 = 105Hz #   3 = 50Hz LSM9DS1AccelLpf=3 # # Compass sample rate - #   0 = 0.625Hz #   1 = 1.25Hz #   2 = 2.5Hz #   3 = 5Hz #   4 = 10Hz #   5 = 20Hz #   6 = 40Hz #   7 = 80Hz LSM9DS1CompassSampleRate=5 # # Compass full scale range - #   0 = +/- 400 uT #   1 = +/- 800 uT #   2 = +/- 1200 uT #   3 = +/- 1600 uT LSM9DS1CompassFsr=0 # ##################################################################### # # BMX055 settings # # # Gyro sample rate - #   0 = 2000Hz (532Hz filter) #   1 = 2000Hz (230Hz filter) #   2 = 1000Hz (116Hz filter) #   3 = 400Hz (47Hz filter) #   4 = 200Hz (23Hz filter) #   5 = 100Hz (12Hz filter) #   6 = 200Hz (64Hz filter) #   7 = 100Hz (32Hz filter) BMX055GyroSampleRate=7 # # Gyro full scale range - #   0 = 2000 deg/s #   1 = 1000 deg/s #   2 = 500 deg/s #   3 = 250 deg/s #   4 = 125 deg/s BMX055GyroFsr=2 # # Accel sample rate - #   0 = 15.63Hz #   1 = 31.25 #   2 = 62.5 #   3 = 125 #   4 = 250 #   5 = 500 #   6 = 1000 #   7 = 2000 BMX055AccelSampleRate=3 # # Accel full scale range - #   0 = +/- 2g #   1 = +/- 4g #   2 = +/- 8g #   3 = +/- 16g BMX055AccelFsr=2 # # Mag presets - #   0 = Low power #   1 = Regular #   2 = Enhanced #   3 = High accuracy BMX055MagPreset=1 Hope this helps, -Sam On Nov 18, 2019, 9:31 AM -0800, Samuel Prager <sprager@usc.edu>, wrote: > Hi Isaac, > > I vaguely remember seeing this behavior on one of our e312s but it’s been a while. If I recall, the solution involved the RTIMULib.ini file (which should be created in /etc). Either the ini file was set to use the wrong SPI bus or the ini file was being saved in the wrong place or not at all. I would start there. > > Sam > On Nov 18, 2019, 8:24 AM -0800, Beeman, Isaac L. , wrote: > > Hi Sam, > > > > Thanks for linking your simple example program for streaming IMU data. I finally got the RTIMULib built and installed on the E312, but when I run your program I get this output: > > > > root@ni-e31x-:~/usr/E312IMUTest/build# ./E312IMUTest > > Do something here with example option input: for example > > Settings file not found. Using defaults and creating settings file > > Failed to open I2C bus 1 > > Failed to open SPI bus 0, select 0 > > Failed to open SPI bus 0, select 1 > > No IMU detected > > Using fusion algorithm RTQF > > No IMU found > > Error intializing IMU > > > > Was there any other setup I needed to do before running it (i.e. creating a settings file for the radio)? Do you think using a newer version of UHD and the E312 image might cause this issue? > > > > Isaac Beeman > > > > From: Samuel Prager <sprager@usc.edu> > > Sent: Tuesday, November 12, 2019 5:50 PM > > To: Beeman, Isaac L. <ilbeeman@wpi.edu>; Michael Dickens <michael.dickens@ettus.com> > > Cc: usrp-users@lists.ettus.com <usrp-users@lists.ettus.com> > > Subject: [EXT] Re: [USRP-users] Question about the IMU (MPU-9150) on the E310 > > > > Hi Isaac, > > > > Here is a simple example program I wrote a while back for continuously streaming IMU data on the E310/E312. > > > > https://github.com/samprager/E312IMUTest > > > > See the README for RTIMULib installation instructions (the correct library is https://github.com/RPi-Distro/RTIMULib). > > > > Sam > > On Nov 12, 2019, 12:30 PM -0800, Michael Dickens via USRP-users <usrp-users@lists.ettus.com>, wrote: > > > Hi Isaac - UHD itself provides no API to the IMU; never has. The RTIMULib, possibly an older version than current and assuming it can be built and installed on the E310, should be able to access the IMU to provide information from it. Note "possibly", "assuming", "should" ... clearly this isn't a majorly supported feature of the E310! Good luck! - MLD > > > > > > On Tue, Nov 12, 2019 at 12:37 PM Beeman, Isaac L. via USRP-users <usrp-users@lists.ettus.com> wrote: > > > > Marcus and List, > > > > > > > > I was hoping someone knew the steps involved to get the RTIMULib setup on the USRP. I tried building and installing both the RTIMULib and Linux folders, but the Linux one fails: > > > > > > > > > > > > -- Found unsuitable Qt version "" from NOTFOUND > > > > Qt QTOPENGL library not found. > > > > Qt QTGUI library not found. > > > > Qt QTCORE library not found. > > > > CMake Error at RTIMULibGL/CMakeLists.txt:90 (QT4_ADD_RESOURCES): > > > >     Unknown CMake command "QT4_ADD_RESOURCES". > > > > -- Configuring incomplete, errors occurred! > > > > > > > > > > > > I figured that I can't install the RTIMULibDemo apps because they use a GUI, so I built and installed the RTIMULibDrive and RTIMULibCal individually. Only, when I try to run one of these apps I get the following error: > > > > > > > > > > > > RTIMULibDrive: error while loading shared libraries: libRTIMULib.so.7: cannot open shared object file: No such file or directory > > > > > > > > > > > > I don't get how to fix this. When I build and install the same apps on my host computer they run fine (but obviously can't find any IMU). Considering that any applications I write also use the same libraries, I feel like this is going to be an issue. > > > > > > > > There isn't any documentation that I can find on the usage of the C++ library for RTIMULib. Just reading the code in RTIMULibDrive.cpp as an example, it doesn't seem too complicated, but it obviously is a generic program that isn't using the settings needed to connect to the MPU-9150. > > > > > > > > If anyone knows how to get one of these apps (RTIMULibDrive or RTIMULibCal) working or how to use RTIMULib.h in connecting to the MPU-9150 over I2C, it would be much appreciated. > > > > > > > > -Isaac Beeman > > > > > > > > > > > > > > > > P.S. I also tried 'i2cdetect -y 0' to see if the MPU-9150 has the I2C address 0x69 like the schematics say, but I only get: > > > > > > > > Warning: Can't use SMBus Quick Write command, will skip some addresses > > > >      0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f > > > > 00: > > > > 10: > > > > 20: > > > > 30: -- -- -- -- -- -- -- -- > > > > 40: > > > > 50: UU UU -- -- -- -- -- -- -- -- -- -- -- -- -- -- > > > > 60: > > > > 70: > > > > > > > > with nothing under 0x69. So that's weird. > > > > > > > > > > > > -----Original Message----- > > > > From: USRP-users <usrp-users-bounces@lists.ettus.com> On Behalf Of Marcus D. Leech via USRP-users > > > > Sent: Tuesday, November 12, 2019 10:35 AM > > > > To: usrp-users@lists.ettus.com > > > > Subject: [EXT] Re: [USRP-users] Question about the IMU (MPU-9150) on the E310 > > > > > > > > On 11/12/2019 10:26 AM, Beeman, Isaac L. via USRP-users wrote: > > > > > Hi List, > > > > > > > > > > I have recently started working with the E310/E312 and have gotten multichannel RX/TX and GPS working, but I can't figure out how to grab data off of the internal IMU/MPU-9150. I found some website (http://gnuradio.cn/en/html/support/en/page_usrp_e3x0.html) that said that the USRP image should contain RTIMULib applications with allow the user to test the IMU, but, unless I am looking in the wrong place, the current image for the E310 does not have any RTIMULib applications on it. > > > > > > > > > > I want to know if there are any API calls or libraries that would allow me to do development with the IMU. > > > > > > > > > > -Isaac Beeman > > > > > > > > > > _______________________________________________ > > > > > > > > You might start here: > > > > > > > > https://github.com/RTIMULib > > > > > > > > _______________________________________________ > > > > USRP-users mailing list > > > > USRP-users@lists.ettus.com > > > > http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com > > > > > > > > > -- > > > Michael Dickens > > > Ettus Research Technical Support > > > Email: support@ettus.com > > > Web: https://ettus.com/ > > > _______________________________________________ > > > USRP-users mailing list > > > USRP-users@lists.ettus.com > > > https://urldefense.proofpoint.com/v2/url?u=http-3A__lists.ettus.com_mailman_listinfo_usrp-2Dusers-5Flists.ettus.com&d=DwICAg&c=clK7kQUTWtAVEOVIgvi0NU5BOUHhpN0H8p7CSfnc_gI&r=opIuWAKmywF059tAs2i3Pg&m=rGLxgINOMrS4sAfnjQ9mFF9r3gnmnGlRtI8Lfh1c_9g&s=8wPPngBEnPiaAxtUARbH1opcSV3Pgih5Konyr2kf9-c&e=
PB
Philip Balister
Mon, Nov 18, 2019 7:12 PM

This might help:

https://github.com/EttusResearch/meta-ettus/blob/fido/e300-bsp/recipes-suppport/rtimulib/rtimulib/ettus-e300/RTIMULib.ini

At some point the rtimulib source moved around and was a bit funny to
build and was dropped from the image. The comment about probing and the
ini file made me think to look at the old build to see how I handled it.

Philip

On 11/18/19 2:03 PM, Samuel Prager via USRP-users wrote:

Hi Isaac,

Yes this is exactly the error we had seen before. I was able to reproduce these errors on our E312.

For some reason it looks like the auto discover isn’t working properly (not finding correct device type and not assigning correct I2c bus or I2CSlaveAddress).

You should be able to fix the issue by following these steps:

  1. root@ettus-e3xx-sg3:~# mv /etc/RTIMULib.ini /etc/RTIMULib.ini.backup

This will force creation of a new /etc/RTIMULib.ini file

  1. Now run the program. You should see the following output (as before):

root@ettus-e3xx-sg3:~# E312IMUTest
Do something here with example option input: for example
Settings file not found. Using defaults and creating settings file
Failed to open I2C bus 1
Failed to open SPI bus 0, select 0
No IMU detected
Using fusion algorithm RTQF
No IMU found

  1. In the newly created /etc/RTIMULib.ini file make the following changes:

IMUType=2

Fusion type type -

  0 - Null. Use if only sensor data required without fusion

  1 - Kalman STATE4

  2 - RTQF

FusionType=2

Is bus I2C: 'true' for I2C, 'false' for SPI

BusIsI2C=true

I2C Bus (between 0 and 7)

I2CBus=0

SPI Bus (between 0 and 7)

SPIBus=0

SPI select (between 0 and 1)

SPISelect=0

SPI Speed in Hz

SPISpeed=500000

I2C slave address (filled in automatically by auto discover)

I2CSlaveAddress=105

  1. You should now be able to run the program successfully (If you get I2C read errors, try restarting the E310. Everything should work afterwards).

For reference, I have included my complete /etc/RTIMULib.ini file:

root@ettus-e3xx-sg3:~# cat /etc/RTIMULib.ini

RTIMULib settings file

General settings

IMU type -

  0 = Auto discover

  1 = Null (used when data is provided from a remote IMU

  2 = InvenSense MPU-9150

  3 = STM L3GD20H + LSM303D

  4 = STM L3GD20 + LSM303DLHC

  5 = STM LSM9DS0

  6 = STM LSM9DS1

  7 = InvenSense MPU-9250

  8 = STM L3GD20H + LSM303DLHC

  9 = Bosch BMX055

  10 = Bosch BNX055

IMUType=2

Fusion type type -

  0 - Null. Use if only sensor data required without fusion

  1 - Kalman STATE4

  2 - RTQF

FusionType=2

Is bus I2C: 'true' for I2C, 'false' for SPI

BusIsI2C=true

I2C Bus (between 0 and 7)

I2CBus=0

SPI Bus (between 0 and 7)

SPIBus=0

SPI select (between 0 and 1)

SPISelect=0

SPI Speed in Hz

SPISpeed=500000

I2C slave address (filled in automatically by auto discover)

I2CSlaveAddress=105

IMU axis rotation - see RTIMU.h for details

AxisRotation=0

Pressure sensor type -

  0 = Auto discover

  1 = Null (no hardware or don't use)

  2 = BMP180

  3 = LPS25H

  4 = MS5611

  5 = MS5637

PressureType=0

I2C pressure sensor address (filled in automatically by auto discover)

I2CPressureAddress=0

Humidity sensor type -

  0 = Auto discover

  1 = Null (no hardware or don't use)

  2 = HTS221

  3 = HTU21D

HumidityType=0

I2C humidity sensor address (filled in automatically by auto discover)

I2CHumidityAddress=0

Compass calibration settings

CompassCalValid=false
CompassCalMinX=0.000000
CompassCalMinY=0.000000
CompassCalMinZ=0.000000
CompassCalMaxX=0.000000
CompassCalMaxY=0.000000
CompassCalMaxZ=0.000000

Compass adjustment settings

Compass declination is in radians and is subtracted from calculated heading

compassAdjDeclination=0.000000

Compass ellipsoid calibration

compassCalEllipsoidValid=false
compassCalOffsetX=0.000000
compassCalOffsetY=0.000000
compassCalOffsetZ=0.000000
compassCalCorr11=1.000000
compassCalCorr12=0.000000
compassCalCorr13=0.000000
compassCalCorr21=0.000000
compassCalCorr22=1.000000
compassCalCorr23=0.000000
compassCalCorr31=0.000000
compassCalCorr32=0.000000
compassCalCorr33=1.000000

Accel calibration

AccelCalValid=false
AccelCalMinX=0.000000
AccelCalMinY=0.000000
AccelCalMinZ=0.000000
AccelCalMaxX=0.000000
AccelCalMaxY=0.000000
AccelCalMaxZ=0.000000

Saved gyro bias data

GyroBiasValid=true
GyroBiasX=-0.031280
GyroBiasY=-0.017285
GyroBiasZ=-0.020221

MPU-9150 settings

Gyro sample rate (between 5Hz and 1000Hz)

MPU9150GyroAccelSampleRate=900

Compass sample rate (between 1Hz and 100Hz)

MPU9150CompassSampleRate=80

Gyro/accel low pass filter -

  0 - gyro: 256Hz, accel: 260Hz

  1 - gyro: 188Hz, accel: 184Hz

  2 - gyro: 98Hz, accel: 98Hz

  3 - gyro: 42Hz, accel: 44Hz

  4 - gyro: 20Hz, accel: 21Hz

  5 - gyro: 10Hz, accel: 10Hz

  6 - gyro: 5Hz, accel: 5Hz

MPU9150GyroAccelLpf=4

Gyro full scale range -

  0  - +/- 250 degress per second

  8  - +/- 500 degress per second

  16 - +/- 1000 degress per second

  24 - +/- 2000 degress per second

MPU9150GyroFSR=8

Accel full scale range -

  0  - +/- 2g

  8  - +/- 4g

  16 - +/- 8g

  24 - +/- 16g

MPU9150AccelFSR=0

MPU-9250 settings

Gyro sample rate (between 5Hz and 1000Hz plus 8000Hz and 32000Hz)

MPU9250GyroAccelSampleRate=80

Compass sample rate (between 1Hz and 100Hz)

MPU9250CompassSampleRate=40

Gyro low pass filter -

  0x11 - 8800Hz, 0.64mS delay

  0x10 - 3600Hz, 0.11mS delay

  0x00 - 250Hz, 0.97mS delay

  0x01 - 184Hz, 2.9mS delay

  0x02 - 92Hz, 3.9mS delay

  0x03 - 41Hz, 5.9mS delay

  0x04 - 20Hz, 9.9mS delay

  0x05 - 10Hz, 17.85mS delay

  0x06 - 5Hz, 33.48mS delay

MPU9250GyroLpf=3

Accel low pass filter -

  0x08 - 1130Hz, 0.75mS delay

  0x00 - 460Hz, 1.94mS delay

  0x01 - 184Hz, 5.80mS delay

  0x02 - 92Hz, 7.80mS delay

  0x03 - 41Hz, 11.80mS delay

  0x04 - 20Hz, 19.80mS delay

  0x05 - 10Hz, 35.70mS delay

  0x06 - 5Hz, 66.96mS delay

MPU9250AccelLpf=3

Gyro full scale range -

  0  - +/- 250 degress per second

  8  - +/- 500 degress per second

  16 - +/- 1000 degress per second

  24 - +/- 2000 degress per second

MPU9250GyroFSR=16

Accel full scale range -

  0  - +/- 2g

  8  - +/- 4g

  16 - +/- 8g

  24 - +/- 16g

MPU9250AccelFSR=16

L3GD20H + LSM303D settings

Gyro sample rate -

  0 = 12.5Hz

  1 = 25Hz

  2 = 50Hz

  3 = 100Hz

  4 = 200Hz

  5 = 400Hz

  6 = 800Hz

GD20HM303DGyroSampleRate=2

Gyro full scale range -

  0 = 245 degrees per second

  1 = 500 degrees per second

  2 = 2000 degrees per second

GD20HM303DGyroFsr=1

Gyro high pass filter -

  0 - 9 but see the L3GD20H manual for details

GD20HM303DGyroHpf=4

Gyro bandwidth -

  0 - 3 but see the L3GD20H manual for details

GD20HM303DGyroBW=1

Accel sample rate -

  1 = 3.125Hz

  2 = 6.25Hz

  3 = 12.5Hz

  4 = 25Hz

  5 = 50Hz

  6 = 100Hz

  7 = 200Hz

  8 = 400Hz

  9 = 800Hz

  10 = 1600Hz

GD20HM303DAccelSampleRate=5

Accel full scale range -

  0 = +/- 2g

  1 = +/- 4g

  2 = +/- 6g

  3 = +/- 8g

  4 = +/- 16g

GD20HM303DAccelFsr=3

Accel low pass filter -

  0 = 773Hz

  1 = 194Hz

  2 = 362Hz

  3 = 50Hz

GD20HM303DAccelLpf=3

Compass sample rate -

  0 = 3.125Hz

  1 = 6.25Hz

  2 = 12.5Hz

  3 = 25Hz

  4 = 50Hz

  5 = 100Hz

GD20HM303DCompassSampleRate=4

Compass full scale range -

  0 = +/- 200 uT

  1 = +/- 400 uT

  2 = +/- 800 uT

  3 = +/- 1200 uT

GD20HM303DCompassFsr=0

L3GD20 + LSM303DLHC settings

Gyro sample rate -

  0 = 95z

  1 = 190Hz

  2 = 380Hz

  3 = 760Hz

GD20M303DLHCGyroSampleRate=0

Gyro full scale range -

  0 = 250 degrees per second

  1 = 500 degrees per second

  2 = 2000 degrees per second

GD20M303DLHCGyroFsr=1

Gyro high pass filter -

  0 - 9 but see the L3GD20 manual for details

GD20M303DLHCGyroHpf=4

Gyro bandwidth -

  0 - 3 but see the L3GD20 manual for details

GD20M303DLHCGyroBW=1

Accel sample rate -

  1 = 1Hz

  2 = 10Hz

  3 = 25Hz

  4 = 50Hz

  5 = 100Hz

  6 = 200Hz

  7 = 400Hz

GD20M303DLHCAccelSampleRate=4

Accel full scale range -

  0 = +/- 2g

  1 = +/- 4g

  2 = +/- 8g

  3 = +/- 16g

GD20M303DLHCAccelFsr=2

Compass sample rate -

  0 = 0.75Hz

  1 = 1.5Hz

  2 = 3Hz

  3 = 7.5Hz

  4 = 15Hz

  5 = 30Hz

  6 = 75Hz

  7 = 220Hz

GD20M303DLHCCompassSampleRate=5

Compass full scale range -

  1 = +/- 130 uT

  2 = +/- 190 uT

  3 = +/- 250 uT

  4 = +/- 400 uT

  5 = +/- 470 uT

  6 = +/- 560 uT

  7 = +/- 810 uT

GD20M303DLHCCompassFsr=1

L3GD20H + LSM303DLHC settings

Gyro sample rate -

  0 = 12.5Hz

  1 = 25Hz

  2 = 50Hz

  3 = 100Hz

  4 = 200Hz

  5 = 400Hz

  6 = 800Hz

GD20HM303DLHCGyroSampleRate=2

Gyro full scale range -

  0 = 245 degrees per second

  1 = 500 degrees per second

  2 = 2000 degrees per second

GD20HM303DLHCGyroFsr=1

Gyro high pass filter -

  0 - 9 but see the L3GD20H manual for details

GD20HM303DLHCGyroHpf=4

Gyro bandwidth -

  0 - 3 but see the L3GD20H manual for details

GD20HM303DLHCGyroBW=1

Accel sample rate -

  1 = 1Hz

  2 = 10Hz

  3 = 25Hz

  4 = 50Hz

  5 = 100Hz

  6 = 200Hz

  7 = 400Hz

GD20HM303DLHCAccelSampleRate=4

Accel full scale range -

  0 = +/- 2g

  1 = +/- 4g

  2 = +/- 8g

  3 = +/- 16g

GD20HM303DLHCAccelFsr=2

Compass sample rate -

  0 = 0.75Hz

  1 = 1.5Hz

  2 = 3Hz

  3 = 7.5Hz

  4 = 15Hz

  5 = 30Hz

  6 = 75Hz

  7 = 220Hz

GD20HM303DLHCCompassSampleRate=5

Compass full scale range -

  1 = +/- 130 uT

  2 = +/- 190 uT

  3 = +/- 250 uT

  4 = +/- 400 uT

  5 = +/- 470 uT

  6 = +/- 560 uT

  7 = +/- 810 uT

GD20HM303DLHCCompassFsr=1

LSM9DS0 settings

Gyro sample rate -

  0 = 95z

  1 = 190Hz

  2 = 380Hz

  3 = 760Hz

LSM9DS0GyroSampleRate=0

Gyro full scale range -

  0 = 250 degrees per second

  1 = 500 degrees per second

  2 = 2000 degrees per second

LSM9DS0GyroFsr=1

Gyro high pass filter -

  0 - 9 but see the LSM9DS0 manual for details

LSM9DS0GyroHpf=4

Gyro bandwidth -

  0 - 3 but see the LSM9DS0 manual for details

LSM9DS0GyroBW=1

Accel sample rate -

  1 = 3.125Hz

  2 = 6.25Hz

  3 = 12.5Hz

  4 = 25Hz

  5 = 50Hz

  6 = 100Hz

  7 = 200Hz

  8 = 400Hz

  9 = 800Hz

  10 = 1600Hz

LSM9DS0AccelSampleRate=5

Accel full scale range -

  0 = +/- 2g

  1 = +/- 4g

  2 = +/- 6g

  3 = +/- 8g

  4 = +/- 16g

LSM9DS0AccelFsr=3

Accel low pass filter -

  0 = 773Hz

  1 = 194Hz

  2 = 362Hz

  3 = 50Hz

LSM9DS0AccelLpf=3

Compass sample rate -

  0 = 3.125Hz

  1 = 6.25Hz

  2 = 12.5Hz

  3 = 25Hz

  4 = 50Hz

  5 = 100Hz

LSM9DS0CompassSampleRate=4

Compass full scale range -

  0 = +/- 200 uT

  1 = +/- 400 uT

  2 = +/- 800 uT

  3 = +/- 1200 uT

LSM9DS0CompassFsr=0

LSM9DS1 settings

Gyro sample rate -

  0 = 95Hz

  1 = 190Hz

  2 = 380Hz

  3 = 760Hz

LSM9DS1GyroSampleRate=2

Gyro full scale range -

  0 = 250 degrees per second

  1 = 500 degrees per second

  2 = 2000 degrees per second

LSM9DS1GyroFsr=1

Gyro high pass filter -

  0 - 9 but see the LSM9DS1 manual for details

LSM9DS1GyroHpf=4

Gyro bandwidth -

  0 - 3 but see the LSM9DS1 manual for details

LSM9DS1GyroBW=1

Accel sample rate -

  1 = 14.9Hz

  2 = 59.5Hz

  3 = 119Hz

  4 = 238Hz

  5 = 476Hz

  6 = 952Hz

LSM9DS1AccelSampleRate=3

Accel full scale range -

  0 = +/- 2g

  1 = +/- 16g

  2 = +/- 4g

  3 = +/- 8g

LSM9DS1AccelFsr=3

Accel low pass filter -

  0 = 408Hz

  1 = 211Hz

  2 = 105Hz

  3 = 50Hz

LSM9DS1AccelLpf=3

Compass sample rate -

  0 = 0.625Hz

  1 = 1.25Hz

  2 = 2.5Hz

  3 = 5Hz

  4 = 10Hz

  5 = 20Hz

  6 = 40Hz

  7 = 80Hz

LSM9DS1CompassSampleRate=5

Compass full scale range -

  0 = +/- 400 uT

  1 = +/- 800 uT

  2 = +/- 1200 uT

  3 = +/- 1600 uT

LSM9DS1CompassFsr=0

BMX055 settings

Gyro sample rate -

  0 = 2000Hz (532Hz filter)

  1 = 2000Hz (230Hz filter)

  2 = 1000Hz (116Hz filter)

  3 = 400Hz (47Hz filter)

  4 = 200Hz (23Hz filter)

  5 = 100Hz (12Hz filter)

  6 = 200Hz (64Hz filter)

  7 = 100Hz (32Hz filter)

BMX055GyroSampleRate=7

Gyro full scale range -

  0 = 2000 deg/s

  1 = 1000 deg/s

  2 = 500 deg/s

  3 = 250 deg/s

  4 = 125 deg/s

BMX055GyroFsr=2

Accel sample rate -

  0 = 15.63Hz

  1 = 31.25

  2 = 62.5

  3 = 125

  4 = 250

  5 = 500

  6 = 1000

  7 = 2000

BMX055AccelSampleRate=3

Accel full scale range -

  0 = +/- 2g

  1 = +/- 4g

  2 = +/- 8g

  3 = +/- 16g

BMX055AccelFsr=2

Mag presets -

  0 = Low power

  1 = Regular

  2 = Enhanced

  3 = High accuracy

BMX055MagPreset=1

Hope this helps,
-Sam
On Nov 18, 2019, 9:31 AM -0800, Samuel Prager sprager@usc.edu, wrote:

Hi Isaac,

I vaguely remember seeing this behavior on one of our e312s but it’s been a while. If I recall, the solution involved the RTIMULib.ini file (which should be created in /etc). Either the ini file was set to use the wrong SPI bus or the ini file was being saved in the wrong place or not at all. I would start there.

Sam
On Nov 18, 2019, 8:24 AM -0800, Beeman, Isaac L. , wrote:

Hi Sam,

Thanks for linking your simple example program for streaming IMU data. I finally got the RTIMULib built and installed on the E312, but when I run your program I get this output:

root@ni-e31x-:~/usr/E312IMUTest/build# ./E312IMUTest
Do something here with example option input: for example
Settings file not found. Using defaults and creating settings file
Failed to open I2C bus 1
Failed to open SPI bus 0, select 0
Failed to open SPI bus 0, select 1
No IMU detected
Using fusion algorithm RTQF
No IMU found
Error intializing IMU

Was there any other setup I needed to do before running it (i.e. creating a settings file for the radio)? Do you think using a newer version of UHD and the E312 image might cause this issue?

Isaac Beeman

From: Samuel Prager sprager@usc.edu
Sent: Tuesday, November 12, 2019 5:50 PM
To: Beeman, Isaac L. ilbeeman@wpi.edu; Michael Dickens michael.dickens@ettus.com
Cc: usrp-users@lists.ettus.com usrp-users@lists.ettus.com
Subject: [EXT] Re: [USRP-users] Question about the IMU (MPU-9150) on the E310

Hi Isaac,

Here is a simple example program I wrote a while back for continuously streaming IMU data on the E310/E312.

https://github.com/samprager/E312IMUTest

See the README for RTIMULib installation instructions (the correct library is https://github.com/RPi-Distro/RTIMULib).

Sam
On Nov 12, 2019, 12:30 PM -0800, Michael Dickens via USRP-users usrp-users@lists.ettus.com, wrote:

Hi Isaac - UHD itself provides no API to the IMU; never has. The RTIMULib, possibly an older version than current and assuming it can be built and installed on the E310, should be able to access the IMU to provide information from it. Note "possibly", "assuming", "should" ... clearly this isn't a majorly supported feature of the E310! Good luck! - MLD

On Tue, Nov 12, 2019 at 12:37 PM Beeman, Isaac L. via USRP-users usrp-users@lists.ettus.com wrote:

Marcus and List,

I was hoping someone knew the steps involved to get the RTIMULib setup on the USRP. I tried building and installing both the RTIMULib and Linux folders, but the Linux one fails:

-- Found unsuitable Qt version "" from NOTFOUND
Qt QTOPENGL library not found.
Qt QTGUI library not found.
Qt QTCORE library not found.
CMake Error at RTIMULibGL/CMakeLists.txt:90 (QT4_ADD_RESOURCES):
    Unknown CMake command "QT4_ADD_RESOURCES".
-- Configuring incomplete, errors occurred!

I figured that I can't install the RTIMULibDemo apps because they use a GUI, so I built and installed the RTIMULibDrive and RTIMULibCal individually. Only, when I try to run one of these apps I get the following error:

RTIMULibDrive: error while loading shared libraries: libRTIMULib.so.7: cannot open shared object file: No such file or directory

I don't get how to fix this. When I build and install the same apps on my host computer they run fine (but obviously can't find any IMU). Considering that any applications I write also use the same libraries, I feel like this is going to be an issue.

There isn't any documentation that I can find on the usage of the C++ library for RTIMULib. Just reading the code in RTIMULibDrive.cpp as an example, it doesn't seem too complicated, but it obviously is a generic program that isn't using the settings needed to connect to the MPU-9150.

If anyone knows how to get one of these apps (RTIMULibDrive or RTIMULibCal) working or how to use RTIMULib.h in connecting to the MPU-9150 over I2C, it would be much appreciated.

-Isaac Beeman

P.S. I also tried 'i2cdetect -y 0' to see if the MPU-9150 has the I2C address 0x69 like the schematics say, but I only get:

Warning: Can't use SMBus Quick Write command, will skip some addresses
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:
10:
20:
30: -- -- -- -- -- -- -- --
40:
50: UU UU -- -- -- -- -- -- -- -- -- -- -- -- -- --
60:
70:

with nothing under 0x69. So that's weird.

-----Original Message-----
From: USRP-users usrp-users-bounces@lists.ettus.com On Behalf Of Marcus D. Leech via USRP-users
Sent: Tuesday, November 12, 2019 10:35 AM
To: usrp-users@lists.ettus.com
Subject: [EXT] Re: [USRP-users] Question about the IMU (MPU-9150) on the E310

On 11/12/2019 10:26 AM, Beeman, Isaac L. via USRP-users wrote:

Hi List,

I have recently started working with the E310/E312 and have gotten multichannel RX/TX and GPS working, but I can't figure out how to grab data off of the internal IMU/MPU-9150. I found some website (http://gnuradio.cn/en/html/support/en/page_usrp_e3x0.html) that said that the USRP image should contain RTIMULib applications with allow the user to test the IMU, but, unless I am looking in the wrong place, the current image for the E310 does not have any RTIMULib applications on it.

I want to know if there are any API calls or libraries that would allow me to do development with the IMU.

-Isaac Beeman


This might help: https://github.com/EttusResearch/meta-ettus/blob/fido/e300-bsp/recipes-suppport/rtimulib/rtimulib/ettus-e300/RTIMULib.ini At some point the rtimulib source moved around and was a bit funny to build and was dropped from the image. The comment about probing and the ini file made me think to look at the old build to see how I handled it. Philip On 11/18/19 2:03 PM, Samuel Prager via USRP-users wrote: > Hi Isaac, > > Yes this is exactly the error we had seen before. I was able to reproduce these errors on our E312. > > For some reason it looks like the auto discover isn’t working properly (not finding correct device type and not assigning correct I2c bus or I2CSlaveAddress). > > You should be able to fix the issue by following these steps: > > 1) root@ettus-e3xx-sg3:~# mv /etc/RTIMULib.ini /etc/RTIMULib.ini.backup > > This will force creation of a new /etc/RTIMULib.ini file > > 2) Now run the program. You should see the following output (as before): > > root@ettus-e3xx-sg3:~# E312IMUTest > Do something here with example option input: for example > Settings file not found. Using defaults and creating settings file > Failed to open I2C bus 1 > Failed to open SPI bus 0, select 0 > No IMU detected > Using fusion algorithm RTQF > No IMU found > > 3) In the newly created /etc/RTIMULib.ini file make the following changes: > > IMUType=2 > > # > # Fusion type type - > #   0 - Null. Use if only sensor data required without fusion > #   1 - Kalman STATE4 > #   2 - RTQF > FusionType=2 > > # > # Is bus I2C: 'true' for I2C, 'false' for SPI > BusIsI2C=true > > # > # I2C Bus (between 0 and 7) > I2CBus=0 > > # > # SPI Bus (between 0 and 7) > SPIBus=0 > > # > # SPI select (between 0 and 1) > SPISelect=0 > > # > # SPI Speed in Hz > SPISpeed=500000 > > # > # I2C slave address (filled in automatically by auto discover) > I2CSlaveAddress=105 > > > 5) You should now be able to run the program successfully (If you get I2C read errors, try restarting the E310. Everything should work afterwards). > > For reference, I have included my complete /etc/RTIMULib.ini file: > > root@ettus-e3xx-sg3:~# cat /etc/RTIMULib.ini > # ##################################################################### > # > # RTIMULib settings file > > # General settings > # > > # IMU type - > #   0 = Auto discover > #   1 = Null (used when data is provided from a remote IMU > #   2 = InvenSense MPU-9150 > #   3 = STM L3GD20H + LSM303D > #   4 = STM L3GD20 + LSM303DLHC > #   5 = STM LSM9DS0 > #   6 = STM LSM9DS1 > #   7 = InvenSense MPU-9250 > #   8 = STM L3GD20H + LSM303DLHC > #   9 = Bosch BMX055 > #   10 = Bosch BNX055 > IMUType=2 > > # > # Fusion type type - > #   0 - Null. Use if only sensor data required without fusion > #   1 - Kalman STATE4 > #   2 - RTQF > FusionType=2 > > # > # Is bus I2C: 'true' for I2C, 'false' for SPI > BusIsI2C=true > > # > # I2C Bus (between 0 and 7) > I2CBus=0 > > # > # SPI Bus (between 0 and 7) > SPIBus=0 > > # > # SPI select (between 0 and 1) > SPISelect=0 > > # > # SPI Speed in Hz > SPISpeed=500000 > > # > # I2C slave address (filled in automatically by auto discover) > I2CSlaveAddress=105 > > # > # IMU axis rotation - see RTIMU.h for details > AxisRotation=0 > > # Pressure sensor type - > #   0 = Auto discover > #   1 = Null (no hardware or don't use) > #   2 = BMP180 > #   3 = LPS25H > #   4 = MS5611 > #   5 = MS5637 > PressureType=0 > > # > # I2C pressure sensor address (filled in automatically by auto discover) > I2CPressureAddress=0 > > # Humidity sensor type - > #   0 = Auto discover > #   1 = Null (no hardware or don't use) > #   2 = HTS221 > #   3 = HTU21D > HumidityType=0 > > # > # I2C humidity sensor address (filled in automatically by auto discover) > I2CHumidityAddress=0 > > # ##################################################################### > # > > # Compass calibration settings > CompassCalValid=false > CompassCalMinX=0.000000 > CompassCalMinY=0.000000 > CompassCalMinZ=0.000000 > CompassCalMaxX=0.000000 > CompassCalMaxY=0.000000 > CompassCalMaxZ=0.000000 > > # ##################################################################### > # > > # Compass adjustment settings > # Compass declination is in radians and is subtracted from calculated heading > compassAdjDeclination=0.000000 > > # ##################################################################### > # > > # Compass ellipsoid calibration > compassCalEllipsoidValid=false > compassCalOffsetX=0.000000 > compassCalOffsetY=0.000000 > compassCalOffsetZ=0.000000 > compassCalCorr11=1.000000 > compassCalCorr12=0.000000 > compassCalCorr13=0.000000 > compassCalCorr21=0.000000 > compassCalCorr22=1.000000 > compassCalCorr23=0.000000 > compassCalCorr31=0.000000 > compassCalCorr32=0.000000 > compassCalCorr33=1.000000 > > # ##################################################################### > # > > # Accel calibration > AccelCalValid=false > AccelCalMinX=0.000000 > AccelCalMinY=0.000000 > AccelCalMinZ=0.000000 > AccelCalMaxX=0.000000 > AccelCalMaxY=0.000000 > AccelCalMaxZ=0.000000 > > # ##################################################################### > # > > # Saved gyro bias data > GyroBiasValid=true > GyroBiasX=-0.031280 > GyroBiasY=-0.017285 > GyroBiasZ=-0.020221 > > # ##################################################################### > # > # MPU-9150 settings > # > > # Gyro sample rate (between 5Hz and 1000Hz) > MPU9150GyroAccelSampleRate=900 > > # > # Compass sample rate (between 1Hz and 100Hz) > MPU9150CompassSampleRate=80 > > # > # Gyro/accel low pass filter - > #   0 - gyro: 256Hz, accel: 260Hz > #   1 - gyro: 188Hz, accel: 184Hz > #   2 - gyro: 98Hz, accel: 98Hz > #   3 - gyro: 42Hz, accel: 44Hz > #   4 - gyro: 20Hz, accel: 21Hz > #   5 - gyro: 10Hz, accel: 10Hz > #   6 - gyro: 5Hz, accel: 5Hz > MPU9150GyroAccelLpf=4 > > # > # Gyro full scale range - > #   0  - +/- 250 degress per second > #   8  - +/- 500 degress per second > #   16 - +/- 1000 degress per second > #   24 - +/- 2000 degress per second > MPU9150GyroFSR=8 > > # > # Accel full scale range - > #   0  - +/- 2g > #   8  - +/- 4g > #   16 - +/- 8g > #   24 - +/- 16g > MPU9150AccelFSR=0 > > # ##################################################################### > # > # MPU-9250 settings > # > > # Gyro sample rate (between 5Hz and 1000Hz plus 8000Hz and 32000Hz) > MPU9250GyroAccelSampleRate=80 > > # > # Compass sample rate (between 1Hz and 100Hz) > MPU9250CompassSampleRate=40 > > # > # Gyro low pass filter - > #   0x11 - 8800Hz, 0.64mS delay > #   0x10 - 3600Hz, 0.11mS delay > #   0x00 - 250Hz, 0.97mS delay > #   0x01 - 184Hz, 2.9mS delay > #   0x02 - 92Hz, 3.9mS delay > #   0x03 - 41Hz, 5.9mS delay > #   0x04 - 20Hz, 9.9mS delay > #   0x05 - 10Hz, 17.85mS delay > #   0x06 - 5Hz, 33.48mS delay > MPU9250GyroLpf=3 > > # > # Accel low pass filter - > #   0x08 - 1130Hz, 0.75mS delay > #   0x00 - 460Hz, 1.94mS delay > #   0x01 - 184Hz, 5.80mS delay > #   0x02 - 92Hz, 7.80mS delay > #   0x03 - 41Hz, 11.80mS delay > #   0x04 - 20Hz, 19.80mS delay > #   0x05 - 10Hz, 35.70mS delay > #   0x06 - 5Hz, 66.96mS delay > MPU9250AccelLpf=3 > > # > # Gyro full scale range - > #   0  - +/- 250 degress per second > #   8  - +/- 500 degress per second > #   16 - +/- 1000 degress per second > #   24 - +/- 2000 degress per second > MPU9250GyroFSR=16 > > # > # Accel full scale range - > #   0  - +/- 2g > #   8  - +/- 4g > #   16 - +/- 8g > #   24 - +/- 16g > MPU9250AccelFSR=16 > > # ##################################################################### > # > # L3GD20H + LSM303D settings > > # > # Gyro sample rate - > #   0 = 12.5Hz > #   1 = 25Hz > #   2 = 50Hz > #   3 = 100Hz > #   4 = 200Hz > #   5 = 400Hz > #   6 = 800Hz > GD20HM303DGyroSampleRate=2 > > # > # Gyro full scale range - > #   0 = 245 degrees per second > #   1 = 500 degrees per second > #   2 = 2000 degrees per second > GD20HM303DGyroFsr=1 > > # > # Gyro high pass filter - > #   0 - 9 but see the L3GD20H manual for details > GD20HM303DGyroHpf=4 > > # > # Gyro bandwidth - > #   0 - 3 but see the L3GD20H manual for details > GD20HM303DGyroBW=1 > > # Accel sample rate - > #   1 = 3.125Hz > #   2 = 6.25Hz > #   3 = 12.5Hz > #   4 = 25Hz > #   5 = 50Hz > #   6 = 100Hz > #   7 = 200Hz > #   8 = 400Hz > #   9 = 800Hz > #   10 = 1600Hz > GD20HM303DAccelSampleRate=5 > > # > # Accel full scale range - > #   0 = +/- 2g > #   1 = +/- 4g > #   2 = +/- 6g > #   3 = +/- 8g > #   4 = +/- 16g > GD20HM303DAccelFsr=3 > > # > # Accel low pass filter - > #   0 = 773Hz > #   1 = 194Hz > #   2 = 362Hz > #   3 = 50Hz > GD20HM303DAccelLpf=3 > > # > # Compass sample rate - > #   0 = 3.125Hz > #   1 = 6.25Hz > #   2 = 12.5Hz > #   3 = 25Hz > #   4 = 50Hz > #   5 = 100Hz > GD20HM303DCompassSampleRate=4 > > # > # Compass full scale range - > #   0 = +/- 200 uT > #   1 = +/- 400 uT > #   2 = +/- 800 uT > #   3 = +/- 1200 uT > GD20HM303DCompassFsr=0 > > # ##################################################################### > # > # L3GD20 + LSM303DLHC settings > # > > # Gyro sample rate - > #   0 = 95z > #   1 = 190Hz > #   2 = 380Hz > #   3 = 760Hz > GD20M303DLHCGyroSampleRate=0 > > # > # Gyro full scale range - > #   0 = 250 degrees per second > #   1 = 500 degrees per second > #   2 = 2000 degrees per second > GD20M303DLHCGyroFsr=1 > > # > # Gyro high pass filter - > #   0 - 9 but see the L3GD20 manual for details > GD20M303DLHCGyroHpf=4 > > # > # Gyro bandwidth - > #   0 - 3 but see the L3GD20 manual for details > GD20M303DLHCGyroBW=1 > > # Accel sample rate - > #   1 = 1Hz > #   2 = 10Hz > #   3 = 25Hz > #   4 = 50Hz > #   5 = 100Hz > #   6 = 200Hz > #   7 = 400Hz > GD20M303DLHCAccelSampleRate=4 > > # > # Accel full scale range - > #   0 = +/- 2g > #   1 = +/- 4g > #   2 = +/- 8g > #   3 = +/- 16g > GD20M303DLHCAccelFsr=2 > > # > # Compass sample rate - > #   0 = 0.75Hz > #   1 = 1.5Hz > #   2 = 3Hz > #   3 = 7.5Hz > #   4 = 15Hz > #   5 = 30Hz > #   6 = 75Hz > #   7 = 220Hz > GD20M303DLHCCompassSampleRate=5 > > # > # Compass full scale range - > #   1 = +/- 130 uT > #   2 = +/- 190 uT > #   3 = +/- 250 uT > #   4 = +/- 400 uT > #   5 = +/- 470 uT > #   6 = +/- 560 uT > #   7 = +/- 810 uT > GD20M303DLHCCompassFsr=1 > > # ##################################################################### > # > # L3GD20H + LSM303DLHC settings > # > > # > # Gyro sample rate - > #   0 = 12.5Hz > #   1 = 25Hz > #   2 = 50Hz > #   3 = 100Hz > #   4 = 200Hz > #   5 = 400Hz > #   6 = 800Hz > GD20HM303DLHCGyroSampleRate=2 > > # > # Gyro full scale range - > #   0 = 245 degrees per second > #   1 = 500 degrees per second > #   2 = 2000 degrees per second > GD20HM303DLHCGyroFsr=1 > > # > # Gyro high pass filter - > #   0 - 9 but see the L3GD20H manual for details > GD20HM303DLHCGyroHpf=4 > > # > # Gyro bandwidth - > #   0 - 3 but see the L3GD20H manual for details > GD20HM303DLHCGyroBW=1 > > # Accel sample rate - > #   1 = 1Hz > #   2 = 10Hz > #   3 = 25Hz > #   4 = 50Hz > #   5 = 100Hz > #   6 = 200Hz > #   7 = 400Hz > GD20HM303DLHCAccelSampleRate=4 > > # > # Accel full scale range - > #   0 = +/- 2g > #   1 = +/- 4g > #   2 = +/- 8g > #   3 = +/- 16g > GD20HM303DLHCAccelFsr=2 > > # > # Compass sample rate - > #   0 = 0.75Hz > #   1 = 1.5Hz > #   2 = 3Hz > #   3 = 7.5Hz > #   4 = 15Hz > #   5 = 30Hz > #   6 = 75Hz > #   7 = 220Hz > GD20HM303DLHCCompassSampleRate=5 > > # > # Compass full scale range - > #   1 = +/- 130 uT > #   2 = +/- 190 uT > #   3 = +/- 250 uT > #   4 = +/- 400 uT > #   5 = +/- 470 uT > #   6 = +/- 560 uT > #   7 = +/- 810 uT > GD20HM303DLHCCompassFsr=1 > > # ##################################################################### > # > # LSM9DS0 settings > # > > # Gyro sample rate - > #   0 = 95z > #   1 = 190Hz > #   2 = 380Hz > #   3 = 760Hz > LSM9DS0GyroSampleRate=0 > > # > # Gyro full scale range - > #   0 = 250 degrees per second > #   1 = 500 degrees per second > #   2 = 2000 degrees per second > LSM9DS0GyroFsr=1 > > # > # Gyro high pass filter - > #   0 - 9 but see the LSM9DS0 manual for details > LSM9DS0GyroHpf=4 > > # > # Gyro bandwidth - > #   0 - 3 but see the LSM9DS0 manual for details > LSM9DS0GyroBW=1 > > # Accel sample rate - > #   1 = 3.125Hz > #   2 = 6.25Hz > #   3 = 12.5Hz > #   4 = 25Hz > #   5 = 50Hz > #   6 = 100Hz > #   7 = 200Hz > #   8 = 400Hz > #   9 = 800Hz > #   10 = 1600Hz > LSM9DS0AccelSampleRate=5 > > # > # Accel full scale range - > #   0 = +/- 2g > #   1 = +/- 4g > #   2 = +/- 6g > #   3 = +/- 8g > #   4 = +/- 16g > LSM9DS0AccelFsr=3 > > # > # Accel low pass filter - > #   0 = 773Hz > #   1 = 194Hz > #   2 = 362Hz > #   3 = 50Hz > LSM9DS0AccelLpf=3 > > # > # Compass sample rate - > #   0 = 3.125Hz > #   1 = 6.25Hz > #   2 = 12.5Hz > #   3 = 25Hz > #   4 = 50Hz > #   5 = 100Hz > LSM9DS0CompassSampleRate=4 > > # > # Compass full scale range - > #   0 = +/- 200 uT > #   1 = +/- 400 uT > #   2 = +/- 800 uT > #   3 = +/- 1200 uT > LSM9DS0CompassFsr=0 > > # ##################################################################### > # > # LSM9DS1 settings > # > > # Gyro sample rate - > #   0 = 95Hz > #   1 = 190Hz > #   2 = 380Hz > #   3 = 760Hz > LSM9DS1GyroSampleRate=2 > > # > # Gyro full scale range - > #   0 = 250 degrees per second > #   1 = 500 degrees per second > #   2 = 2000 degrees per second > LSM9DS1GyroFsr=1 > > # > # Gyro high pass filter - > #   0 - 9 but see the LSM9DS1 manual for details > LSM9DS1GyroHpf=4 > > # > # Gyro bandwidth - > #   0 - 3 but see the LSM9DS1 manual for details > LSM9DS1GyroBW=1 > > # Accel sample rate - > #   1 = 14.9Hz > #   2 = 59.5Hz > #   3 = 119Hz > #   4 = 238Hz > #   5 = 476Hz > #   6 = 952Hz > LSM9DS1AccelSampleRate=3 > > # > # Accel full scale range - > #   0 = +/- 2g > #   1 = +/- 16g > #   2 = +/- 4g > #   3 = +/- 8g > LSM9DS1AccelFsr=3 > > # > # Accel low pass filter - > #   0 = 408Hz > #   1 = 211Hz > #   2 = 105Hz > #   3 = 50Hz > LSM9DS1AccelLpf=3 > > # > # Compass sample rate - > #   0 = 0.625Hz > #   1 = 1.25Hz > #   2 = 2.5Hz > #   3 = 5Hz > #   4 = 10Hz > #   5 = 20Hz > #   6 = 40Hz > #   7 = 80Hz > LSM9DS1CompassSampleRate=5 > > # > # Compass full scale range - > #   0 = +/- 400 uT > #   1 = +/- 800 uT > #   2 = +/- 1200 uT > #   3 = +/- 1600 uT > LSM9DS1CompassFsr=0 > > # ##################################################################### > # > # BMX055 settings > # > > # > # Gyro sample rate - > #   0 = 2000Hz (532Hz filter) > #   1 = 2000Hz (230Hz filter) > #   2 = 1000Hz (116Hz filter) > #   3 = 400Hz (47Hz filter) > #   4 = 200Hz (23Hz filter) > #   5 = 100Hz (12Hz filter) > #   6 = 200Hz (64Hz filter) > #   7 = 100Hz (32Hz filter) > BMX055GyroSampleRate=7 > > # > # Gyro full scale range - > #   0 = 2000 deg/s > #   1 = 1000 deg/s > #   2 = 500 deg/s > #   3 = 250 deg/s > #   4 = 125 deg/s > BMX055GyroFsr=2 > > # > # Accel sample rate - > #   0 = 15.63Hz > #   1 = 31.25 > #   2 = 62.5 > #   3 = 125 > #   4 = 250 > #   5 = 500 > #   6 = 1000 > #   7 = 2000 > BMX055AccelSampleRate=3 > > # > # Accel full scale range - > #   0 = +/- 2g > #   1 = +/- 4g > #   2 = +/- 8g > #   3 = +/- 16g > BMX055AccelFsr=2 > > # > # Mag presets - > #   0 = Low power > #   1 = Regular > #   2 = Enhanced > #   3 = High accuracy > BMX055MagPreset=1 > > > > Hope this helps, > -Sam > On Nov 18, 2019, 9:31 AM -0800, Samuel Prager <sprager@usc.edu>, wrote: >> Hi Isaac, >> >> I vaguely remember seeing this behavior on one of our e312s but it’s been a while. If I recall, the solution involved the RTIMULib.ini file (which should be created in /etc). Either the ini file was set to use the wrong SPI bus or the ini file was being saved in the wrong place or not at all. I would start there. >> >> Sam >> On Nov 18, 2019, 8:24 AM -0800, Beeman, Isaac L. , wrote: >>> Hi Sam, >>> >>> Thanks for linking your simple example program for streaming IMU data. I finally got the RTIMULib built and installed on the E312, but when I run your program I get this output: >>> >>> root@ni-e31x-:~/usr/E312IMUTest/build# ./E312IMUTest >>> Do something here with example option input: for example >>> Settings file not found. Using defaults and creating settings file >>> Failed to open I2C bus 1 >>> Failed to open SPI bus 0, select 0 >>> Failed to open SPI bus 0, select 1 >>> No IMU detected >>> Using fusion algorithm RTQF >>> No IMU found >>> Error intializing IMU >>> >>> Was there any other setup I needed to do before running it (i.e. creating a settings file for the radio)? Do you think using a newer version of UHD and the E312 image might cause this issue? >>> >>> Isaac Beeman >>> >>> From: Samuel Prager <sprager@usc.edu> >>> Sent: Tuesday, November 12, 2019 5:50 PM >>> To: Beeman, Isaac L. <ilbeeman@wpi.edu>; Michael Dickens <michael.dickens@ettus.com> >>> Cc: usrp-users@lists.ettus.com <usrp-users@lists.ettus.com> >>> Subject: [EXT] Re: [USRP-users] Question about the IMU (MPU-9150) on the E310 >>> >>> Hi Isaac, >>> >>> Here is a simple example program I wrote a while back for continuously streaming IMU data on the E310/E312. >>> >>> https://github.com/samprager/E312IMUTest >>> >>> See the README for RTIMULib installation instructions (the correct library is https://github.com/RPi-Distro/RTIMULib). >>> >>> Sam >>> On Nov 12, 2019, 12:30 PM -0800, Michael Dickens via USRP-users <usrp-users@lists.ettus.com>, wrote: >>>> Hi Isaac - UHD itself provides no API to the IMU; never has. The RTIMULib, possibly an older version than current and assuming it can be built and installed on the E310, should be able to access the IMU to provide information from it. Note "possibly", "assuming", "should" ... clearly this isn't a majorly supported feature of the E310! Good luck! - MLD >>>> >>>> On Tue, Nov 12, 2019 at 12:37 PM Beeman, Isaac L. via USRP-users <usrp-users@lists.ettus.com> wrote: >>>>> Marcus and List, >>>>> >>>>> I was hoping someone knew the steps involved to get the RTIMULib setup on the USRP. I tried building and installing both the RTIMULib and Linux folders, but the Linux one fails: >>>>> >>>>> >>>>> -- Found unsuitable Qt version "" from NOTFOUND >>>>> Qt QTOPENGL library not found. >>>>> Qt QTGUI library not found. >>>>> Qt QTCORE library not found. >>>>> CMake Error at RTIMULibGL/CMakeLists.txt:90 (QT4_ADD_RESOURCES): >>>>>     Unknown CMake command "QT4_ADD_RESOURCES". >>>>> -- Configuring incomplete, errors occurred! >>>>> >>>>> >>>>> I figured that I can't install the RTIMULibDemo apps because they use a GUI, so I built and installed the RTIMULibDrive and RTIMULibCal individually. Only, when I try to run one of these apps I get the following error: >>>>> >>>>> >>>>> RTIMULibDrive: error while loading shared libraries: libRTIMULib.so.7: cannot open shared object file: No such file or directory >>>>> >>>>> >>>>> I don't get how to fix this. When I build and install the same apps on my host computer they run fine (but obviously can't find any IMU). Considering that any applications I write also use the same libraries, I feel like this is going to be an issue. >>>>> >>>>> There isn't any documentation that I can find on the usage of the C++ library for RTIMULib. Just reading the code in RTIMULibDrive.cpp as an example, it doesn't seem too complicated, but it obviously is a generic program that isn't using the settings needed to connect to the MPU-9150. >>>>> >>>>> If anyone knows how to get one of these apps (RTIMULibDrive or RTIMULibCal) working or how to use RTIMULib.h in connecting to the MPU-9150 over I2C, it would be much appreciated. >>>>> >>>>> -Isaac Beeman >>>>> >>>>> >>>>> >>>>> P.S. I also tried 'i2cdetect -y 0' to see if the MPU-9150 has the I2C address 0x69 like the schematics say, but I only get: >>>>> >>>>> Warning: Can't use SMBus Quick Write command, will skip some addresses >>>>>      0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f >>>>> 00: >>>>> 10: >>>>> 20: >>>>> 30: -- -- -- -- -- -- -- -- >>>>> 40: >>>>> 50: UU UU -- -- -- -- -- -- -- -- -- -- -- -- -- -- >>>>> 60: >>>>> 70: >>>>> >>>>> with nothing under 0x69. So that's weird. >>>>> >>>>> >>>>> -----Original Message----- >>>>> From: USRP-users <usrp-users-bounces@lists.ettus.com> On Behalf Of Marcus D. Leech via USRP-users >>>>> Sent: Tuesday, November 12, 2019 10:35 AM >>>>> To: usrp-users@lists.ettus.com >>>>> Subject: [EXT] Re: [USRP-users] Question about the IMU (MPU-9150) on the E310 >>>>> >>>>> On 11/12/2019 10:26 AM, Beeman, Isaac L. via USRP-users wrote: >>>>>> Hi List, >>>>>> >>>>>> I have recently started working with the E310/E312 and have gotten multichannel RX/TX and GPS working, but I can't figure out how to grab data off of the internal IMU/MPU-9150. I found some website (http://gnuradio.cn/en/html/support/en/page_usrp_e3x0.html) that said that the USRP image should contain RTIMULib applications with allow the user to test the IMU, but, unless I am looking in the wrong place, the current image for the E310 does not have any RTIMULib applications on it. >>>>>> >>>>>> I want to know if there are any API calls or libraries that would allow me to do development with the IMU. >>>>>> >>>>>> -Isaac Beeman >>>>>> >>>>>> _______________________________________________ >>>>> >>>>> You might start here: >>>>> >>>>> https://github.com/RTIMULib >>>>> >>>>> _______________________________________________ >>>>> USRP-users mailing list >>>>> USRP-users@lists.ettus.com >>>>> http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com >>>> >>>> >>>> -- >>>> Michael Dickens >>>> Ettus Research Technical Support >>>> Email: support@ettus.com >>>> Web: https://ettus.com/ >>>> _______________________________________________ >>>> USRP-users mailing list >>>> USRP-users@lists.ettus.com >>>> https://urldefense.proofpoint.com/v2/url?u=http-3A__lists.ettus.com_mailman_listinfo_usrp-2Dusers-5Flists.ettus.com&d=DwICAg&c=clK7kQUTWtAVEOVIgvi0NU5BOUHhpN0H8p7CSfnc_gI&r=opIuWAKmywF059tAs2i3Pg&m=rGLxgINOMrS4sAfnjQ9mFF9r3gnmnGlRtI8Lfh1c_9g&s=8wPPngBEnPiaAxtUARbH1opcSV3Pgih5Konyr2kf9-c&e= > > > _______________________________________________ > USRP-users mailing list > USRP-users@lists.ettus.com > http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com >