Firmware-820 Function-122
MAGNETIC3D (122, 7Ah)
The Magnetic3D function enables output of the Magnetic3D sensor data in both host and stand-alone mode. In host mode the sensor data is output in I2C DATA messages. In stand-alone mode the sensor data is output according to the stand-alone mode settings of the input number that equals the I2C port number. The following methods can be selected using the FUNCTION command’s method/parameter FP:
Magnetic3D v1.0, v1.1, v1.2, v1.3
FP | Data output in host mode | Data output in stand-alone mode |
---|---|---|
0..9 | Magnetic Field Strength X-axis; a signed two’s complement 16-bit value sent as nibbles in four bytes (MSB .. LSB) | Magnetic Field Strength X-axis; an unsigned 7-bit or 14-bit value sent as one or two bytes (LSB, MSB) |
Magnetic Field Strength Z-axis; a signed two’s complement 16-bit value sent as nibbles in four bytes (MSB .. LSB) | Magnetic Field Strength Z-axis; an unsigned 7-bit or 14-bit value sent as one or two bytes (LSB, MSB) | |
Magnetic Field Strength Y-axis; a signed two’s complement 16-bit value sent as nibbles in four bytes (MSB .. LSB) | Magnetic Field Strength Y-axis; an unsigned 7-bit or 14-bit value sent as one or two bytes (LSB, MSB) | |
10..69 | Magnetic Field Strength Magnitude; a 32-bit IEEE-754 float value sent in 5 bytes (MSB .. LSB) | Magnetic Field Strength Magnitude (scaled); an unsigned 7-bit or 14-bit value sent as one or two bytes (LSB, MSB) |
70..127 | Magnetic Field Strength Magnitude; a 32-bit IEEE-754 float value sent in 5 bytes (MSB .. LSB) | Magnetic Field Strength Magnitude (scaled); an unsigned 7-bit or 14-bit value sent as one or two bytes (LSB, MSB) |
Magnetic Field Strength Magnitude Angle relative to Z-axis; a 32-bit IEEE-754 float value sent in 5 bytes (MSB .. LSB) | Magnetic Field Strength Magnitude Angle relative to Z-axis; an unsigned 7-bit or 14-bit value sent as one or two bytes (LSB, MSB) | |
Magnetic Field Strength Magnitude Angle relative to X-axis; a 32-bit float value sent in 5 bytes (MSB .. LSB) | Magnetic Field Strength Magnitude Angle relative to X-axis; an unsigned 7-bit or 14-bit value sent as one or two bytes (LSB, MSB) |
Increasing the method number's decimal from 0 to 9 (or 10 to 19, 20 to 29 etc.), where 7..9 are equivalent, increases the sensor's magnetic field strength resolution and decreases its magnetic field strength range.
In standalone mode, methods 10..69 and 70..127 output a magnitude value that is scaled using FP between 1.00..1.69 while the above resolution and range settings are also changed.
Keep in mind that when scaling the magnitude, the magnetic field strength range and hence the distance range within which the magnet is detected, also changes. If scaling too much the output value may be clipped by the maximum magnetic field strength. To resolve this, change the magnet's position to bring it within the magnetic field strength range of the Magnetic3D.
Example:
In order to enable the MAGNETIC3D function to get the magnetic field strength X-, Y- and Z-axis data from a Magnetic3D sensor with I2C device address 30 (default Magnetic3D I2C device address) connected to the 7th I2C port, the following message is sent:
- 240, 125, 0 {DEV}, 8 {FUNCTION}, 6 {port}, 30 {device address}, 122 {MAGNETIC3D function}, 0 {X-/Y-/Z-axis}, 247 (F0h, 7Dh, 00h, 08h, 06h, 1Eh, 7Ah, 00h, F7h)
In order to enable the MAGNETIC3D function to get the magnetic field strength magnitude data from an Magnetic3D sensor with I2C device address 30 (default Magnetic3D I2C device address) connected to the 7th I2C port, the following message is sent:
- 240, 125, 0 {DEV}, 8 {FUNCTION}, 6 {port}, 30 {device address}, 122 {MAGNETIC3D function}, 10 {magnitude, unscaled, lowest resolution and largest range}, 247 (F0h, 7Dh, 00h, 08h, 06h, 1Eh, 7Ah, 0Ah, F7h)
In host mode raw sensor data will be output immediately in I2C DATA messages. In stand-alone mode a suitable configuration has to be set using the EDIT CONFIG command before any MIDI messages will be output.
Other settings of the Magnetic3D sensor can be effectuated by using I2C commands such as I2C WRITE and I2C READ. See also the datasheet linked from the Magnetic3D webpage.