Grove Single Axis Analog Gyro

The Grove – Signal Axis Analog Gyro is based on an angular velocity sensor (Murata-ENC-03R) that uses the phenomenon of Coriolis force. It can only measure the X-axis angular velocity, which is different from other 3-Axis gyro, but with a higher speed. It can be used for the position control and attitude control like the self-balanced 2WD.



  • Input Voltage: 3.3V/5V

  • Standard Grove Interface

  • Light Weight

  • High Speed

  • Measure X-axis Angular Velocity


With Arduino

The module detects one-axis rotation with analog signal. High-pass filter and low-pass filter circuit are applied to reduce the temperature drift and suppress the output noise. Before the measurement of the angular velocity, a reference value(the sensor output at Angular Velocity=0) is required. This value is 1.35V in default. But in order to get more accurate reference values, before the measurement,a calibration is necessary. In this calibration, the output voltage when angular velocity =0 been sampled 200 times, and then the average of these data will be treated as the reference value.

1.Connect it to A0 port of Grove - Base Shield, of cause any pin of the analog pins would be OK.

2.Plug the Grove - Base Shield into Arduino/Seeeduino and connect them to PC using a USB cable.

3.Upload the below code.Please click here if you do not know how to upload.


int sensorPin = A0; // select the input pin for the sensor

float reference_Value=0;

int sensorValue = 0; // variable to store the value coming from the sensor

void setup()

    int i;
    float sum=0;
    pinMode(sensorPin, INPUT);
    Serial.println("Please do not rotate it before calibrate!");
    Serial.println("Get the reference value:");

    // read the value from the sensor:
    sensorValue = analogRead(sensorPin);
    sum += sensorValue;
reference_Value = sum/1000.0;
Serial.println("Now you can begin your test!");

void loop()
    double angularVelocity;
    sensorValue = analogRead(sensorPin);
    angularVelocity =((double)(sensorValue-reference_Value)*4930.0)/1023.0/0.67; //get the angular velocity
    Serial.println(" ");

4.Now, it is time to the calibration.Put the sensor on your desk horizontally, and then press the Reset button on the Seeeduino, and then Open the serial tool:

5.As you see the "Now you can begin your test", that means the calibration done. You can use the sensor now. Rotating direction can reference the following picture:

1.You should have got a raspberry pi and a grovepi or grovepi+.

2.You should have completed configuring the development enviroment, otherwise follow here.


  • Plug the sensor to grovepi socket A0 by using a grove cable.

4.Navigate to the demos' directory:

cd yourpath/GrovePi/Software/Python/

  • To see the code

nano # "Ctrl+x" to exit #

import time
import grovepi

#Connect the Grove Single Axis Analog Gyro to analog port A0
sensor = 0


print "calibrating..."

sum = 0

errors = 0

for x in range(0, 100):

      #Get sensor value
      v = grovepi.analogRead(sensor)
      sum += v
  except IOError:
      print "Error"
      errors += 1

if errors == 100:

   print "unable to calibrate"

   raise SystemExit

reference_value = sum / (100 - errors)

print "finished calibrating"
print "reference_value =", reference_value


while True:
        #Get sensor value
        sensor_value = grovepi.analogRead(sensor)

        #Calculate angular velocity (deg/s)
        velocity = ((float)(sensor_value - reference_value) * 4930.0) / 1023.0 / 0.67

        print "sensor_value =", sensor_value, " velocity =", velocity

    except IOError:
    print "Error"

5.Run the demo.

sudo python


[Eagle] Grove - Signal Axis Analog Gyro Eagle

[PDF] Grove - Signal Axis Analog Gyro Sch

[PDF] Grove - Signal Axis Analog Gyro PCB

[Datasheet] File Signal Axis Analog Gyro datasheet

[Code] Demo code on github

Last updated