logoVibe - One Wheel E-Bike
Electrical

Inertial Measurement Unit

(DMU11)

The DMU11 is the primary Inertial Measurement Unit (IMU) for Vibe, which provides precise 6-axis motion data used by the balance PID control system to maintain balance. The motor controller used in Vibe (VESC) has a built-in IMU that works to an extent, but in my experience the measurements tend to drift and can cause nose-dives on rough or uneven roads due to their poor vibration related performance.

The DMU11, on the other hand, offers excellent vibration resistance due to it's unique ring vibrating structure, making a significant difference in maintaining low drift and accuracy of the positioning data.

Our gyroscopes use a ring as the vibrating structure suspended by legs around the ring. This means that the sensor is balanced and symmetrical and therefore shocks and vibration will not cause any undesirable motion that would be observed in a non-balanced structure such as a tuning fork. - Silicon Sensing (DMU11 Manufacturer)

Significant amount of research went into picking a reliable IMU for the Vibe's control system and DMU11 was the choice given the cost/quality factor. The robustness of the IMU contributes significantly to the safety of the Vibe.

DMU11 PropertyValue
Comm. ProtocolRS-422 Serial
Baud Rate460,800 bps
Update Rate200 Hz
Output Data formatSee DMU11 Output Data Frame table at the end

DMU11 <-> VESC interface

The DMU11 communicates using a RS-422 differential serial interface, which is a standard communication protocol in Industrial Control systems.

The VESC motor controller supports SPI, CAN, I2C and UART. Since the UART port is not being used on the VESC for the Vibe project, the best way forward for the moment is to convert the RS422 serial output to the UART (TTL) using a converter.

Image

DMU11 Breakout board

Please use the following gerber files with your PCB manufacturer of choice to produce the DMU11 Breakout board, which makes it easy to wire up the IMU to the RS422-TTL converter.

Image

DMU11-BreakoutBoard-gerber.zip


DMU11 Output Data Frame

As obtained from the datasheet. Being provided here for quick reference.

ItemWordData ItemValue / Unit
00Header16 Bit, 0x55AA
11Message Count16 Bit, 0 to 65535 decimal
22–3Axis X Rate32 Bit Single Precision FP, (°/s)
34–5Axis X Acceleration32 Bit Single Precision FP, (g)
46–7Axis Y Rate32 Bit Single Precision FP, (°/s)
58–9Axis Y Acceleration32 Bit Single Precision FP, (g)
610–11Axis Z Rate32 Bit Single Precision FP, (°/s)
712–13Axis Z Acceleration32 Bit Single Precision FP, (g)
814–15ReservedReserved
916–17Average IMU Temperature32 Bit Single Precision FP, (°C)
1018–19Axis X Delta Theta32 Bit Single Precision FP, (°)
1120–21Axis X Delta Velocity32 Bit Single Precision FP, (m/s)
1222–23Axis Y Delta Theta32 Bit Single Precision FP, (°)
1324–25Axis Y Delta Velocity32 Bit Single Precision FP, (m/s)
1426–27Axis Z Delta Theta32 Bit Single Precision FP, (°)
1528–29Axis Z Delta Velocity32 Bit Single Precision FP, (m/s)
1630System Startup BIT Flags16 Bit decimal value
1731System Operation BIT Flags16 Bit decimal value
1832ReservedReserved
1933Checksum16 Bit 2’s Complement of the 16 Bit Sum of the Previous 0–18 Data Items