@@ -2650,6 +2650,18 @@ public class SensorBitmap {
26502650 public static final int MAX86150_ECG = 1 << (3 + (8 *1 ));
26512651 public static final int MAX86916_PPG_BLUE = 1 << (2 + (8 *1 ));
26522652 public static final int VBATT = 1 << (1 + (8 *1 ));
2653+
2654+ // Second-generation hardware (SR68-9/10, SR61-5/6): LSM6DSV accel/gyro +
2655+ // LIS2MDL mag. Distinct host-internal bits; accel/gyro enables are derived
2656+ // from the payload header ACCEL2/GYRO bits and mag from GEN_CFG_3 (see
2657+ // VerisenseDevice.configBytesParse second-generation branch).
2658+ public static final int LSM6DSV_ACCEL = 1 << (4 + (8 *0 ));
2659+ public static final int LSM6DSV_GYRO = 1 << (3 + (8 *0 ));
2660+ public static final int LSM6DSV_MAG = 1 << (2 + (8 *0 ));
2661+ /** VD6283TX45 ambient light (second-generation HW); enable is GEN_CFG_3 bit 3. */
2662+ public static final int VD6283 = 1 << (1 + (8 *0 ));
2663+ /** MLX90632 skin temperature (second-generation HW); enable is GEN_CFG_3 bit 4. */
2664+ public static final int MLX90632 = 1 << (0 + (8 *0 ));
26532665 }
26542666
26552667 public class DerivedSensorsBitMask {
@@ -2663,6 +2675,9 @@ public class DerivedSensorsBitMask {
26632675 public final static int GYRO_ON_THE_FLY_CAL = (1 << 7 );
26642676 public final static int ORIENTATION_6DOF_QUAT = (1 << 8 );
26652677 public final static int ORIENTATION_6DOF_EULER = (1 << 9 );
2678+ /** Second-generation IMU (SR61-5/6, SR68-9/10). Bit assignment must stay
2679+ * unique against any consumer that persists these derived-sensor bits. */
2680+ public final static int NON_WEAR_DETECTION_LSM6DSV = (1 << 10 );
26662681 }
26672682
26682683 public class SENSOR_ID {
@@ -2678,6 +2693,12 @@ public class SENSOR_ID {
26782693 public static final int MAX86916_PPG_BLUE = 2012 ;
26792694 public static final int VBATT = 2013 ;
26802695 public static final int GSR = 2014 ;
2696+ // Second-generation hardware (SR68-9/10, SR61-5/6)
2697+ public static final int LSM6DSV_ACCEL = 2015 ;
2698+ public static final int LSM6DSV_GYRO = 2016 ;
2699+ public static final int LSM6DSV_MAG = 2017 ;
2700+ public static final int VD6283 = 2018 ;
2701+ public static final int MLX90632 = 2019 ;
26812702 }
26822703
26832704 public enum LABEL_SENSOR_TILE {
@@ -2720,8 +2741,17 @@ public static class CompatibilityInfoForMaps{
27202741 public static final List <ShimmerVerObject > listOfCompatibleVersionInfoVbatt = Arrays .asList (
27212742 svoVerisenseDevBrd , svoVerisenseImu , svoVerisensePpg0 , svoVerisensePpg1 , svoVerisenseGsrPlus , svoVerisensePulsePlus );
27222743
2744+ // SR61 (Verisense IMU) carries GSR from minor rev 5 (second-generation); the
2745+ // runtime minor-rev gating is in VerisenseDevice.doesHwSupportGsr() which
2746+ // mirrors the firmware's ShimBrd_isGsrSupportedForHwVersion.
27232747 public static final List <ShimmerVerObject > listOfCompatibleVersionInfoGsr = Arrays .asList (
2724- svoVerisenseGsrPlus , svoVerisensePulsePlus );
2748+ svoVerisenseGsrPlus , svoVerisensePulsePlus , svoVerisenseImu );
2749+
2750+ // Second-generation IMU: LSM6DSV (accel/gyro) + LIS2MDL (mag), SR68-9/10 and
2751+ // SR61-5/6. TODO refine to HW minor gating once compat supports it; the
2752+ // runtime isPayloadDesignV13orAbove() gate protects gen-1 units meanwhile.
2753+ public static final List <ShimmerVerObject > listOfCompatibleVersionInfoLSM6DSV = Arrays .asList (
2754+ svoVerisensePulsePlus , svoVerisenseImu );
27252755 }
27262756
27272757 }
0 commit comments