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.


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

units.txt · Last modified: 2019/10/02 18:48 by jfduval