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
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.
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
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 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:
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:
- root@ettus-e3xx-sg3:~# mv /etc/RTIMULib.ini /etc/RTIMULib.ini.backup
This will force creation of a new /etc/RTIMULib.ini file
- 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
- 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
- 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
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:
- root@ettus-e3xx-sg3:~# mv /etc/RTIMULib.ini /etc/RTIMULib.ini.backup
This will force creation of a new /etc/RTIMULib.ini file
- 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
- 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
- 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
>