Grove - Starter Kit V2.0


At least three wires are needed every time a module is connected to an Arduino, including power, signal, and ground. Soon the Arduino will be hard to manipulate among excessive wires. Why can’t we simplify the building process? With this goal we designed and created the Grove system. Every Grove module has one function, such as sensing light, and it has pre-installed wires. You only need to plug one Grove cord into a socket on the Base Shield for the module to function reliably in your design.

Your First Date with Arduino?

If this is your first time using an Arduino, you need to complete the following steps:

The download address of the Grove - Starter Kit Sketchbook is here.

Grove – Button

This is a momentary button (see tips) and it’s the most common input modules we see.
The example below shows you how to use this button to turn an LED on and off.
Sketchbook path: File -> Sketchbook ->Grove_Button

“Momentary” means the button rebounds after pressed. This button outputs HIGH when pressed, and LOW When released.

Grove – Touch Sensor

This “button” can sense the touch of your finger.
The code of Grove –Button(P) code works with this module.

This is an alternative to themomentary button.Grove-Touch Sensor detects the change in capacitance in the circular region; the closer your finger is to the region, the larger the change in capacitance.Even if there is paper between your finger and the sensor, it still functions reliably.

Grove - LED

LED is a small lightbulb, a constituent of many colorful displays around us.
Previously we control an LED with a button, now we change it up and make an LED light with breathing effects:
File --> Sketchbook --> Grove_LED.

We prepare three colors of LED bulbs for you. You can get the color you want by shifting the LED on the tiny Grove – LED PCB board.LEDs have an anode on the flat side of the bulb, and a cathode on the round side of the bulb. The anode needs to be installed corresponding to the “+” sign on the seat for the LED to work properly.

Grove - Buzzer

This buzzer can give you sound effects.
You can use the code for Grove-Button to make the buzzerbeep when you press the button. However, Grove-Buzzer can be much more fun—it can play songs! In this example provided by, the buzzer will play the lullaby “Twinkle Twinkle, Little Star”. Find the example via the path below:
File --> Sketchbook --> Grove_Buzzer.

How does the Piezoceramic buzzer work? There are two ceramic wafers in each buzzer. When voltage is applied, the ceramic wafers attract or reject each other, causing them to shake. The air vibration makes the audible sound. When the shaking frequency changes (which we can control in the Arduino code), the sound frequency will also change.

Grove – Rotary Angle Sensor (P)

This is an input device controlled via turning the knob.
This example shows you how to read the value of a rotary angle sensor:
File -> Sketchbook -> Grove_Rotary_Angle_Sensor

Grove-Rotary Angle Sensor is a 10kOhm This is a 10k Ohm linear rotary potentiometer with a turning radius range of 300 degrees. A rotary potentiometer looks very similar to a rotary encoder, but they are not the same. A rotary potentiometer is essentially a slide potentiometer. It reflects the position in an analog way just like a slide potentiometer does; however, the rotary encoder counts the turns so you can tell how much and in which direction the encoder has been turned.

Grove - Sound Sensor

This is a sensor to evaluate the intensity of sound.
The code for the Grove—Sound Sensor can be used to make an LED light whose brightness reflects the intensity of the ambient sound.
File -> Sketchbook -> Rotary_Angle_Sensor

The electric microphone collects sound intensityfor all frequencies, and the potentiometer acts as the doorman. When you rotate it clockwise to the extreme, it lets everything go through, and when you rotate it fully counterclockwise, nothing goes through.

Grove - Light Sensor

This is a sensor that detects the change of light.
This example will create an LED that turns on automatically when the ambient light is dim:
File --> Sketchbook --> Grove_Light_Sensor

The output of the analog light sensor ranges from 0 to 1023, but it is not linear with respect to the ambient light intensity. Below is a table to help you understand what the output really means.

Sensor Value Illuminance (LUX) Description (adapted from Wikipedia)
100 <1
200 ~1 Full moon overhead at tropical latitudes
300 ~3 Twilight in the city
400 ~6
500 ~10
600 ~15
700 ~35 Family living room
800 ~80 Office building light in hallway
900 >100 Very dark, overcast day

Grove - Temperature Sensor

This is a sensor for ambient temperature.
The code in this example shows you how to convert the raw output of the sensor into temperatures. You can see the output data in Celsius in the serial monitor:
File --> Sketchbook -->Grove_Temperature_Sensor

Grove—Temperature Sensor is used to detect environment temperature. Its value ranges from-40 to 125 degrees Celsius and the accuracy is within±1.5℃.

Grove - Relay

This is a switch controlled by electric signals.
The example shows you a button control relay:
File --> Sktechbook --> Grove_Relay

A relay switch is a mechanical switch controlled by electric signals in a circuit. Because it is safe to work with, relay switches are common in automation and remote control projects.

Grove - Servo

This is an actuator whose position can be precisely controlled.
We prepared an example of how we use a potentiometer to control the position of the servo:
File --> Sktechbook --> Servo

Grove – Servo has mounting hardware options for different purposes: you can use them to drive a small fan, lift an object, or mimic a clock hand.

Grove - RGB Backlight LCD

This LCD screen can display rich text and image content.
The exampleshows you how to print text on the screen and change the color of backlight. Find it via the path:
File -> Sketchbook -> Grove_RGB_Backlight_LCD -> HelloWorld

This is a 16x2 LCD screen. It is capable of displaying two rows of sixteen-character texts, supporting languages including English and Japanese. Aside from the built-in languages, you can have custom characters. You can build unique characters by defining their display patterns. You can find an example of making a custom character here:

Base Shield

Base Shield is an interface between Arduino and Grove modules. There are 16 Grove sockets on the base shield, whichcan be divided into three different functional areas: digital ports (8), analog ports (4), and I2C ports (4).The Grove modules communicate via different protocols, and you can quickly figure out how to use them by familiarizing yourself with the communication methods of each module.

Digital Ports

Surrounded by the red lines are eight digital Grove ports. They are equivalent to digital pins 0 through 9 on the Arduino Uno. Normally, they are used when reading a digital sensor that only outputs 0 or 1, or turning on or off an actuator. Some of these ports are multi-purpose and can function as PWM (pulse width modulation) outputs. They are port 3, port 5 and port 6. You will need these ports when driving a servo or fading an LED. Digital ports are a must for serial communication too. There is one built-in hardwired serial port, AKA UART, on port 1. This is the Arduino’s default port for serial communication with the PC. In cases where you need at least two serial devices or you need an available serial port for debugging purposes, other digital ports, software serial ports, can be used as well. We will encounter them a lot in our Grove system.

Analog Input Ports

On the left-hand side are four Grove ports for taking analog readings. Analog sensors can return readings ranging from 0 – 1024. Compared with digital sensors that only return 0 or 1, analog readings are more detailed and precise.

I2C Ports

Below the digital ports are four I2C Grove ports. I2C is a low-speed bus protocol that transfers data via two wires: SCL and SDA. SCL is the clock line that synchronizes data transfer over the I2C bus, and SDA is the data line. The following diagram illustrates the framework of an I2C bus.

There is no limit to the amount of devices that can hang off of the I2C bus; however, only one of them can work in master mode, while all of the others work in slave mode. For Grove, the master is the Arduino. It generates the clock signals and sends commands to and/or receives data from all of the devices. In theory, each slave device has a unique hardware address and the master device can find slave devices via their addresses.
I2C ports are generally used when the amount of data is overwhelming for simple digital and analog ports. For example, when we want to obtain complex informationsuch as angular acceleration, or read the current time from an RTC module, we should use the I2C ports.

Demo Projects

1. A Cup Of Flowers

Would you like a cup of flowers to ease your exhausted heart? This project is made up of Grove – LED and one Grove – Touch Sensor. With the sensor being touched, those lovely LEDs will shine you a warm and comfortable light effect.
Materials List

1. Arduino x 1;
2. Grove – Base Shield x 1;
3. Grove – LED x 6;
4. Grove – Touch Sensor x 1;
5. 6 x 6cm Color paper x 6;
6. 9V battery & 9V battery clip x 1.

Note: The number of LEDs is arbitrary. There are three of them contained in the basic kit. But you can increase or decrease it depending on the volume of your cup. I have a big cup here, so I added three more from our website.
1. Fold The Buds

Choose one flower pattern you like and follow its steps to create some of them. One Google search may help a lot in finding one. There are so many origami hobbyists and artists over the Internet who’d like to share their handcrafts.
I chose tulip here, but sunflower, rose and lily also sound great!
When folding the bud, you need to leave a small hole on its button for the Grove cable to go through.
2. Set Up

Connect the buds and the touch sensor onto the Grove – Base Shield with the 10cm Grove cable. And then upload the code to your controller.

void setup()
  pinMode(2, OUTPUT);
  pinMode(4, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(7, OUTPUT);
  pinMode(11, OUTPUT);
  pinMode(13, OUTPUT);
  pinMode(9, INPUT); //pin of touch sensor

void loop()
  int switchState = digitalRead(9);
  if(switchState == HIGH)
    digitalWrite(2, HIGH);
    digitalWrite(4, HIGH);
    digitalWrite(6, HIGH);
    digitalWrite(7, HIGH);
    digitalWrite(11, HIGH);
    digitalWrite(13, HIGH);
    digitalWrite(2, LOW);
    digitalWrite(4, LOW);
    digitalWrite(6, LOW);
    digitalWrite(7, LOW);
    digitalWrite(11, LOW);
    digitalWrite(13, LOW);

3. Power Up & Settle Down

Use a portable 9V battery to provide power to the flowers and settle it down in the cup. Finished! Enjoy your cup of flowers!

2. How You Doing!

(downloaded form
How do you say hello to a friend? Big Chief would say “what’s better than a shake?” When one of these Big Chief paper toys lean his back against the others, they will shake to say hi! Materials List

1. Arduini x 1;
2. Grove – Base Shield x 1;
3. Grove – Magnetic Switch x 1;
4. Grove – Vibrator x 1;
5. Paper toys x 2;
6. Magnet x 1;
7. 9V battery & 9V battery clip x 1.

Note: The number of LEDs is arbitrary. There are three of them contained in the basic kit. But you can increase or decrease it depending on the volume of your cup. I have a big cup here, so I added three more from our website.
1. Print It Out!

Choose one pattern you like over the Internet. Make sure there is enough room for a magnet or a magnetic switch plus a vibrator. Same as the origami flower above, you can find tons of them on the Internet.
2. Fill The Organs In
Focus when cutting the paper toys. Only in that way you can get a neat one. After that, time to fill some organs to them. I pasted a magnet on the back of Big Cihef A(let’s call it this name!). I stuck it there with double-sided adhesive tape.

And for Big Chief B, I pasted a magnetic switch on his back, the same position as A, and a vibrator on his foots.

3. Glue Them Up

Carefully follow the instruction on the printed sheet. Plug the Grove cables into two Grove Modules we used in Big Chief B. Then you will get two cute paper toys like above.
4. Upload Program

Upload the code below to your Arduino. By doing this, you bring life to them.

void setup()
  pinMode(11, INPUT);
  pinMode(9, OUTPUT);

void loop()
  int sensorState = digitalRead(11);
  if (sensorState == 1) digitalWrite(9, HIGH);
  else digitalWrite(9, LOW);
Copyright (c) 2008-2016 Seeed Development Limited ( /
This static html page was created from