Grove - Heelight Sensor

Grove – Heelight Sensor is a smart voice sensor that can recognize up tp 500 digital voice commands. It was originally used on the Heelight – a smart colorful bulb that can be controlled by digital sound waves. Now we introduce this sensor into the small and neat Grove modules, allow you to realize smart control in your Arduino – based projects.


  • Digital Voice Recognition

  • Support over 500 digital voice commands

  • Compatible with the Grove system


Product Name Grove-Heelight Sensor
Operating Voltage DC 3.3V~5V
Operating Current 15mA
Identification Range 0.1~10m
Angle Range 360°
Size 20*20mm
Baud Rate 115200
Serial Port Output TTL logic level

Getting Started

What do we need?

Name Function Qty Link
Base Shield V2 Provide Grove connectors 1 Get One Now
Seeeduino V4.2 Controller 1 Get One Now
Grove - Heelight Sensor Sensor 1 Get One Now

Hardware Connection

  • Plug the Base Shield V2 on the Seeeduino V4.2
  • Connect the Grove - Heelight Sensor to D6 port of Base Shield V2.

Upload the code

Before uploading the code, please make sure you have already selected the right board and COM port. For Seeeduino V4.2, we can choose Arduino/Genuino Uno.

This is the basic example that can show the ability of the sensor, which is output different hex values in the serial monitor when it receives (or hear) different digital sounds. You can also download this example in the Resources

  Software serial multple serial test

 Receives from the hardware serial, sends to software serial.
 Receives from software serial, sends to hardware serial.

 The circuit:
 * RX is digital pin 10 (connect to TX of other device)
 * TX is digital pin 11 (connect to RX of other device)

 Not all pins on the Mega and Mega 2560 support change interrupts,
 so only the following can be used for RX:
 10, 11, 12, 13, 50, 51, 52, 53, 62, 63, 64, 65, 66, 67, 68, 69

 Not all pins on the Leonardo support change interrupts,
 so only the following can be used for RX:
 8, 9, 10, 11, 14 (MISO), 15 (SCK), 16 (MOSI).

 created back in the mists of time
 modified 25 May 2012
 by Tom Igoe
 based on Mikal Hart's example

 This example code is in the public domain.

#include <SoftwareSerial.h>

SoftwareSerial mySerial(6, 7); // RX, TX

void setup()
  // Open serial communications and wait for port to open:
  while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only

  Serial.println("Goodnight moon!");

  // set the data rate for the SoftwareSerial port

  //mySerial.println("Hello, world?");

void loop() // run over and over
  if (mySerial.available())
    Serial.print(" ");
    Serial.print(" ");
    Serial.print(" ");
  if (Serial.available())


Open the serial monitor, set baud rate to be 57600, then play the sound. We have prepared 511 different digital sounds for you. Every time one sound is played, the heelight sensor will output a hex value correspond to the sound, and the last 2 characters of the hex value is the same as the sounds value.


If this sensor doesn't work well when you play the specific sounds we provided via PC or other speakers, please set the volume in a low level. We recommend 10/100 in windows PC.


Tech Support

Please submit any technical issue into our forum.