# ioboard

> Provides a standard interface to boards capable of IO (e.g. Arduinos, Maestros, Raspberry Pis, etc) and their firmware

Latest version **3.0.0** (published 2014-04-11) · BSD license · 0 weekly downloads

## Install

```sh
npm install ioboard
pnpm add ioboard
yarn add ioboard
bun add ioboard
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 3.0.0 |
| Published | 2014-04-11 |
| First published | 2013-09-18 |
| Weekly downloads | 0 |
| License | BSD |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 1 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 23 |
| Author | Alex Potsides |
| Maintainers | achingbrain |
| Keywords | node, firmata, servo, ssc, maestro |

## Links

- npm: https://www.npmjs.com/package/ioboard
- Repository: https://github.com/achingbrain/node-ioboard
- Issues: https://github.com/achingbrain/node-ioboard/issues
- npm.io page: https://npm.io/package/ioboard

## Dependencies (1)

- [check-types](https://npm.io/package/check-types.md) ^1.2

## Alternatives

- [@expo/fingerprint](https://npm.io/package/@expo/fingerprint.md) — 6.2M weekly downloads
- [@azure/monitor-opentelemetry-exporter](https://npm.io/package/@azure/monitor-opentelemetry-exporter.md) — 850.0K weekly downloads
- [@azure/monitor-opentelemetry](https://npm.io/package/@azure/monitor-opentelemetry.md) — 624.0K weekly downloads
- [@posthog/ai](https://npm.io/package/@posthog/ai.md) — 423.3K weekly downloads
- [fakefilter](https://npm.io/package/fakefilter.md) — 63.9K weekly downloads

## Recent versions

- 3.0.0 (latest) — 2014-04-11
- 2.1.0 — 2014-01-06
- 2.0.0 — 2014-01-06
- 1.0.1 — 2013-09-28
- 1.0.0 — 2013-09-18

## README

# ioboard

An extendable implementation of Johnny Five's [IO Plugins](https://github.com/rwaldron/johnny-five/wiki/IO-Plugins).

Implements all required and optional methods, along with the required constants - `MODE`, `HIGH`, `LOW`, etc.

You should configure the relevant pins of your board in your constructor, then emit the ready event.

E.g.:

```javascript
var util = require('util'),
  IOBoard = require('ioboard');

MyIO = function(path, callback) {
  // call super constructor
  IOBoard.call(this);

  // connect to hardware and emit "connected" event
  this.emit("connected");

  // .. configure pins
  this._pins.push(..);

  // all done, emit ready event
  this.emit("ready");

  // finally call the passed callback
  callback();
}
util.inherits(IO, IOBoard);
```

Finally implement any of the IO Plugin methods of your choosing:

```javascript
// implement digitalWrite
MyIO.prototype.digitalWrite = function(pin, value) {
  ..
};
```

## Logging

By default IOBoard will print a message when every non-implemented method is invoked.  To prevent this, set the `quiet` property of the super constructor args to true:

```javascript
MyIO = function(path, callback) {
  // call super constructor
  IOBoard.call(this, {
    ..
    quiet: true
  });

  ..
}
util.inherits(IO, IOBoard);
```

---
_Source: https://npm.io/package/ioboard · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
