FlexSEA Wiki


User Tools

Site Tools


Data, Units & Conversion Formulas

Data available

Variable Full name Units Notes
Timestamp Reception time ms Not filtered
State_time Internal time ms Not filtered
Accelx, y, z Accelerometer, 3 channels bits Conversion factor of 8192 LSB/g, not filtered
Gyroz, y, z Gyroscope, 3 channels bits Conversion factor of 32.8 LSB/DPS (DPS = degrees per second), not filtered
Mot_ang Motor Angle ticks Not filtered
Mot_vel Motor Velocity ticks/ms See note 1
Mot_acc Motor Acceleration rad/s^2 See note 1
Mot_curr Motor Current mA Internally filtered, high bandwidth
Mot_volt Motor Voltage mV Not filtered
Batt_volt Battery Voltage mV Analog: 1st order RC, fc = 3.56kHz. Digital: moving average of 32 samples, equivalent to 138Hz.
Batt_curr Battery Current mA Analog filter, 884Hz
Temp Temperature °C Sampled at 10kHz, moving average of 16 (equivalent to 277Hz)
Genvar_3 Generic Variable #3 (currently used for torque at the ankle) 10*N.m Not filtered
Ank_ang Ankle Angle degrees x 10 Not filtered
Ank_vel Ankle Velocity 10 degrees/sec Filtered 3rd order Butteworth with 30 Hz cutoff
Ank_from_mot - - Internal variable
Cur_stpt - - Internal variable
Step_energy Step Energy J x 10 Integrated positive power, not filtered
Walking_state - - Internal variable
Gait_state - - Internal variable

Note 1: Mot_vel and Mot_acc use custom C filters optimized for speed. We suggest calculating motor velocity and motor acceleration in post-processing if you need them and would like to avoid lag.

Additional information


Two references are used: MPU-6500 and MPU-9250. Their scales and gains are the same. The MPU-9150 includes a magnetometer, not currently used (on FlexSEA-Rigid it's mounted on the motor… so it's just a bad position sensor).

Gyro range can be ±250, ±500, ±1000, or ±2000°/s. Our systems typically come with ±1000DPS. The associated gain is 32.8 LSB/DPS, covering the full range of a signed 16bits variable. The programmed bandwidth is 250 Hz.

Accelerometer range can be ±2g, ±4g, ±8g or ±16g. Our systems typically come with ±4g. The associated gain is 8192 LSB/g. The programmed bandwidth is 460 Hz.

The IMU is read at 250 Hz.

Voltages & Currents

Currents are reported in mA, and voltages in mV. In some occasions the stack will bit-shift them to compress the values in a byte or two instead of 4.

Motor variables are signed. Bus voltages are unsigned.


Motor and joint encoder angles are reported in ticks. 1 tick is 1 LSB for a given encoder. As an example, the AS5047P absolute magnetic position sensor is used for motor commutation on most FlexSEA systems. It has a 14-bit resolution; 16384 ticks/rotation. One tick is equivalent to 360/2^14=0.02197 degrees.

Velocity is reported in ticks per ms. A motor spinning at 1000RPM (16.67 rps) with an AS5047P encoder will have 273 ticks/ms. Using the AS5047 the conversion 16.384 ticks/rps will let you calculate everything.

Motor acceleration is reported in rad / s^2.

For integrated systems different units can be used (ex.: 10*degrees). Please refer to the system's page, or contact us.

6-ch Strain Amplifier

The 6-ch Strain Amplifier is an optional, external circuit that can read up to 6 strain gauges/load cells and make their data available over I2C. The 6-ch Strain Gauge Amplifier page has all the details.

The data is read at 250 Hz.

Current Limits

Please see the I²t current limit: Programmable Fuse page for more information on current limits.

Control Gains

Read more about control gains and how to compute them on the Control Gains page.


Temperatures are reported in Celsius. Unless otherwise specified, times are reported in milliseconds (ms).

units.txt · Last modified: 2021/03/25 01:14 by jfduval