Skip to content

OpenIMU300 Reference Application Specification

Mike Horton edited this page Aug 26, 2019 · 27 revisions

1.0 Background

OpenIMU300 family consists of OpenIMU300ZI and OpenIMU300RI modules. Both of these modules have ST Micro M4 CPU and 9-axis IMU (3-Axis Accelerometer, 3-Axis Gyro, and 3-Axis Magnetometer). The OpenIMU300ZI has two UART ports and one SPI port. The OpenIMU300RI has one CAN port and one RS-232 port.

The OpenIMU300 family supports an open source software stack for developing custom IMU algorithm applications. There are three core Reference applications IMU, VG_AHRS, and INS. The OpenIMU300ZI and OpenIMU300RI ship with the IMU Reference application installed, and this application outputs calibrated IMU data at a fixed rate. The VG_AHRS Reference application provides an independent "un-aided" dynamic attitude and heading algorithm blending gyro integrated data with long term corrections from the accelerometer and magnetometer channels. The INS Reference application interfaces to an external GPS/GNSS receiver with NMEA messages and provides a loosely coupled GNSS/INS Kalman Filter. The Reference applications are functionally tested and performance tested prior to release. The IMU Reference application is performance guaranteed to the sensor accuracy levels specified in the respective OpenIMU300ZI and OpenIMU300RI module data-sheets. However, dynamic accuracy and overall algorithm performance in the VG_AHRS Reference and INS Reference application is NOT guaranteed. Any dynamic accuracy data reported should be considered as informational only.

There are also Educational applications used for learning the OpenIMU platform. These are Leveler, Compass, and GPS_Test applications. The Leveler application uses the accelerometers to compute a static roll and pitch solution. The Compass application uses the magnetometer to compute heading and demonstrates the procedure of Hard and Soft Iron Calibration. The GPS Test application reads GPS Data on one port, formats into standard packets and outputs the data on the primary port. Educational apps are functionally tested to compile and work on the hardware prior to release, but there is no performance test done.

Finally Aceinna publishes Demo applications which are demonstrations of certain features or capabilities. Demo applications are not tested as part of the release process, and they are not guaranteed in any way. These may not always work and the may require additional debugging to make work. Availability of Demo applications varies and Demo applications may or may not be included in release updates.

2.0 Detailed Specifications:

IMU Reference Application

Primary Data Port:

  • OpenIMU300RI: CAN
  • OpenIMU300ZI: UART1 or SPI (Selectable)

Debug/Console Port:

  • OpenIMU300RI: RS-232, 38.4KBaud Default
  • OpenIMU300ZI: UART2, 38.4KBaud Default

Output Messages:

  • OpenIMU300 Default Data Output Rate: 100Hz
  • OpenIMU300RI Default Baud Rate: 250Kb/s
  • OpenIMU300ZI UART Default Baud Rate: 115.2kb/s
  • OpenIMU300RI Primary Messages: J-1939 based, Acceleration (PGN 61485), Angular Rate (PGN 61482), Magnetic Field (PGN tba)
  • OpenIMU300ZI UART Default Message: z1 packet, including scaled XYZ Acceleration, XYZ Angular Rate, XYZ Magnetic Field, and time stamp.
  • OpenIMU300ZI SPI Primary Message: 0x3e Block Mode Read

Production Test Features:

  • OpenIMU300ZI: SPI Test

Input Messages:

  • OpenIMU300RI: Firmware Version (PGN 65242), Save Config (PGN 65361), Packet Rate (PGN 65365), Packet Type (PGN 65366), Digital Filter (PGN 65367), Orientation (PGN 65360)
  • OpenIMU300ZI: 'pG' - ping, 'gV' - version, 'gA' - get all params, 'gP' - get a param, 'sC' - save current configuration permanently, 'uP'- update param. Params include Baud Rate, Packet Type, Packet Rate, Accel LPF, Rate LPF, and Orientation

Debug Messages:

  • 1Hz ASCII Data
  • CLI

Performance (Guaranteed):

See OpenIMU300RI and OpenIMU300ZI Data Sheets

VG_AHRS Reference Application

Primary Data Port:

  • OpenIMU300RI: CAN
  • OpenIMU300ZI: UART1 or SPI (Selectable)

Debug/Console Port:

  • OpenIMU300RI: RS-232, 38.4KBaud Default
  • OpenIMU300ZI: UART2, 38.4KBaud Default

Output Messages:

  • OpenIMU300 Default Data Output Rate: 100Hz
  • OpenIMU300RI Default Baud Rate: 250kb/s
  • OpenIMU300ZI UART Default Baud Rate: 115.2kb/s
  • OpenIMU300RI Primary Message: J-1939 based, SSI2 (PGN: 61481), Heading (PGN: tba), Angular Rate (PGN: 61482), Acceleration (PGN: 61485)
  • OpenIMU300ZI UART Default Message: a1 packet, including scaled Roll, Pitch, Heading, XYZ Acceleration, XYZ Angular Rate, and time stamp
  • OpenIMU300ZI SPI Primary Message: 0x3e Block Mode Read

Input Messages:

  • OpenIMU300RI: Firmware Version (PGN 65242), Save Config (PGN 65361), Packet Rate (PGN 65365), Packet Type (PGN 65366), Digital Filter (PGN 65367), Orientation (PGN 65360)
  • OpenIMU300ZI: 'pG' - ping, 'gV' - version, 'gA' - get all params, 'gP' - get a param, 'sC' - save current configuration permanently, 'uP'- update param. Params include Baud Rate, Packet Type, Packet Rate, Accel LPF, Rate LPF, and Orientation

** TBD: Need to add Hard/Soft Iron Cal Commands **

Debug Messages:

  • 1Hz ASCII Data
  • CLI

Performance (Drive Test):

  • Roll/Pitch: 0.5 Deg (RMS)
  • Heading: 2.0 Deg (RMS, after Hard-Iron Calibration)

INS Reference Application

Primary Data Port:

  • OpenIMU300RI: CAN
  • OpenIMU300ZI: UART1 or SPI (Selectable)

GPS/GNSS Input Port:

  • OpenIMU300RI: RS-232, NMEA Messages, 38.4KBaud Default
  • OpenIMU300ZI: UART2, NMEA Messages, 38.4KBaud Default

Output Messages:

  • OpenIMU300 Default Data Output Rate: 100Hz
  • OpenIMU300RI Default Baud Rate: 250kb/s
  • OpenIMU300ZI UART Default Baud Rate: 115.2kb/s
  • OpenIMU300RI Primary Message: J-1939 based, Lat/Long (PGN: 65267), Heading (PGN: tba), SSI2 (PGN: 61481), Angular Rate (PGN 61482), Acceleration (PGN 61485)
  • OpenIMU300ZI UART Default Message: e1 packet, including scaled Lat/Long, Roll, Pitch, Heading, and Angular Rate
  • OpenIMU300ZI SPI Primary Message: 0x3e Block Mode Read

Input Messages:

  • OpenIMU300RI: Firmware Version (PGN 65242), Save Config (PGN 65361), Packet Rate (PGN 65365), Packet Type (PGN 65366), Digital Filter (PGN 65367), Orientation (PGN 65360)
  • OpenIMU300ZI: 'pG' - ping, 'gV' - version, 'gA' - get all params, 'gP' - get a param, 'sC' - save current configuration permanently, 'uP'- update param. Params include Baud Rate, Packet Type, Packet Rate, Accel LPF, Rate LPF, and Orientation

** TBD: Need to add Lever Arm **

Debug Messages:

  • None

Performance (Drive Test):

  • Dead Reckoning: TBD (m) after 10.0s GPS loss
  • Roll/Pitch: 0.5 Deg (RMS)
  • Heading: 2.0 Deg (RMS, after Hard-Iron Calibration)

Leveler Educational Application

Primary Data Port:

  • OpenIMU300RI: CAN
  • OpenIMU300ZI: UART1

Debug/Console Port:

  • OpenIMU300RI: RS-232, 38.4KBaud Default
  • OpenIMU300ZI: UART2, 38.4KBaud Default

Output Messages:

  • OpenIMU300 Default Data Output Rate: 10Hz
  • OpenIMU300RI Default Baud Rate: 250Kb/s
  • OpenIMU300ZI UART Default Baud Rate: 115.2kb/s
  • OpenIMU300RI Primary Message: J-1939 based, Roll/Pitch SSI2 (PGN: 61481)
  • OpenIMU300ZI UART Default Message: l1 packet

Input Messages:

  • OpenIMU300RI, OpenIMU300ZI: None

Debug Messages:

  • 1Hz ASCII Data
  • CLI

Compass Educational Application

Primary Data Port:

  • OpenIMU300RI: CAN
  • OpenIMU300ZI: UART1

Debug/Console Port:

  • OpenIMU300RI: RS-232, 38.4KBaud Default
  • OpenIMU300ZI: UART2, 38.4KBaud Default

Output Messages:

  • OpenIMU300 Default Data Output Rate: 10Hz
  • OpenIMU300RI Default Baud Rate: 250Kb/s
  • OpenIMU300ZI UART Default Baud Rate: 115.2kb/s
  • OpenIMU300RI Primary Message: J-1939 based, Heading (PGN: xyz), Roll/Pitch SSI2 (PGN: 61482)
  • OpenIMU300ZI UART Default Message: c1 packet

Input Messages:

  • OpenIMU300RI, OpenIMU300ZI: Hard_Soft Iron Cal

Debug Messages:

  • 1Hz ASCII Data
  • CLI

GPS_Test Educational Application

Primary Data Port:

  • OpenIMU300RI: CAN
  • OpenIMU300ZI: UART1

GPS/GNSS Input Port:

  • OpenIMU300RI: RS-232, 38.4KBaud Default
  • OpenIMU300ZI: UART2, 38.4KBaud Default

Output Messages:

  • OpenIMU300 Default Data Output Rate: 10Hz
  • OpenIMU300RI Default Baud Rate: 250Kb/s
  • OpenIMU300ZI UART Default Baud Rate: 115.2kb/s
  • OpenIMU300RI Primary Message: J-1939 based, Lat/Long (PGN: 65267)
  • OpenIMU300ZI UART Default Message: g1 packet

Input Messages:

  • OpenIMU300RI, OpenIMU300ZI: None

Debug Messages:

  • 1Hz ASCII Data
  • CLI

3.0 Test Requirements:

  • All Applications: Confirm Serial Bootloader works.
  • All Applications (OpenIMU300RI): Confirm Input/Output messages functional with Raspberry Pi3 and PyCAN card
  • All Applications (OpenIMU300ZI): Confirm Input/Output messages functional with python openimu driver and Aceinna Navigation Studio developers site
  • IMU Application Performance: Confirm Specifications by Product Test Report
  • VG_AHRS, INS Application Performance: Confirm Typical Performance by Drive Test

4.0 Test Results:

  • List results from Tests required in 3.0
  • List release notes Summary
  • Link to Downloadable/Install Ready Binaries on Aceinna Developer Site