Boot request is executed as soon as internal oscillator is turned-on. It is possible to set bit while in powerdown
mode, in this case it will be served at the next normal mode or sleep mode.
BDU
Block data update. Default value: 0 (0: continuous update; 1: output registers not updated until MSB and LSB read)
H_LACTIVE
Interrupt activation level. Default value: 0
(0: interrupt output pins active high; 1: interrupt output pins active low)
PP_OD
Push-pull/open-drain selection on the INT1_A/G pin and INT2_A/G pin.
Default value: 0
(0: push-pull mode; 1: open-drain mode)
Register address automatically incremented during a multiple byte access with a
serial interface (I2C or SPI). Default value: 1
(0: disabled; 1: enabled)
BLE
Big/Little Endian data selection. Default value 0
(0: data LSB @ lower address; 1: data MSB @ lower address)
SW_RESET
Software reset. Default value: 0
(0: normal mode; 1: reset device)
This bit is cleared by hardware after next flash boot.
DRDY_mask_bit
Data available enable bit. Default value: 0
(0: DA timer disabled; 1: DA timer enabled)
I2C_DISABLE
Disable I2C interface. Default value: 0
(0: both I2C and SPI enabled; 1: I2C disabled, SPI only)
Gyroscope output data rate selection. Default value: 000
Table 46
Value
ODR [Hz]
Cutoff [Hz]
0
Power-down
n.a.
1
14.9
5
2
59.5
19
3
119
38
4
238
76
5
476
100
6
952
100
7
n.a.
n.a.
Table 47.
ODR_G [2:0]
BW_G [1:0]
ODR [Hz]
Cutoff [Hz]
0
0
Power-down
n.a.
0
1
Power-down
n.a.
0
2
Power-down
n.a.
0
3
Power-down
n.a
1
0
14.9
n.a.
1
1
14.9
n.a.
1
2
14.9
n.a.
1
3
14.9
n.a.
2
0
59.5
16
2
1
59.5
16
2
2
59.5
16
2
3
59.5
16
3
0
119
14
3
1
119
31
3
2
119
31
3
3
119
31
4
0
238
14
4
1
238
29
4
2
238
63
4
3
238
78
5
0
476
21
5
1
476
28
5
2
476
57
5
3
476
100
6
0
952
33
6
1
952
40
6
2
952
58
6
3
952
100
7
0
n.a.
n.a.
7
1
n.a.
n.a.
7
2
n.a.
n.a.
7
3
n.a.
n.a.
ODR_G [2:0] are used to set ODR selection when both the accelerometer and gyroscope
are activated. BW_G [1:0] are used to set gyroscope bandwidth selection.
Gyroscope bandwidth selection. Default value: 00
ODR_G [2:0] are used to set ODR selection when both the accelerometer and gyroscope
are activated. BW_G [1:0] are used to set gyroscope bandwidth selection.
G_INT_SEL
INT selection configuration. Default value: 00 (Refer to Figure 28)
G_OUT_SEL
Out selection configuration. Default value: 00 (Refer to Figure 28)
Directional user orientation selection. Default value: 000
REF_G
Reference value for gyroscope’s digital high-pass filter (r/w).
Default value: 0000 0000
Accelerometer Bits
Dec_XL
Decimation of acceleration data on OUT REG and FIFO. Default value: 00
(00: no decimation;
01: update every 2 samples;
10: update every 4 samples;
11: update every 8 samples)
High resolution mode for accelerometer enable. Default value: 0
(0: disabled; 1: enabled).
Table 71
HR
CTRL_REG7 (DCF [1:0])
LP cutoff freq. [Hz]
1
0
ODR/50
1 } 1
ODR/100
1
2
ODR/9
1
3
ODR/400
DCF_XL
Accelerometer digital filter (high pass and low pass) cutoff frequency selection: the bandwidth
of the high-pass filter depends on the selected ODR. See Table 71
FDS_XL
Filtered data selection. Default value: 0
(0: internal filter bypassed; 1: data from internal filter sent to output register and FIFO)
HPIS1_XL
High-pass filter enabled for acceleration sensor interrupt function on Interrupt. Default
value: 0 (0: filter bypassed; 1: filter enabled)
Temperature Bits
FIFO_TEMP_EN
Temperature data storage in FIFO enable. Default value: 0
(0: temperature data not stored in FIFO; 1: temperature data stored in FIFO)
Espruino is a JavaScript interpreter for low-power Microcontrollers. This site is both a support community for Espruino and a place to share what you are working on.
Accelerometer/Gyroscope Bits
Used as input to AGread and AGwrite functions.
General Control Bits
BOOT
Reboot memory content. Default value: 0 (0: normal mode; 1: reboot memory content)
mode, in this case it will be served at the next normal mode or sleep mode.
BDU
Block data update. Default value: 0 (0: continuous update; 1: output registers not updated until MSB and LSB read)
H_LACTIVE
Interrupt activation level. Default value: 0
(0: interrupt output pins active high; 1: interrupt output pins active low)
PP_OD
Push-pull/open-drain selection on the INT1_A/G pin and INT2_A/G pin.
Default value: 0
(0: push-pull mode; 1: open-drain mode)
SIM
SPI serial interface mode selection. Default value: 0
(0: 4-wire interface; 1: 3-wire interface).
IF_ADD_INC
Register address automatically incremented during a multiple byte access with a
serial interface (I2C or SPI). Default value: 1
(0: disabled; 1: enabled)
BLE
Big/Little Endian data selection. Default value 0
(0: data LSB @ lower address; 1: data MSB @ lower address)
SW_RESET
Software reset. Default value: 0
(0: normal mode; 1: reset device)
This bit is cleared by hardware after next flash boot.
DRDY_mask_bit
Data available enable bit. Default value: 0
(0: DA timer disabled; 1: DA timer enabled)
I2C_DISABLE
Disable I2C interface. Default value: 0
(0: both I2C and SPI enabled; 1: I2C disabled, SPI only)
ST_G
Angular rate sensor self-test enable. Default value: 0
(0: Self-test disabled; 1: Self-test enabled)
ST_XL
Linear acceleration sensor self-test enable. Default value: 0
(0: Self-test disabled; 1: Self-test enabled)
Gyro Configuration Bits
SLEEPG
Gyroscope sleep mode enable. Default value: 0
(0: disabled; 1: enabled)
ODR_G
Gyroscope output data rate selection. Default value: 000
Table 46
Table 47.
ODR_G [2:0] are used to set ODR selection when both the accelerometer and gyroscope
are activated. BW_G [1:0] are used to set gyroscope bandwidth selection.
FS_G
Gyroscope full-scale selection. Default value: 00
(00: 245 dps; 01: 500 dps; 10: Not Available; 11: 2000 dps)
BW_G
Gyroscope bandwidth selection. Default value: 00
ODR_G [2:0] are used to set ODR selection when both the accelerometer and gyroscope
are activated. BW_G [1:0] are used to set gyroscope bandwidth selection.
G_INT_SEL
INT selection configuration. Default value: 00 (Refer to Figure 28)
G_OUT_SEL
Out selection configuration. Default value: 00 (Refer to Figure 28)
G_LP_mode
Low-power mode enable. Default value: 0
(0: Low-power disabled; 1: Low-power enabled)
G_HP_EN
High-pass filter enable. Default value: 0
(0: HPF disabled; 1: HPF enabled, refer to Figure 28)
HPCF_G
Gyroscope high-pass filter cutoff frequency selection. Default value: 0000
Table 52
SignX_G
Pitch axis (X) angular rate sign. Default value: 0
(0: positive sign; 1: negative sign)
SignY_G
Roll axis (Y) angular rate sign. Default value: 0
(0: positive sign; 1: negative sign)
SignZ_G
Yaw axis (Z) angular rate sign. Default value: 0
(0: positive sign; 1: negative sign)
Orient_G
Directional user orientation selection. Default value: 000
REF_G
Reference value for gyroscope’s digital high-pass filter (r/w).
Default value: 0000 0000
Accelerometer Bits
Dec_XL
Decimation of acceleration data on OUT REG and FIFO. Default value: 00
(00: no decimation;
01: update every 2 samples;
10: update every 4 samples;
11: update every 8 samples)
Zen_XL
Accelerometer’s Z-axis output enable. Default value: 1
(0: Z-axis output disabled; 1: Z-axis output enabled)
Yen_XL
Accelerometer’s Y-axis output enable. Default value: 1
(0: Y-axis output disabled; 1: Y-axis output enabled)
Xen_XL
Accelerometer’s X-axis output enable. Default value: 1
(0: X-axis output disabled; 1: X-axis output enabled)
ODR_XL
Output data rate and power mode selection. default value: 000
Table 68
FS_XL
Accelerometer full-scale selection. Default value: 00
(00: ±2g; 01: ±16 g; 10: ±4 g; 11: ±8 g)
BW_SCAL_ODR_XL
Bandwidth selection. Default value: 0
(0: bandwidth determined by ODR selection:
BW = 50 Hz when ODR = 119 Hz;
1: bandwidth selected according to BW_XL [2:1] selection)
BW_XL
Anti-aliasing filter bandwidth selection. Default value: 00
(00: 408 Hz; 01: 211 Hz; 10: 105 Hz; 11: 50 Hz)
HR_XL
High resolution mode for accelerometer enable. Default value: 0
(0: disabled; 1: enabled).
Table 71
DCF_XL
Accelerometer digital filter (high pass and low pass) cutoff frequency selection: the bandwidth
of the high-pass filter depends on the selected ODR. See Table 71
FDS_XL
Filtered data selection. Default value: 0
(0: internal filter bypassed; 1: data from internal filter sent to output register and FIFO)
HPIS1_XL
High-pass filter enabled for acceleration sensor interrupt function on Interrupt. Default
value: 0 (0: filter bypassed; 1: filter enabled)
Temperature Bits
FIFO_TEMP_EN
Temperature data storage in FIFO enable. Default value: 0
(0: temperature data not stored in FIFO; 1: temperature data stored in FIFO)
FIFO Control Bits
FIFO_EN
FIFO memory enable. Default value: 0
(0: disabled; 1: enabled)
STOP_ON_FTH
Enable FIFO threshold level use. Default value: 0
(0: FIFO depth is not limited; 1: FIFO depth is limited to threshold level)
FIFO_TEMP_EN
Temperature data storage in FIFO enable. Default value: 0
(0: temperature data not stored in FIFO; 1: temperature data stored in FIFO)
FMODE
FIFO mode selection bits. Default value: 000
Table 84
FTH
FIFO threshold level setting. Default value: 0 0000
FIFO Status
FTHstatus
FIFO threshold status.
(0: FIFO filling is lower than threshold level; 1: FIFO filling is equal or higher than
threshold level
OVRN 0
FIFO overrun status.
(0: FIFO is not completely filled; 1: FIFO is completely filled and at least one samples
has been overwritten)
FSS 0
Number of unread samples stored into FIFO.
(000000: FIFO empty; 100000: FIFO full, 32 unread samples)
Table 87. FIFO_SRC example: OVR/FSS details
Interrupt Control Bits
SLEEP_ON_INACT_EN
Gyroscope operating mode during inactivity. Default value: 0
(0: gyroscope in power-down; 1: gyroscope in sleep mode)
ACT_THS
Inactivity threshold. Default value: 000 0000
ACT_DUR
Inactivity duration. Default value: 0000 0000
AOI_XL
AND/OR combination of accelerometer’s interrupt events. Default value: 0
(0: OR combination; 1: AND combination)
D6
6-direction detection function for interrupt. Default value: 0
(0: disabled; 1: enabled)
ZHIE_XL
Enable interrupt generation on accelerometer’s Z-axis high event. Default value: 0
(0: disable interrupt request; 1: interrupt request on measured acceleration value
higher than preset threshold)
ZLIE_XL
Enable interrupt generation on accelerometer’s Z-axis low event. Default value: 0
(0: disable interrupt request; 1: interrupt request on measured acceleration value
lower than preset threshold)
YHIE_XL
Enable interrupt generation on accelerometer’s Y-axis high event. Default value: 0
(0: disable interrupt request; 1: interrupt request on measured acceleration value
higher than preset threshold)
YLIE_XL
Enable interrupt generation on accelerometer’s Y-axis low event. Default value: 0
(0: disable interrupt request; 1: interrupt request on measured acceleration value
lower than preset threshold)
XHIE_XL
Enable interrupt generation on accelerometer’s X-axis high event. Default value: 0
(0: disable interrupt request; 1: interrupt request on measured acceleration value
higher than preset threshold)
XLIE_XL
Enable interrupt generation on accelerometer’s X-axis low event. Default value: 0
(0: disable interrupt request; 1: interrupt request on measured acceleration value
lower than preset threshold)
THS_XL_X
X-axis interrupt threshold. Default value: 0000 0000
THS_XL_Y
Y-axis interrupt threshold. Default value: 0000 0000
THS_XL_Z
Z-axis interrupt threshold. Default value: 0000 0000
WAIT_XL
Wait function enabled on duration counter. Default value: 0
(0: wait function off; 1: wait for DUR_XL [6:0] samples before exiting interrupt)
DUR_XL6
Enter/exit interrupt duration value. Default value: 000 0000
INT1_IG_G
Gyroscope interrupt enable on INT 1_A/G pin. Default value: 0
(0: disabled; 1: enabled)
INT1_IG_XL
Accelerometer interrupt generator on INT 1_A/G pin. Default value: 0
(0: disabled; 1: enabled)
INT1_FSS5
FSS5 interrupt enable on INT 1_A/G pin. Default value: 0
(0: disabled; 1: enabled)
INT1_OVR
Overrun interrupt on INT 1_A/G pin. Default value: 0
(0: disabled; 1: enabled)
INT1_FTH
FIFO threshold interrupt on INT 1_A/G pin. Default value: 0
(0: disabled; 1: enabled)
INT1_Boot
Boot status available on INT 1_A/G pin. Default value: 0
(0: disabled; 1: enabled)
INT1_DRDY_G
Gyroscope data ready on INT 1_A/G pin. Default value: 0
(0: disabled; 1: enabled)
INT1_DRDY_XL
Accelerometer data ready on INT 1_A/G pin. Default value: 0
(0: disabled; 1: enabled)
INT2_INACT
Inactivity interrupt output signal. Default value: 0
(0: no interrupt has been generated; 1: one or more interrupt events have been
generated)
INT2_FSS5
FSS5 interrupt enable on INT2_A/G pin. Default value: 0
(0: disabled; 1: enabled)
INT2_OVR
Overrun interrupt on INT2_A/G pin. Default value: 0
(0: disabled; 1: enabled)
INT2_FTH
FIFO threshold interrupt on INT2_A/G pin. Default value: 0
(0: disabled; 1: enabled)
INT2_DRDY_TEMP
Temperature data ready on INT2_A/G pin. Default value: 0
(0: disabled; 1: enabled)
INT2_DRDY_G
Gyroscope data ready on INT2_A/G pin. Default value: 0
(0: disabled; 1: enabled)
INT2_DRDY_XL
Accelerometer data ready on INT2_A/G pin. Default value: 0
(0: disabled; 1: enabled)
//Status registers
Xxxxxxxxxxxxxxxxxxxxx
IG_XL 0, IG_XL2 0
Accelerometer interrupt output signal. Default value: 0
(0: no interrupt has been generated; 1: one or more interrupt events have been generated)
IG_G 0, IG_G2 0
Gyroscope interrupt output signal. Default value: 0
(0: no interrupt has been generated; 1: one or more interrupt events have been generated
INACT 0, INACT2 0
Inactivity interrupt output signal. Default value: 0
(0: no interrupt has been generated; 1: one or more interrupt events have been generated)
BOOT_STATUS 0, BOOT_STATUS2 0
Boot running flag signal. Default value: 0
(0: no boot running; 1: boot running)
TDA 0, TDA2 0
Temperature sensor new data available. Default value: 0
(0: new data is not yet available; 1: new data is available)
GDA 0, GDA2 0
Gyroscope new data available. Default value: 0
(0: a new set of data is not yet available; 1: a new set of data is available)
XLDA 0, XLDA2 0
Accelerometer new data available. Default value: 0
(0: a new set of data is not yet available; 1: a new set of data is available)
IA_G
Gyro Interrupt active. Default value: 0
(0: no interrupt has been generated; 1: one or more interrupts have been generated)
ZH_G
Gyro Yaw (Z) high. Default value: 0
(0: no interrupt, 1: Z high event has occurred)
ZL_G
Gyro Yaw (Z) low. Default value: 0
(0: no interrupt; 1: Z low event has occurred)
YH_G
Gyro Roll (Y) high. Default value: 0
(0: no interrupt, 1: Y high event has occurred)
YL_G
Gyro Roll (Y) low. Default value: 0
(0: no interrupt, 1: Y low event has occurred)
XH_G
Gyro Pitch (X) high. Default value: 0
(0: no interrupt, 1: X high event has occurred)
XL_G
Gyro Pitch (X) low. Default value: 0
(0: no interrupt, 1: X low event has occurred)
IA_XL
Accelerometer Interrupt active. Default value: 0.
(0: no interrupt has been generated; 1: one or more interrupts have been generated)
ZH_XL
Accelerometer's Z high event. Default value: 0
(0: no interrupt, 1: Z high event has occurred)
ZL_XL
Accelerometer's Z low event. Default value: 0
(0: no interrupt; 1: Z low event has occurred)
YH_XL
Accelerometer's Y high event. Default value: 0
(0: no interrupt, 1: Y high event has occurred)
YL_XL
Accelerometer's Y low event. Default value: 0
(0: no interrupt, 1: Y low event has occurred)
XH_XL
Accelerometer's X high event. Default value: 0
(0: no interrupt, 1: X high event has occurred)
XL_XL
Accelerometer's X low. event. Default value: 0
(0: no interrupt, 1: X low event has occurred)
Latest version of the LSM9DS1.js module is attached.
If you need a way to cool your coffee or tea and need to stretch here is a different kind of project.
https://www.youtube.com/watch?v=5_50RuMcc28
1 Attachment