Grove - Line Finder


Grove-Line finder is designed for line-following robot. It has an IR emitting LED and an IR sensitive phototransistor. It can output digital signal to a microcontroller so that the robot can reliably follow a black line on white background, or vice versa.


  • Power supply :5V DC
  • Digital output mode: TTL (High when black is detected, Low when white is detected)
  • Connector: 4 pin Buckled Grove interface
  • Dimension: 20mm*20mm
  • Comparator: MV358
  • Photo reflective diode: RS-06WD


More details about Grove modules please refer to Grove System


With Arduino

Brick will return HIGH when black line is detected, and LOW when white line is detected. Using the adjustable resistor the detection range can be changed from 1.5cm to 5cm. If the sensor can’t tell between black and white surfaces, you can also use the adjustable resistor to set a suitable reference voltage.

Includes important code snippet. Demo code like :

Demo code

//Name: Line finder digital mode
//Function: detect black line or white line
//Parameter:   When digital signal is HIGH, black line
//             When digital signal is LOW, white line
int signalPin =  3;    // connected to digital pin 3
void setup()   {
  pinMode(signalPin, INPUT); // initialize the digital pin as an output:
  Serial.begin(9600);  // initialize serial communications at 9600 bps:
// the loop() method runs over and over again,
// as long as the Arduino has power
void loop()
  if(HIGH == digitalRead(signalPin))
    else  Serial.println("white");  // display the color
    //delay(1000);                  // wait for a second


With Raspberry Pi

  1. You need a raspberry pi and a grovepi or grovepi+.
  2. You need to complete configuring the development enviroment, otherwise follow here.
  3. Connection
  4. Plug the sensor to grovepi socket D7 by using a grove cable.

  5. 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 Line Finder to digital port D7
line_finder = 7


while True:
        # Return HIGH when black line is detected, and LOW when white line is detected
        if grovepi.digitalRead(line_finder) == 1:
            print "black line detected"
            print "white line detected"


    except IOError:
        print "Error"

5.Run the demo.

   sudo python


Help us make it better

Thank you for choosing Seeed. A couple of months ago we initiated a project to improve our documentation system. What you are looking at now is the first edition of the new documentation system. Comparing to the old one, here is the progresses that we made:

  • Replaced the old documentation system with a new one that was developed from Mkdocs, a more widely used and cooler tool to develop documentation system.
  • Integrated the documentation system with our official website, now you can go to Bazaar and other section like Forum and Community more conveniently.
  • Reviewed and rewrote documents for hundreds of products for the system’s first edition, and will continue migrate documents from old wiki to the new one.

An easy-to-use instruction is as important as the product itself. We are expecting this new system will improve your experience when using Seeed’s products. However since this is the first edition, there are still many things need to improve, if you have any suggestions or findings, you are most welcome to submit the amended version as our contributor or give us suggestions in the survey below, Please don’t forget to leave your email address so that we can reply.

Happy hacking