
Migration guide from 0.5 to 0.6
Between libfreespace 0.5 and libfreespace 0.6, Hillcrest introduced the MotionEngine series of Freespace devices including the Scoop Remote Control and the FSRK-USB-2. This family uses a slightly different set of HID messages than older devices, and libfreespace 0.6 supports both message formats. The only reason to modify your code is if you are using a new MotionEngine device like the Scoop Pointer or FSRK-USB-2. The two new messages used are the DataModeControl V2 message and the MotionEngine Output message. Both are detailed below.
DataModeControl V2 Message
The DataModeControl V2 message is the new method of configuring MotionEngine devices' data output type (orientation, angular velocity, etc) and power management configuration (sleep, full motion, etc). MotionEngine devices need to use the DataModeControlV2 and will not recognize the older DataModeControl message.
freespace_DataModeControlV2Request
Data Fields (detailed descriptions are below)

ModeAndStatus

PacketSelect
Format Select
Format Flags (FF1-FF7)
freespace_DataModeControlV2Response
This message is sent back to the host from the Freespace device confirming that a Data Mode Control V2 request was received and reporting back the new configuration.
Data Fields
MotionEngine Output Message
![]() |
|||||||||
|
Button n: 0 - not pressed
1 - pressed
Delta X: Q0. Changes in pointer location along the x-axis in dimensionless units call mickeys. X positive moves the pointer right.
Delta Y: Q0. Changes in pointer location along the y-axis in dimensionless units called mickeys. Y positive moves the pointer down.
Delta Wheel: Scroll wheel motion in detects. Up is positive
Linear Accel: Q10. Reported in meters/second(2). X positive is forward, Y positive is to the right, and Z positive is down with respect to the device frame of reference.
Linear Accel No Grav: Q10. Reported in meters/second(2). X positive is forward, Y positive is to the right, and Z positive is down with respect to the device frame of reference.
Angular Vel: Q10. Reported in radians/second. X positive is tilt right (roll), Y positive is tilt up (pitch), and Z positive is turn right (yaw), with respect to the device frame of reference.
Magnetometer: Q12. Reported in guass [only available on 9-axis devices]
Linear Position: Q10. [Not supported]
Angular Position: Q14. Reported in dimensionless units. The axes are given in quaternion form where A, B, C, and D represent the real, i, j, and k coefficients.
Linear Accel Error: Q10. Reported in meters/second(2). X positive is forward, Y positive is to the right, and Z positive is down with respect to the device frame of reference.
Linear Accel No Grav Error: Q10. Reported in meters/second(2). X positive is forward, Y positive is to the right, and Z positive is down with respect to the device frame of reference.
Angular Vel Error: Q10. Reported in radians/second. X positive is tilt right (roll), Y positive is tilt up (pitch), and Z positive is turn right (yaw), with respect to the device frame of reference.
Magnetometer Error: Q12. Reported in gauss.
Linear Position Error: [Not supported]
Angular Position Error: Q14. Reported in dimensionless units. The axes are given in quaternion form where A, B, C, and D represent the real, i ,j, and k coefficients.
|
|||||||||

.jpg)