libftdi

0.0.3 • Public • Published

node-libftdi

Binding for ftdi library calls.

Written and tested with node.js v0.12.7 on linux.

Requires ftdi development headers. Installing headers on Ubuntu:

$ sudo apt-get install libftdi-dev

Permissions may need to be changed to access the USB devices as a standard user. Example udev rule to set the group permissions for ftdi devices:

SUBSYSTEM=="usb",ATTR{idVendor}=="0403",ATTR{idProduct}=="6001",GROUP="plugdev"

A specific device can be targeted by serial number as shown in the 'Example usage' section.

Installation

$ npm install libftdi

Available methods

  • create_context()
  • ftdi_usb_open_desc(context, vendor, product, description, serial)
  • ftdi_set_bitmode(context, bitmask, mode)
  • ftdi_set_baudrate(context, baudrate)
  • ftdi_get_error_string(context)
  • ftdi_read_data(context, buf)
  • ftdi_write_data(context, buf, size)
  • ftdi_usb_purge_tx_buffer(context)

Example usage

var libftdi = require('libftdi')

// FTDI USB identifiers
var usbVendor = 0x0403;
var usbProduct = 0x6001;

// Read buffer size
var rxBufSize = 2048;

// Read baud rate
var rxBaudRate = 9600;

// Serial number of device
var serial = 'FT123456';

// Context
var ctx = libftdi.create_context();

libftdi.ftdi_usb_open_desc(ctx, usbVendor, usbProduct, null, serial);
console.log(libftdi.ftdi_get_error_string(ctx));

libftdi.ftdi_set_baudrate(ctx, rxBaudRate);
console.log(libftdi.ftdi_get_error_string(ctx));

// Buffer
var buf = new Buffer(rxBufSize);

// Read data
var data = libftdi.ftdi_read_data(ctx, buf);
console.log(libftdi.ftdi_get_error_string(ctx));
console.log('Byte count: ' + data);
console.log(buf);

// etc

To Do

  • Look at using NAN
  • Add further error checking to function arguments
  • Support for operating systems other than linux
  • Add other functions from c version of libftdi

Readme

Keywords

Package Sidebar

Install

npm i libftdi

Weekly Downloads

1

Version

0.0.3

License

MIT

Last publish

Collaborators

  • pmgration