Renesas FS3000 Air velocity sensor module

FS3000 is an I2C digital air velocity sensor by Renesas, which is handled with the FS3000 module. This sensor comes in two variants: FS3000-1005 (measuring up to 7.23 m/s) and FS3000-1015 (measuring up to 15 m/s). This is a unidirectional sensor: you can only measure air velocity in one direction. Air flowing backwards results in 0 reading.

How to use

For ease of use, there is a reasonably priced Pmod(tm) compatible board from Renesas, other breakouts are available too.

It's a simple I2C sensor, you only have to connect GND, 3.3v, SDA and SCL. The sensor is continuously measuring air velocity, there is no initialization, configuration or sleep mode. Current consumption is ~10mA by the datasheet.

By default, this module assumes the FS3000-1005 variant. If you have the FS3000-1015 variant, pass in true as the second parameter to the connect function. The return value of the read function is the air velocity in meter/second, if the checksum is correct. If the checksum calculation fails, the function returns -1.

Wiring up

This sensor can use only one I2C address: 0x28. This means if you want to use multiple sensors, you would have to connect it to different pins, or use an I2C multiplexer. You can use I2C speed up to 400kHz.

PMOD Pin Espruino Wifi
3 (SCL) B8
4 (SDA) B9
5 (GND) GND
6 (3.3) 3.3

FS3000 PMOD I2C wiring

I2C1.setup({scl: B8, sda: B9, bitrate: 400000});

// using the FS3000-1005
var fs1005 = require("FS3000").connect(I2C1);

// using the FS3000-1015
var fs1015 = require("FS3000").connect(I2C1, true);


setInterval(function() {
  print(fs1005.read());
  // outputs air velocity in m/s 
}, 200);

Reference

/* @param {I2C} i2c an I2C interface
   * @param {boolean} is1015 If the IC is the -1015 variant, measuring up to 15m/s, pass in true. Leave empty, or pass in false, if it's the -1005 variant, measuring up to 7.23 m/s
 */
FS3000.prototype.constructor = function (i2c, is1015) { ... }

/* Calculate air velocity from the raw sensor value.
   * @param {number} s raw sensor value
 */
FS3000.prototype._calc = function (s) { ... }

FS3000.prototype._checksumOk = function (d) { ... }

/* Read the air velocity from the sensor.
   * Returns velocity in m/s, if the checksum is correct.
   * Return -1, if checksum calculation fails.
   * The reading from the sensors is not really linear, especially for FS3000-1015 variant. If you need more accuracy, check the datasheet for a better algorithm!
 */
FS3000.prototype.read = function () { ... }

/* Creates a new instance of the FS3000 module.
 * @param {I2C} i2c an I2C interface
 * @param {boolean} is1015 If the IC is the -1015 variant, measuring up to 15m/s, pass in true. Leave empty, or pass in false, if it's the -1005 variant, measuring up to 7.23 m/s
 */
exports.connect = function (i2c, is1015) { ... }

Using

(No tutorials are available yet)

This page is auto-generated from GitHub. If you see any mistakes or have suggestions, please let us know.