Matrix - Fire Sensor

From FriendlyELEC WiKi
Jump to: navigation, search


1 Introduction

Fire Sensor
  • The Matrix-Fire_Sensor module is a flame detector module. It uses the YS-17 flame detector to detect flames or fires. It can detect flames or fires whose wavelengths are between 760nm and 1100nm. Its detecting angle is up to 60 degrees. Its sensitivity can be adjusted via the potentiometer.

2 Features

  • Standard 3 PIN Interface
  • PCB Dimension(mm): 16 x 24

Fire Sensor.PCB

  • Pin Description:
Pin Description
V Supply Voltage 5V
G Ground

3 Basic Device Operation

  • The YS-17 is an infrared flame detector monitoring the infrared spectral band for specific patterns given off by hot gases. Radiation of flames and fires is sensed using a specialized infrared receiver and then converted to an electronic signal. This signal is compared with a threshold signal and when it reaches the threshold value the module will output a low level.

4 Applications

4.1 Connect to NanoPi M1

Refer to the following connection diagram to connect the module to the NanoPi M1:

Connection Details:

Matrix-Fire_Sensor NanoPi M1
S Pin7
V Pin4
G Pin6

4.2 Connect to NanoPi 2

Refer to the following connection diagram to connect the module to the NanoPi 2:

Connection Details

Matrix-Fire_Sensor NanoPi 2
S Pin7
V Pin4
G Pin6

4.3 Connect to NanoPi M2 / NanoPi 2 Fire

Refer to the following connection diagram to connect the module to the NanoPi M2/ NanoPi 2 Fire:

Connection Details:

Matrix-Fire_Sensor NanoPi M2
S Pin7
V Pin4
G Pin6

4.4 Connect to NanoPC-T2

Refer to the following connection diagram to connect the module to the NanoPC-T2:

Connection Details:

Matrix-Fire_Sensor NanoPC-T2
S Pin15
V Pin29
G Pin30

5 Compile & Run Test Program

Boot your ARM board with Debian and copy the matrix code:

$ apt-get update && apt-get install git
$ git clone

If your cloning is done successfully a "matrix" directory will be generated.

Compile and install Matrix:

$ cd matrix
$ make && make install

Run test program:

$ matrix-gpio_int

Note: this module is not plug and play therefore before running the module please make sure it is connected to an ARM board.
Here is what you should observe:

Waiting event...
Device[0] value is 1

If a flame is within its detection range it will be detected and an event will be triggered.

6 Code Sample

This Matrix code sample can work with all the ARM boards mentioned in this module's wiki. The name of this code sample is "matrix-gpio_int". Here is its source code:

int main(int argc, char ** argv)
    int i, board;
    int retSize = -1;
    char value[ARRAY_SIZE(dev)];
    if ((board = boardInit()) < 0) {
        printf("Fail to init board\n");
        return -1;
    if (argc == 2)
        dev[0].pin = atoi(argv[1]);
    system("modprobe "DRIVER_MODULE);
    signal(SIGINT, intHandler);
    if (board == BOARD_NANOPI_T2)
        dev[0].pin = GPIO_PIN(15);
    printf("Use GPIO_PIN(%d)\n", dev[0].pin);
    if ((devFD =sensorInit(dev, ARRAY_SIZE(dev))) == -1) {
        printf("Fail to init sensor\n");
        goto err;
    printf("Waiting event...\n");
    if ((retSize = sensorRead(devFD, value, ARRAY_SIZE(dev))) == -1) {
        printf("Fail to read sensors\n");
    if (retSize > 0) {
        i = 0;
        for (i=0; i<retSize; i++) {
            printf("Device[%d] value is %d\n", i, value[i]);
    system("rmmod "DRIVER_MODULE);
    return 0;

For more details about this APIs called in this code sample refer to Matrix API reference manual

7 Resources

8 Update Log

8.1 Feb-24-2016

  • Added Sections 1, 2, 3 and 4

8.2 Feb-26-2016

  • Translated into English

8.3 June-19-2016

  • Re-organized and simplified wiki