Skip to content

Core #345

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Feb 22, 2017
Merged

Core #345

merged 3 commits into from
Feb 22, 2017

Conversation

zfields
Copy link
Contributor

@zfields zfields commented Feb 2, 2017

This implements the core functionality of Firmata (https://github.com/firmata/protocol/blob/master/protocol.md#message-types) in FirmataMarshaller. It also provides full blown contextual callbacks in the FirmataParser. It does not disrupt the original FirmataClass API.

Provides a stop gap for issues #318, #320, #321

Also accidently contains PR #330 (I believe it will automatically close that PR if accepted).

I have checked to see that it compiles for all the flavors I have in my IDE. It fails for the robot and then NG citing space as the issue. It passes your test cases and I've confirmed it works using the Windows Remote Arduino Experience app in the Windows app store.

I would love a code review, and can you please run your battery of tests once you have a chance?

Core functionality as described by the protocol https://github.com/firmata/protocol/blob/master/protocol.md#message-types

Provided contextual callbacks to FirmataParser to allow multiple instances to run simultaneously.
@soundanalogous
Copy link
Member

Passes all of my IDE compile tests. Looks like arduino-builder is broken for IDE versions older than 1.6.12 (but that's Arduino's problem). Still need to test on actual hardware. Will do that tomorrow or Sat. After that I'm out for a couple of weeks.

@@ -398,7 +437,11 @@ void FirmataClass::attach(uint8_t command, systemCallbackFunction newFunction)
*/
void FirmataClass::attach(uint8_t command, stringCallbackFunction newFunction)
{
parser.attach(command, (stringCallbackFunction)newFunction);
switch (command) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does this need to be a switch statement? Would an if statement be more performant (I'm not sure if an if or switch statement is better performance wise when there is only a single condition)? I don't foresee having other types of string callback functions.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I can't imagine a more performant branch than an if, but I was assuming they would distill down into the same assembly; I will check into it and get back. I just wanted to keep the same semantics, but I wouldn't sacrifice performance for it.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I just confirmed the binary is the same exact size, when using the single case switch or an if statement.

* (16384). To increase the pin range or value, see the documentation for the EXTENDED_ANALOG
* message.
* @param pin The analog pin for which to request the value (limited to pins 0 - 15).
* @param stream_enable A zero value will disable the stream, a non-zero will enable the stream
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

remove stream_enable description

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

also the @note on the next line

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed

@@ -194,16 +207,35 @@ int FirmataParser::setDataBufferOfSize(uint8_t * dataBuffer, size_t dataBufferSi
* DIGITAL_MESSAGE, REPORT_ANALOG, REPORT DIGITAL, SET_PIN_MODE and SET_DIGITAL_PIN_VALUE).
Copy link
Member

@soundanalogous soundanalogous Feb 3, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you add a description of when and why to use the context parameter? Also is this a required parameter, and if not, what is the default value?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed

void FirmataMarshaller::reportAnalogDisable(uint8_t pin)
const
{
reportAnalog(pin, false);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit, spacing. Same in next few methods.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed

@soundanalogous
Copy link
Member

Non-serial transports aren't working. Not sure why as I don't see anything here that would affect it.

@soundanalogous
Copy link
Member

Non-serial transports are working fine in master.

@zfields
Copy link
Contributor Author

zfields commented Feb 8, 2017

The serial transports are a head scratcher. I'm going to dig in, then I'll report here with whatever I find.

@soundanalogous Can you tell me how to reproduce the transport error? I want to dig in, but I realized I don't know where to start.

@@ -87,33 +98,35 @@ void FirmataParser::parse(uint8_t inputData)
switch (executeMultiByteCommand) {
case ANALOG_MESSAGE:
if (currentAnalogCallback) {
(*currentAnalogCallback)(multiByteChannel,
(*currentAnalogCallback)(this,
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this should be currentAnalogCallbackContext

same for all other this context parameters

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed

@soundanalogous
Copy link
Member

soundanalogous commented Feb 10, 2017

Can you tell me how to reproduce the transport error? I want to dig in, but I realized I don't know where to start.

Do you have a MKR1000, an ESP8266 board or an Arduino 101? If you have a MKR1000 or ESP8266 board you can run StandardFirmataWiFi (note the options in wifiConfig.h) on the board and then run the a corresponding client or server firmata.js example from here: https://github.com/soundanalogous/firmata-client-examples/tree/master/firmata-js/network. It's helpful to enable SERIAL_DEBUG to get the DHCP address, etc from the board.

If you have an Arduino 101, load StandardFirmataBLE and then run this firmata.js example: https://github.com/soundanalogous/firmata-client-examples/blob/master/firmata-js/ble/ble-ard101-test.js.

Run these from master first to see what to expect. Sometimes the network connection can be a bit testy.

@zfields
Copy link
Contributor Author

zfields commented Feb 11, 2017

I broke out my Adafruit Huzzah Feather ESP8266, but I haven't had much luck. Admittedly, I'm a novice with Node, but I cloned firmata-client-examples, ran sudo npm install in the firmata-js/network directory, then tried to run node blink-firmata-client.js.

Do I need to install v8 seperately, or does it come down as a dependency? Any help, advice or README's would be appreciated.

node --version = v7.5.0
npm --version = 4.1.2

Here's my error:

#
# Fatal error in ../deps/v8/src/api.cc, line 1051
# Check failed: !value_obj->IsJSReceiver() || value_obj->IsTemplateInfo().
#

==== C stack trace ===============================

    node(v8::base::debug::StackTrace::StackTrace()+0x16) [0x15c5c06]
    node(V8_Fatal+0xe8) [0x15c2d48]
    node(v8::Template::Set(v8::Local<v8::Name>, v8::Local<v8::Data>, v8::PropertyAttribute)+0x107) [0x9f2817]
    /home/zak/Documents/Development/GitHub/firmata-client-examples/firmata-js/network/node_modules/serialport/build/Release/serialport.node(SerialportPoller::Init(v8::Local<v8::Object>)+0x22c) [0x7fd78038d5dc]
    /home/zak/Documents/Development/GitHub/firmata-client-examples/firmata-js/network/node_modules/serialport/build/Release/serialport.node(init+0x966) [0x7fd780387b46]
    node(node::DLOpen(v8::FunctionCallbackInfo<v8::Value> const&)+0x329) [0x12f1dc9]
    node(v8::internal::FunctionCallbackArguments::Call(void (*)(v8::FunctionCallbackInfo<v8::Value> const&))+0x129) [0xa21ea9]
    node() [0xa99e9d]
    node(v8::internal::Builtin_HandleApiCall(int, v8::internal::Object**, v8::internal::Isolate*)+0xec) [0xa9accc]
    [0x398128a063a7]
Illegal instruction (core dumped)

@soundanalogous
Copy link
Member

I think @turkycat wrote a TCP client for remote wiring so you may want to see if that is still compatible if you don't want to deal with node (plus it would be nice to have more Firmata network examples for languages other than JavaScript).

Regarding Node, try using node version 6 (whatever is latest v6). You can use node version manager to easily switch between versions. Even node.js version numbers are stable releases and odd numbered are experimental releases.

You should run either the blink-firmata-esp-client.js or blink-firmata-esp-server.js script. Which one depends on how StandardFirmataWiFi is configured. By default it's configured as a TCP server so you wold run blink-firmata-esp-client.js. You can configure as a TCP client by uncommenting this define.

Also enable serial debugging by uncommenting out this line. The ESP HUZZAH board loads so fast that you'll probably have to reset the board once after flashing (and you have USB connection). Then look at the output in the serial console.

@zfields
Copy link
Contributor Author

zfields commented Feb 12, 2017

Okay, switching down to node --version = 6.9.5 made things happen in the console, but no lights on the board were blinking. Interestingly, I did get the same console spew, regardless of whether I was using the "core" or "master" branch.

READY!
StandardFirmataWiFi.ino-2.5
86
85
82
86
84
83
...

However, I still got this extremely long error before I got the READY! message. If you look closely, it is the same exact message appearing twice, then all the sudden it starts working. Is it "connecting" on the third try and this expected behavior, or is it possible I am missing some giant prerequisite that is installed on your machine?

(node) v8::ObjectTemplate::Set() with non-primitive values is deprecated
(node) and will stop working in the next major release.

==== JS stack trace =========================================

Security context: 0x639115cfb51 <JS Object>#0#
    1: .node [module.js:597] [pc=0x3988cd077dc4] (this=0x74fb4c05631 <an Object with map 0x3f455041ad01>#1#,module=0x19212f4bf939 <a Module with map 0x3f455041bcd1>#2#,filename=0x19212f4bbfb1 <String[135]: /home/zak/Documents/Development/GitHub/firmata-client-examples/firmata-js/network/node_modules/serialport/build/Release/serialport.node>)
    2: load [module.js:487] [pc=0x3988cd03ef12] (this=0x19212f4bf939 <a Module with map 0x3f455041bcd1>#2#,filename=0x19212f4bbfb1 <String[135]: /home/zak/Documents/Development/GitHub/firmata-client-examples/firmata-js/network/node_modules/serialport/build/Release/serialport.node>)
    3: tryModuleLoad(aka tryModuleLoad) [module.js:446] [pc=0x3988cd03ea3d] (this=0x63911504381 <undefined>,module=0x19212f4bf939 <a Module with map 0x3f455041bcd1>#2#,filename=0x19212f4bbfb1 <String[135]: /home/zak/Documents/Development/GitHub/firmata-client-examples/firmata-js/network/node_modules/serialport/build/Release/serialport.node>)
    4: _load [module.js:438] [pc=0x3988cd0342e2] (this=0x74fb4c05759 <JS Function Module (SharedFunctionInfo 0x651b342baf1)>#3#,request=0x19212f4bab51 <String[135]: /home/zak/Documents/Development/GitHub/firmata-client-examples/firmata-js/network/node_modules/serialport/build/Release/serialport.node>,parent=0x19212f4a98e9 <a Module with map 0x3f455041bcd1>#4#,isMain=0x63911504271 <false>)
    5: require [module.js:497] [pc=0x3988cd048353] (this=0x19212f4a98e9 <a Module with map 0x3f455041bcd1>#4#,path=0x19212f4bab51 <String[135]: /home/zak/Documents/Development/GitHub/firmata-client-examples/firmata-js/network/node_modules/serialport/build/Release/serialport.node>)
    6: require(aka require) [internal/module.js:20] [pc=0x3988cd048086] (this=0x63911504381 <undefined>,path=0x19212f4bab51 <String[135]: /home/zak/Documents/Development/GitHub/firmata-client-examples/firmata-js/network/node_modules/serialport/build/Release/serialport.node>)
    7: bindings [/home/zak/Documents/Development/GitHub/firmata-client-examples/firmata-js/network/node_modules/bindings/bindings.js:76] [pc=0x3988cd072eb6] (this=0x639115e6111 <JS Global Object>#5#,opts=0x651b34b1909 <String[15]: serialport.node>)
    8: /* anonymous */ [/home/zak/Documents/Development/GitHub/firmata-client-examples/firmata-js/network/node_modules/serialport/lib/bindings.js:3] [pc=0x3988cd0719ce] (this=0x19212f49dc69 <an Object with map 0x25bc953075e9>#6#,exports=0x19212f49dc69 <an Object with map 0x25bc953075e9>#6#,require=0x19212f49fc09 <JS Function require (SharedFunctionInfo 0x651b345e609)>#7#,module=0x19212f49dc19 <a Module with map 0x3f455041bcd1>#8#,__filename=0x19212f49a9a9 <String[121]: /home/zak/Documents/Development/GitHub/firmata-client-examples/firmata-js/network/node_modules/serialport/lib/bindings.js>,__dirname=0x19212f49fba1 <String[109]: /home/zak/Documents/Development/GitHub/firmata-client-examples/firmata-js/network/node_modules/serialport/lib>)
    9: _compile [module.js:570] [pc=0x3988cd0476b4] (this=0x19212f49dc19 <a Module with map 0x3f455041bcd1>#8#,content=0x19212f49f1b9 <String[784]\: 'use strict';\n\nvar bindings = require('bindings')('serialport.node');\nvar listUnix = require('./list-unix');\n\nvar linux = process.platform !== 'win32' && process.platform !== 'darwin';\n\nfunction listLinux(callback) {\n  callback = callback || function(err) {\n    if (err) { this.emit('error', err) }\n  }.bind(this);\n  return listUnix(callback);\n};\n\nvar platformOptions = {};\nif (process.platform !== 'win32') {\n  platformOptions = {\n    vmin: 1,\n    vtime: 0\n  };\n}\n\nmodule.exports = {\n  close: bindings.close,\n  drain: bindings.drain,\n  flush: bindings.flush,\n  list: linux ? listLinux : bindings.list,\n  open: bindings.open,\n  SerialportPoller: bindings.SerialportPoller,\n  set: bindings.set,\n  update: bindings.update,\n  write: bindings.write,\n  platformOptions: platformOptions\n};\n>,filename=0x19212f49a9a9 <String[121]: /home/zak/Documents/Development/GitHub/firmata-client-examples/firmata-js/network/node_modules/serialport/lib/bindings.js>)
   10: .js [module.js:579] [pc=0x3988cd0404eb] (this=0x74fb4c05631 <an Object with map 0x3f455041ad01>#1#,module=0x19212f49dc19 <a Module with map 0x3f455041bcd1>#8#,filename=0x19212f49a9a9 <String[121]: /home/zak/Documents/Development/GitHub/firmata-client-examples/firmata-js/network/node_modules/serialport/lib/bindings.js>)
   11: load [module.js:487] [pc=0x3988cd03ef12] (this=0x19212f49dc19 <a Module with map 0x3f455041bcd1>#8#,filename=0x19212f49a9a9 <String[121]: /home/zak/Documents/Development/GitHub/firmata-client-examples/firmata-js/network/node_modules/serialport/lib/bindings.js>)
   12: tryModuleLoad(aka tryModuleLoad) [module.js:446] [pc=0x3988cd03ea3d] (this=0x63911504381 <undefined>,module=0x19212f49dc19 <a Module with map 0x3f455041bcd1>#8#,filename=0x19212f49a9a9 <String[121]: /home/zak/Documents/Development/GitHub/firmata-client-examples/firmata-js/network/node_modules/serialport/lib/bindings.js>)
   13: _load [module.js:438] [pc=0x3988cd0342e2] (this=0x74fb4c05759 <JS Function Module (SharedFunctionInfo 0x651b342baf1)>#3#,request=0x651b3479861 <String[10]: ./bindings>,parent=0x74fb4cccf61 <a Module with map 0x3f455041bcd1>#9#,isMain=0x63911504271 <false>)
   14: require [module.js:497] [pc=0x3988cd048353] (this=0x74fb4cccf61 <a Module with map 0x3f455041bcd1>#9#,path=0x651b3479861 <String[10]: ./bindings>)
   15: require(aka require) [internal/module.js:20] [pc=0x3988cd048086] (this=0x63911504381 <undefined>,path=0x651b3479861 <String[10]: ./bindings>)
   16: /* anonymous */ [/home/zak/Documents/Development/GitHub/firmata-client-examples/firmata-js/network/node_modules/serialport/lib/serialport.js:16] [pc=0x3988cd053dee] (this=0x74fb4cccfe9 <an Object with map 0x25bc953075e9>#10#,exports=0x74fb4cccfe9 <an Object with map 0x25bc953075e9>#10#,require=0x74fb4cd55d9 <JS Function require (SharedFunctionInfo 0x651b345e609)>#11#,module=0x74fb4cccf61 <a Module with map 0x3f455041bcd1>#9#,__filename=0x74fb4cc8e69 <String[123]: /home/zak/Documents/Development/GitHub/firmata-client-examples/firmata-js/network/node_modules/serialport/lib/serialport.js>,__dirname=0x74fb4cd5571 <String[109]: /home/zak/Documents/Development/GitHub/firmata-client-examples/firmata-js/network/node_modules/serialport/lib>)
   17: _compile [module.js:570] [pc=0x3988cd0476b4] (this=0x74fb4cccf61 <a Module with map 0x3f455041bcd1>#9#,content=0x74fb4cce051 <Very long string[13557]>#12#,filename=0x74fb4cc8e69 <String[123]: /home/zak/Documents/Development/GitHub/firmata-client-examples/firmata-js/network/node_modules/serialport/lib/serialport.js>)
   18: .js [module.js:579] [pc=0x3988cd0404eb] (this=0x74fb4c05631 <an Object with map 0x3f455041ad01>#1#,module=0x74fb4cccf61 <a Module with map 0x3f455041bcd1>#9#,filename=0x74fb4cc8e69 <String[123]: /home/zak/Documents/Development/GitHub/firmata-client-examples/firmata-js/network/node_modules/serialport/lib/serialport.js>)
   19: load [module.js:487] [pc=0x3988cd03ef12] (this=0x74fb4cccf61 <a Module with map 0x3f455041bcd1>#9#,filename=0x74fb4cc8e69 <String[123]: /home/zak/Documents/Development/GitHub/firmata-client-examples/firmata-js/network/node_modules/serialport/lib/serialport.js>)
   20: tryModuleLoad(aka tryModuleLoad) [module.js:446] [pc=0x3988cd03ea3d] (this=0x63911504381 <undefined>,module=0x74fb4cccf61 <a Module with map 0x3f455041bcd1>#9#,filename=0x74fb4cc8e69 <String[123]: /home/zak/Documents/Development/GitHub/firmata-client-examples/firmata-js/network/node_modules/serialport/lib/serialport.js>)
   21: _load [module.js:438] [pc=0x3988cd0342e2] (this=0x74fb4c05759 <JS Function Module (SharedFunctionInfo 0x651b342baf1)>#3#,request=0x651b3460569 <String[10]: serialport>,parent=0x74fb4c055a9 <a Module with map 0x3f455041bcd1>#13#,isMain=0x63911504271 <false>)
   22: require [module.js:497] [pc=0x3988cd048353] (this=0x74fb4c055a9 <a Module with map 0x3f455041bcd1>#13#,path=0x651b3460569 <String[10]: serialport>)
   23: require(aka require) [internal/module.js:20] [pc=0x3988cd048086] (this=0x63911504381 <undefined>,path=0x651b3460569 <String[10]: serialport>)
   24: /* anonymous */ [/home/zak/Documents/Development/GitHub/firmata-client-examples/firmata-js/network/node_modules/firmata/lib/firmata.js:30] [pc=0x3988cd04b3fa] (this=0x74fb4c88751 <an Object with map 0x25bc953075e9>#14#,exports=0x74fb4c88751 <an Object with map 0x25bc953075e9>#14#,require=0x74fb4caeff1 <JS Function require (SharedFunctionInfo 0x651b345e609)>#15#,module=0x74fb4c055a9 <a Module with map 0x3f455041bcd1>#13#,__filename=0x74fb4c053e1 <String[117]: /home/zak/Documents/Development/GitHub/firmata-client-examples/firmata-js/network/node_modules/firmata/lib/firmata.js>,__dirname=0x74fb4caef59 <String[106]: /home/zak/Documents/Development/GitHub/firmata-client-examples/firmata-js/network/node_modules/firmata/lib>)
   25: _compile [module.js:570] [pc=0x3988cd0476b4] (this=0x74fb4c055a9 <a Module with map 0x3f455041bcd1>#13#,content=0x74fb4c95029 <Very long string[48903]>#16#,filename=0x74fb4c053e1 <String[117]: /home/zak/Documents/Development/GitHub/firmata-client-examples/firmata-js/network/node_modules/firmata/lib/firmata.js>)
   26: .js [module.js:579] [pc=0x3988cd0404eb] (this=0x74fb4c05631 <an Object with map 0x3f455041ad01>#1#,module=0x74fb4c055a9 <a Module with map 0x3f455041bcd1>#13#,filename=0x74fb4c053e1 <String[117]: /home/zak/Documents/Development/GitHub/firmata-client-examples/firmata-js/network/node_modules/firmata/lib/firmata.js>)
   27: load [module.js:487] [pc=0x3988cd03ef12] (this=0x74fb4c055a9 <a Module with map 0x3f455041bcd1>#13#,filename=0x74fb4c053e1 <String[117]: /home/zak/Documents/Development/GitHub/firmata-client-examples/firmata-js/network/node_modules/firmata/lib/firmata.js>)
   28: tryModuleLoad(aka tryModuleLoad) [module.js:446] [pc=0x3988cd03ea3d] (this=0x63911504381 <undefined>,module=0x74fb4c055a9 <a Module with map 0x3f455041bcd1>#13#,filename=0x74fb4c053e1 <String[117]: /home/zak/Documents/Development/GitHub/firmata-client-examples/firmata-js/network/node_modules/firmata/lib/firmata.js>)
   29: _load [module.js:438] [pc=0x3988cd0342e2] (this=0x74fb4c05759 <JS Function Module (SharedFunctionInfo 0x651b342baf1)>#3#,request=0x651b345dc91 <String[7]: firmata>,parent=0x74fb4c056d1 <a Module with map 0x3f455041bcd1>#17#,isMain=0x63911504271 <false>)
   30: require [module.js:497] [pc=0x3988cd048353] (this=0x74fb4c056d1 <a Module with map 0x3f455041bcd1>#17#,path=0x651b345dc91 <String[7]: firmata>)
   31: require(aka require) [internal/module.js:20] [pc=0x3988cd048086] (this=0x63911504381 <undefined>,path=0x651b345dc91 <String[7]: firmata>)
   32: /* anonymous */ [/home/zak/Documents/Development/GitHub/firmata-client-examples/firmata-js/network/blink-firmata-client.js:4] [pc=0x3988cd0479ad] (this=0x74fb4c05959 <an Object with map 0x25bc953075e9>#18#,exports=0x74fb4c05959 <an Object with map 0x25bc953075e9>#18#,require=0x74fb4c057e1 <JS Function require (SharedFunctionInfo 0x651b345e609)>#19#,module=0x74fb4c056d1 <a Module with map 0x3f455041bcd1>#17#,__filename=0x74fb4c058d1 <String[105]: /home/zak/Documents/Development/GitHub/firmata-client-examples/firmata-js/network/blink-firmata-client.js>,__dirname=0x74fb4c058a9 <String[81]: /home/zak/Documents/Development/GitHub/firmata-client-examples/firmata-js/network>)
   33: _compile [module.js:570] [pc=0x3988cd0476b4] (this=0x74fb4c056d1 <a Module with map 0x3f455041bcd1>#17#,content=0x74fb4c05ce1 <String[726]\: /*\n * To run in Debug mode: DEBUG=etherport-client node wifi-test\n */\nvar Firmata = require("firmata").Board;\nvar EtherPortClient = require("etherport-client").EtherPortClient;\nvar board = new Firmata(new EtherPortClient({\n  host: "192.168.1.169",\n  port: 3030\n}));\n\nboard.on("ready", function() {\n  console.log("READY!");\n  console.log(\n    board.firmware.name + "-" +\n    board.firmware.version.major + "." +\n    board.firmware.version.minor\n  );\n\n  var state = 1;\n  var lastVal = 0;\n\n  this.pinMode(8, this.MODES.OUTPUT);\n\n  setInterval(function() {\n    this.digitalWrite(8, (state ^= 1));\n  }.bind(this), 500);\n\n  this.analogRead(0, function(value) {\n    if (value != lastVal) {\n      console.log(value);\n    }\n  });\n\n});\n>,filename=0x74fb4c058d1 <String[105]: /home/zak/Documents/Development/GitHub/firmata-client-examples/firmata-js/network/blink-firmata-client.js>)
   34: .js [module.js:579] [pc=0x3988cd0404eb] (this=0x74fb4c05631 <an Object with map 0x3f455041ad01>#1#,module=0x74fb4c056d1 <a Module with map 0x3f455041bcd1>#17#,filename=0x74fb4c058d1 <String[105]: /home/zak/Documents/Development/GitHub/firmata-client-examples/firmata-js/network/blink-firmata-client.js>)
   35: load [module.js:487] [pc=0x3988cd03ef12] (this=0x74fb4c056d1 <a Module with map 0x3f455041bcd1>#17#,filename=0x74fb4c058d1 <String[105]: /home/zak/Documents/Development/GitHub/firmata-client-examples/firmata-js/network/blink-firmata-client.js>)
   36: tryModuleLoad(aka tryModuleLoad) [module.js:446] [pc=0x3988cd03ea3d] (this=0x63911504381 <undefined>,module=0x74fb4c056d1 <a Module with map 0x3f455041bcd1>#17#,filename=0x74fb4c058d1 <String[105]: /home/zak/Documents/Development/GitHub/firmata-client-examples/firmata-js/network/blink-firmata-client.js>)
   37: _load [module.js:438] [pc=0x3988cd0342e2] (this=0x74fb4c05759 <JS Function Module (SharedFunctionInfo 0x651b342baf1)>#3#,request=0x651b3452b31 <String[105]: /home/zak/Documents/Development/GitHub/firmata-client-examples/firmata-js/network/blink-firmata-client.js>,parent=0x63911504201 <null>,isMain=0x639115043c1 <true>)
   38: /* anonymous */(aka /* anonymous */) [module.js:604] [pc=0x3988cd033daa] (this=0x63911504381 <undefined>)
   39: run(aka run) [bootstrap_node.js:394] [pc=0x3988cd033c30] (this=0x63911504381 <undefined>,entryFunction=0x651b3451599 <JS Function Module.runMain (SharedFunctionInfo 0x651b342c931)>#20#)
   40: startup(aka startup) [bootstrap_node.js:149] [pc=0x3988ccf44932] (this=0x63911504381 <undefined>)
   41: /* anonymous */(aka /* anonymous */) [bootstrap_node.js:509] [pc=0x3988ccf42759] (this=0x63911504201 <null>,process=0x639115e1959 <a process with map 0x25bc95311671>#21#)
=====================


==== C stack trace ===============================

 1: v8::Template::Set(v8::Local<v8::Name>, v8::Local<v8::Data>, v8::PropertyAttribute)
 2: SerialportPoller::Init(v8::Local<v8::Object>)
 3: init
 4: node::DLOpen(v8::FunctionCallbackInfo<v8::Value> const&)
 5: v8::internal::FunctionCallbackArguments::Call(void (*)(v8::FunctionCallbackInfo<v8::Value> const&))
 6: 0x9e7922
 7: 0x9e7f9e
 8: 0x3988ccf092a7
(node) v8::ObjectTemplate::Set() with non-primitive values is deprecated
(node) and will stop working in the next major release.

==== JS stack trace =========================================

Security context: 0x639115cfb51 <JS Object>#0#
    1: .node [module.js:597] [pc=0x3988cd077dc4] (this=0x74fb4c05631 <an Object with map 0x3f455041ad01>#1#,module=0x19212f4bf939 <a Module with map 0x3f455041bcd1>#2#,filename=0x19212f4bbfb1 <String[135]: /home/zak/Documents/Development/GitHub/firmata-client-examples/firmata-js/network/node_modules/serialport/build/Release/serialport.node>)
    2: load [module.js:487] [pc=0x3988cd03ef12] (this=0x19212f4bf939 <a Module with map 0x3f455041bcd1>#2#,filename=0x19212f4bbfb1 <String[135]: /home/zak/Documents/Development/GitHub/firmata-client-examples/firmata-js/network/node_modules/serialport/build/Release/serialport.node>)
    3: tryModuleLoad(aka tryModuleLoad) [module.js:446] [pc=0x3988cd03ea3d] (this=0x63911504381 <undefined>,module=0x19212f4bf939 <a Module with map 0x3f455041bcd1>#2#,filename=0x19212f4bbfb1 <String[135]: /home/zak/Documents/Development/GitHub/firmata-client-examples/firmata-js/network/node_modules/serialport/build/Release/serialport.node>)
    4: _load [module.js:438] [pc=0x3988cd0342e2] (this=0x74fb4c05759 <JS Function Module (SharedFunctionInfo 0x651b342baf1)>#3#,request=0x19212f4bab51 <String[135]: /home/zak/Documents/Development/GitHub/firmata-client-examples/firmata-js/network/node_modules/serialport/build/Release/serialport.node>,parent=0x19212f4a98e9 <a Module with map 0x3f455041bcd1>#4#,isMain=0x63911504271 <false>)
    5: require [module.js:497] [pc=0x3988cd048353] (this=0x19212f4a98e9 <a Module with map 0x3f455041bcd1>#4#,path=0x19212f4bab51 <String[135]: /home/zak/Documents/Development/GitHub/firmata-client-examples/firmata-js/network/node_modules/serialport/build/Release/serialport.node>)
    6: require(aka require) [internal/module.js:20] [pc=0x3988cd048086] (this=0x63911504381 <undefined>,path=0x19212f4bab51 <String[135]: /home/zak/Documents/Development/GitHub/firmata-client-examples/firmata-js/network/node_modules/serialport/build/Release/serialport.node>)
    7: bindings [/home/zak/Documents/Development/GitHub/firmata-client-examples/firmata-js/network/node_modules/bindings/bindings.js:76] [pc=0x3988cd072eb6] (this=0x639115e6111 <JS Global Object>#5#,opts=0x651b34b1909 <String[15]: serialport.node>)
    8: /* anonymous */ [/home/zak/Documents/Development/GitHub/firmata-client-examples/firmata-js/network/node_modules/serialport/lib/bindings.js:3] [pc=0x3988cd0719ce] (this=0x19212f49dc69 <an Object with map 0x25bc953075e9>#6#,exports=0x19212f49dc69 <an Object with map 0x25bc953075e9>#6#,require=0x19212f49fc09 <JS Function require (SharedFunctionInfo 0x651b345e609)>#7#,module=0x19212f49dc19 <a Module with map 0x3f455041bcd1>#8#,__filename=0x19212f49a9a9 <String[121]: /home/zak/Documents/Development/GitHub/firmata-client-examples/firmata-js/network/node_modules/serialport/lib/bindings.js>,__dirname=0x19212f49fba1 <String[109]: /home/zak/Documents/Development/GitHub/firmata-client-examples/firmata-js/network/node_modules/serialport/lib>)
    9: _compile [module.js:570] [pc=0x3988cd0476b4] (this=0x19212f49dc19 <a Module with map 0x3f455041bcd1>#8#,content=0x19212f49f1b9 <String[784]\: 'use strict';\n\nvar bindings = require('bindings')('serialport.node');\nvar listUnix = require('./list-unix');\n\nvar linux = process.platform !== 'win32' && process.platform !== 'darwin';\n\nfunction listLinux(callback) {\n  callback = callback || function(err) {\n    if (err) { this.emit('error', err) }\n  }.bind(this);\n  return listUnix(callback);\n};\n\nvar platformOptions = {};\nif (process.platform !== 'win32') {\n  platformOptions = {\n    vmin: 1,\n    vtime: 0\n  };\n}\n\nmodule.exports = {\n  close: bindings.close,\n  drain: bindings.drain,\n  flush: bindings.flush,\n  list: linux ? listLinux : bindings.list,\n  open: bindings.open,\n  SerialportPoller: bindings.SerialportPoller,\n  set: bindings.set,\n  update: bindings.update,\n  write: bindings.write,\n  platformOptions: platformOptions\n};\n>,filename=0x19212f49a9a9 <String[121]: /home/zak/Documents/Development/GitHub/firmata-client-examples/firmata-js/network/node_modules/serialport/lib/bindings.js>)
   10: .js [module.js:579] [pc=0x3988cd0404eb] (this=0x74fb4c05631 <an Object with map 0x3f455041ad01>#1#,module=0x19212f49dc19 <a Module with map 0x3f455041bcd1>#8#,filename=0x19212f49a9a9 <String[121]: /home/zak/Documents/Development/GitHub/firmata-client-examples/firmata-js/network/node_modules/serialport/lib/bindings.js>)
   11: load [module.js:487] [pc=0x3988cd03ef12] (this=0x19212f49dc19 <a Module with map 0x3f455041bcd1>#8#,filename=0x19212f49a9a9 <String[121]: /home/zak/Documents/Development/GitHub/firmata-client-examples/firmata-js/network/node_modules/serialport/lib/bindings.js>)
   12: tryModuleLoad(aka tryModuleLoad) [module.js:446] [pc=0x3988cd03ea3d] (this=0x63911504381 <undefined>,module=0x19212f49dc19 <a Module with map 0x3f455041bcd1>#8#,filename=0x19212f49a9a9 <String[121]: /home/zak/Documents/Development/GitHub/firmata-client-examples/firmata-js/network/node_modules/serialport/lib/bindings.js>)
   13: _load [module.js:438] [pc=0x3988cd0342e2] (this=0x74fb4c05759 <JS Function Module (SharedFunctionInfo 0x651b342baf1)>#3#,request=0x651b3479861 <String[10]: ./bindings>,parent=0x74fb4cccf61 <a Module with map 0x3f455041bcd1>#9#,isMain=0x63911504271 <false>)
   14: require [module.js:497] [pc=0x3988cd048353] (this=0x74fb4cccf61 <a Module with map 0x3f455041bcd1>#9#,path=0x651b3479861 <String[10]: ./bindings>)
   15: require(aka require) [internal/module.js:20] [pc=0x3988cd048086] (this=0x63911504381 <undefined>,path=0x651b3479861 <String[10]: ./bindings>)
   16: /* anonymous */ [/home/zak/Documents/Development/GitHub/firmata-client-examples/firmata-js/network/node_modules/serialport/lib/serialport.js:16] [pc=0x3988cd053dee] (this=0x74fb4cccfe9 <an Object with map 0x25bc953075e9>#10#,exports=0x74fb4cccfe9 <an Object with map 0x25bc953075e9>#10#,require=0x74fb4cd55d9 <JS Function require (SharedFunctionInfo 0x651b345e609)>#11#,module=0x74fb4cccf61 <a Module with map 0x3f455041bcd1>#9#,__filename=0x74fb4cc8e69 <String[123]: /home/zak/Documents/Development/GitHub/firmata-client-examples/firmata-js/network/node_modules/serialport/lib/serialport.js>,__dirname=0x74fb4cd5571 <String[109]: /home/zak/Documents/Development/GitHub/firmata-client-examples/firmata-js/network/node_modules/serialport/lib>)
   17: _compile [module.js:570] [pc=0x3988cd0476b4] (this=0x74fb4cccf61 <a Module with map 0x3f455041bcd1>#9#,content=0x74fb4cce051 <Very long string[13557]>#12#,filename=0x74fb4cc8e69 <String[123]: /home/zak/Documents/Development/GitHub/firmata-client-examples/firmata-js/network/node_modules/serialport/lib/serialport.js>)
   18: .js [module.js:579] [pc=0x3988cd0404eb] (this=0x74fb4c05631 <an Object with map 0x3f455041ad01>#1#,module=0x74fb4cccf61 <a Module with map 0x3f455041bcd1>#9#,filename=0x74fb4cc8e69 <String[123]: /home/zak/Documents/Development/GitHub/firmata-client-examples/firmata-js/network/node_modules/serialport/lib/serialport.js>)
   19: load [module.js:487] [pc=0x3988cd03ef12] (this=0x74fb4cccf61 <a Module with map 0x3f455041bcd1>#9#,filename=0x74fb4cc8e69 <String[123]: /home/zak/Documents/Development/GitHub/firmata-client-examples/firmata-js/network/node_modules/serialport/lib/serialport.js>)
   20: tryModuleLoad(aka tryModuleLoad) [module.js:446] [pc=0x3988cd03ea3d] (this=0x63911504381 <undefined>,module=0x74fb4cccf61 <a Module with map 0x3f455041bcd1>#9#,filename=0x74fb4cc8e69 <String[123]: /home/zak/Documents/Development/GitHub/firmata-client-examples/firmata-js/network/node_modules/serialport/lib/serialport.js>)
   21: _load [module.js:438] [pc=0x3988cd0342e2] (this=0x74fb4c05759 <JS Function Module (SharedFunctionInfo 0x651b342baf1)>#3#,request=0x651b3460569 <String[10]: serialport>,parent=0x74fb4c055a9 <a Module with map 0x3f455041bcd1>#13#,isMain=0x63911504271 <false>)
   22: require [module.js:497] [pc=0x3988cd048353] (this=0x74fb4c055a9 <a Module with map 0x3f455041bcd1>#13#,path=0x651b3460569 <String[10]: serialport>)
   23: require(aka require) [internal/module.js:20] [pc=0x3988cd048086] (this=0x63911504381 <undefined>,path=0x651b3460569 <String[10]: serialport>)
   24: /* anonymous */ [/home/zak/Documents/Development/GitHub/firmata-client-examples/firmata-js/network/node_modules/firmata/lib/firmata.js:30] [pc=0x3988cd04b3fa] (this=0x74fb4c88751 <an Object with map 0x25bc953075e9>#14#,exports=0x74fb4c88751 <an Object with map 0x25bc953075e9>#14#,require=0x74fb4caeff1 <JS Function require (SharedFunctionInfo 0x651b345e609)>#15#,module=0x74fb4c055a9 <a Module with map 0x3f455041bcd1>#13#,__filename=0x74fb4c053e1 <String[117]: /home/zak/Documents/Development/GitHub/firmata-client-examples/firmata-js/network/node_modules/firmata/lib/firmata.js>,__dirname=0x74fb4caef59 <String[106]: /home/zak/Documents/Development/GitHub/firmata-client-examples/firmata-js/network/node_modules/firmata/lib>)
   25: _compile [module.js:570] [pc=0x3988cd0476b4] (this=0x74fb4c055a9 <a Module with map 0x3f455041bcd1>#13#,content=0x74fb4c95029 <Very long string[48903]>#16#,filename=0x74fb4c053e1 <String[117]: /home/zak/Documents/Development/GitHub/firmata-client-examples/firmata-js/network/node_modules/firmata/lib/firmata.js>)
   26: .js [module.js:579] [pc=0x3988cd0404eb] (this=0x74fb4c05631 <an Object with map 0x3f455041ad01>#1#,module=0x74fb4c055a9 <a Module with map 0x3f455041bcd1>#13#,filename=0x74fb4c053e1 <String[117]: /home/zak/Documents/Development/GitHub/firmata-client-examples/firmata-js/network/node_modules/firmata/lib/firmata.js>)
   27: load [module.js:487] [pc=0x3988cd03ef12] (this=0x74fb4c055a9 <a Module with map 0x3f455041bcd1>#13#,filename=0x74fb4c053e1 <String[117]: /home/zak/Documents/Development/GitHub/firmata-client-examples/firmata-js/network/node_modules/firmata/lib/firmata.js>)
   28: tryModuleLoad(aka tryModuleLoad) [module.js:446] [pc=0x3988cd03ea3d] (this=0x63911504381 <undefined>,module=0x74fb4c055a9 <a Module with map 0x3f455041bcd1>#13#,filename=0x74fb4c053e1 <String[117]: /home/zak/Documents/Development/GitHub/firmata-client-examples/firmata-js/network/node_modules/firmata/lib/firmata.js>)
   29: _load [module.js:438] [pc=0x3988cd0342e2] (this=0x74fb4c05759 <JS Function Module (SharedFunctionInfo 0x651b342baf1)>#3#,request=0x651b345dc91 <String[7]: firmata>,parent=0x74fb4c056d1 <a Module with map 0x3f455041bcd1>#17#,isMain=0x63911504271 <false>)
   30: require [module.js:497] [pc=0x3988cd048353] (this=0x74fb4c056d1 <a Module with map 0x3f455041bcd1>#17#,path=0x651b345dc91 <String[7]: firmata>)
   31: require(aka require) [internal/module.js:20] [pc=0x3988cd048086] (this=0x63911504381 <undefined>,path=0x651b345dc91 <String[7]: firmata>)
   32: /* anonymous */ [/home/zak/Documents/Development/GitHub/firmata-client-examples/firmata-js/network/blink-firmata-client.js:4] [pc=0x3988cd0479ad] (this=0x74fb4c05959 <an Object with map 0x25bc953075e9>#18#,exports=0x74fb4c05959 <an Object with map 0x25bc953075e9>#18#,require=0x74fb4c057e1 <JS Function require (SharedFunctionInfo 0x651b345e609)>#19#,module=0x74fb4c056d1 <a Module with map 0x3f455041bcd1>#17#,__filename=0x74fb4c058d1 <String[105]: /home/zak/Documents/Development/GitHub/firmata-client-examples/firmata-js/network/blink-firmata-client.js>,__dirname=0x74fb4c058a9 <String[81]: /home/zak/Documents/Development/GitHub/firmata-client-examples/firmata-js/network>)
   33: _compile [module.js:570] [pc=0x3988cd0476b4] (this=0x74fb4c056d1 <a Module with map 0x3f455041bcd1>#17#,content=0x74fb4c05ce1 <String[726]\: /*\n * To run in Debug mode: DEBUG=etherport-client node wifi-test\n */\nvar Firmata = require("firmata").Board;\nvar EtherPortClient = require("etherport-client").EtherPortClient;\nvar board = new Firmata(new EtherPortClient({\n  host: "192.168.1.169",\n  port: 3030\n}));\n\nboard.on("ready", function() {\n  console.log("READY!");\n  console.log(\n    board.firmware.name + "-" +\n    board.firmware.version.major + "." +\n    board.firmware.version.minor\n  );\n\n  var state = 1;\n  var lastVal = 0;\n\n  this.pinMode(8, this.MODES.OUTPUT);\n\n  setInterval(function() {\n    this.digitalWrite(8, (state ^= 1));\n  }.bind(this), 500);\n\n  this.analogRead(0, function(value) {\n    if (value != lastVal) {\n      console.log(value);\n    }\n  });\n\n});\n>,filename=0x74fb4c058d1 <String[105]: /home/zak/Documents/Development/GitHub/firmata-client-examples/firmata-js/network/blink-firmata-client.js>)
   34: .js [module.js:579] [pc=0x3988cd0404eb] (this=0x74fb4c05631 <an Object with map 0x3f455041ad01>#1#,module=0x74fb4c056d1 <a Module with map 0x3f455041bcd1>#17#,filename=0x74fb4c058d1 <String[105]: /home/zak/Documents/Development/GitHub/firmata-client-examples/firmata-js/network/blink-firmata-client.js>)
   35: load [module.js:487] [pc=0x3988cd03ef12] (this=0x74fb4c056d1 <a Module with map 0x3f455041bcd1>#17#,filename=0x74fb4c058d1 <String[105]: /home/zak/Documents/Development/GitHub/firmata-client-examples/firmata-js/network/blink-firmata-client.js>)
   36: tryModuleLoad(aka tryModuleLoad) [module.js:446] [pc=0x3988cd03ea3d] (this=0x63911504381 <undefined>,module=0x74fb4c056d1 <a Module with map 0x3f455041bcd1>#17#,filename=0x74fb4c058d1 <String[105]: /home/zak/Documents/Development/GitHub/firmata-client-examples/firmata-js/network/blink-firmata-client.js>)
   37: _load [module.js:438] [pc=0x3988cd0342e2] (this=0x74fb4c05759 <JS Function Module (SharedFunctionInfo 0x651b342baf1)>#3#,request=0x651b3452b31 <String[105]: /home/zak/Documents/Development/GitHub/firmata-client-examples/firmata-js/network/blink-firmata-client.js>,parent=0x63911504201 <null>,isMain=0x639115043c1 <true>)
   38: /* anonymous */(aka /* anonymous */) [module.js:604] [pc=0x3988cd033daa] (this=0x63911504381 <undefined>)
   39: run(aka run) [bootstrap_node.js:394] [pc=0x3988cd033c30] (this=0x63911504381 <undefined>,entryFunction=0x651b3451599 <JS Function Module.runMain (SharedFunctionInfo 0x651b342c931)>#20#)
   40: startup(aka startup) [bootstrap_node.js:149] [pc=0x3988ccf44932] (this=0x63911504381 <undefined>)
   41: /* anonymous */(aka /* anonymous */) [bootstrap_node.js:509] [pc=0x3988ccf42759] (this=0x63911504201 <null>,process=0x639115e1959 <a process with map 0x25bc95311671>#21#)
=====================


==== C stack trace ===============================

 1: v8::Template::Set(v8::Local<v8::Name>, v8::Local<v8::Data>, v8::PropertyAttribute)
 2: SerialportPoller::Init(v8::Local<v8::Object>)
 3: init
 4: node::DLOpen(v8::FunctionCallbackInfo<v8::Value> const&)
 5: v8::internal::FunctionCallbackArguments::Call(void (*)(v8::FunctionCallbackInfo<v8::Value> const&))
 6: 0x9e7922
 7: 0x9e7f9e
 8: 0x3988ccf092a7

@soundanalogous
Copy link
Member

It looks like the errors are coming from the node-serialport module. When you run npm install, Serialport is built for your OS. There may be a chance it did not build correctly.

Make sure you run npm install from this directory. Also make sure you have the latest esp8266 Arduino package installed.

@zfields
Copy link
Contributor Author

zfields commented Feb 12, 2017

I have pretty much installed everything brand new.
I have the Arduino 1.8.1 IDE installed, and I can run the "Examples > ESP8266WiFi > WiFiScan" example successfully. I have version 2.3.0 of the esp8266 board package.
I ran sudo npm install in case it made any difference, from the firmata-js/network folder, and it's still the same.

I'm getting loads of DEPRECATED warnings, when I install. Can you tell me which versions you are currently using?

Install spew

zak@MAKERSTYLE:~/Documents/Development/GitHub/firmata-client-examples/firmata-js/network$ sudo npm install

> serialport@2.1.2 install /home/zak/Documents/Development/GitHub/firmata-client-examples/firmata-js/network/node_modules/serialport
> node-pre-gyp install --fallback-to-build

make: Entering directory '/home/zak/Documents/Development/GitHub/firmata-client-examples/firmata-js/network/node_modules/serialport/build'
  CXX(target) Release/obj.target/serialport/src/serialport.o
In file included from ../../nan/nan.h:194:0,
                 from ../src/./serialport.h:7,
                 from ../src/serialport.cpp:1:
../../nan/nan_maybe_43_inl.h: In function ‘Nan::MaybeLocal<v8::Object> Nan::CloneElementAt(v8::Local<v8::Array>, uint32_t)’:
../../nan/nan_maybe_43_inl.h:220:58: warning: ‘v8::MaybeLocal<v8::Object> v8::Array::CloneElementAt(v8::Local<v8::Context>, uint32_t)’ is deprecated: Cloning is not supported. [-Wdeprecated-declarations]
   return array->CloneElementAt(GetCurrentContext(), index);
                                                          ^
In file included from /home/zak/.node-gyp/6.9.5/include/node/v8.h:25:0,
                 from /home/zak/.node-gyp/6.9.5/include/node/node.h:42,
                 from ../../nan/nan.h:45,
                 from ../src/./serialport.h:7,
                 from ../src/serialport.cpp:1:
/home/zak/.node-gyp/6.9.5/include/node/v8.h:3032:36: note: declared here
                 MaybeLocal<Object> CloneElementAt(Local<Context> context,
                                    ^
/home/zak/.node-gyp/6.9.5/include/node/v8config.h:333:3: note: in definition of macro ‘V8_DEPRECATED’
   declarator __attribute__((deprecated(message)))
   ^
In file included from ../../nan/nan_new.h:189:0,
                 from ../../nan/nan.h:200,
                 from ../src/./serialport.h:7,
                 from ../src/serialport.cpp:1:
../../nan/nan_implementation_12_inl.h: In static member function ‘static Nan::imp::FactoryBase<v8::BooleanObject>::return_t Nan::imp::Factory<v8::BooleanObject>::New(bool)’:
../../nan/nan_implementation_12_inl.h:40:38: warning: ‘static v8::Local<v8::Value> v8::BooleanObject::New(bool)’ is deprecated: Pass an isolate [-Wdeprecated-declarations]
   return v8::BooleanObject::New(value).As<v8::BooleanObject>();
                                      ^
In file included from /home/zak/.node-gyp/6.9.5/include/node/v8.h:25:0,
                 from /home/zak/.node-gyp/6.9.5/include/node/node.h:42,
                 from ../../nan/nan.h:45,
                 from ../src/./serialport.h:7,
                 from ../src/serialport.cpp:1:
/home/zak/.node-gyp/6.9.5/include/node/v8.h:4007:56: note: declared here
   V8_DEPRECATED("Pass an isolate", static Local<Value> New(bool value));
                                                        ^
/home/zak/.node-gyp/6.9.5/include/node/v8config.h:333:3: note: in definition of macro ‘V8_DEPRECATED’
   declarator __attribute__((deprecated(message)))
   ^
In file included from ../src/./serialport.h:7:0,
                 from ../src/serialport.cpp:1:
../../nan/nan.h: In function ‘bool Nan::SetAccessor(v8::Local<v8::Object>, v8::Local<v8::String>, Nan::GetterCallback, Nan::SetterCallback, v8::Local<v8::Value>, v8::AccessControl, v8::PropertyAttribute)’:
../../nan/nan.h:1961:16: warning: ‘bool v8::Object::SetAccessor(v8::Local<v8::Name>, v8::AccessorNameGetterCallback, v8::AccessorNameSetterCallback, v8::Local<v8::Value>, v8::AccessControl, v8::PropertyAttribute)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
     , attribute);
                ^
In file included from /home/zak/.node-gyp/6.9.5/include/node/v8.h:25:0,
                 from /home/zak/.node-gyp/6.9.5/include/node/node.h:42,
                 from ../../nan/nan.h:45,
                 from ../src/./serialport.h:7,
                 from ../src/serialport.cpp:1:
/home/zak/.node-gyp/6.9.5/include/node/v8.h:2751:22: note: declared here
                 bool SetAccessor(Local<Name> name,
                      ^
/home/zak/.node-gyp/6.9.5/include/node/v8config.h:333:3: note: in definition of macro ‘V8_DEPRECATED’
   declarator __attribute__((deprecated(message)))
   ^
../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Open(Nan::NAN_METHOD_ARGS_TYPE)’:
../src/serialport.cpp:109:116: warning: ‘v8::Local<v8::Int32> v8::Value::ToInt32() const’ is deprecated: Use maybe version [-Wdeprecated-declarations]
 v8::String>("baudRate").ToLocalChecked()).ToLocalChecked()->ToInt32()->Int32Val
                                                                     ^
In file included from /home/zak/.node-gyp/6.9.5/include/node/node.h:42:0,
                 from ../../nan/nan.h:45,
                 from ../src/./serialport.h:7,
                 from ../src/serialport.cpp:1:
/home/zak/.node-gyp/6.9.5/include/node/v8.h:8202:14: note: declared here
 Local<Int32> Value::ToInt32() const {
              ^
../src/serialport.cpp:110:116: warning: ‘v8::Local<v8::Int32> v8::Value::ToInt32() const’ is deprecated: Use maybe version [-Wdeprecated-declarations]
 v8::String>("dataBits").ToLocalChecked()).ToLocalChecked()->ToInt32()->Int32Val
                                                                     ^
In file included from /home/zak/.node-gyp/6.9.5/include/node/node.h:42:0,
                 from ../../nan/nan.h:45,
                 from ../src/./serialport.h:7,
                 from ../src/serialport.cpp:1:
/home/zak/.node-gyp/6.9.5/include/node/v8.h:8202:14: note: declared here
 Local<Int32> Value::ToInt32() const {
              ^
../src/serialport.cpp:111:120: warning: ‘v8::Local<v8::Int32> v8::Value::ToInt32() const’ is deprecated: Use maybe version [-Wdeprecated-declarations]
 ::String>("bufferSize").ToLocalChecked()).ToLocalChecked()->ToInt32()->Int32Val
                                                                     ^
In file included from /home/zak/.node-gyp/6.9.5/include/node/node.h:42:0,
                 from ../../nan/nan.h:45,
                 from ../src/./serialport.h:7,
                 from ../src/serialport.cpp:1:
/home/zak/.node-gyp/6.9.5/include/node/v8.h:8202:14: note: declared here
 Local<Int32> Value::ToInt32() const {
              ^
../src/serialport.cpp:113:131: warning: ‘v8::Local<v8::Number> v8::Value::ToNumber() const’ is deprecated: Use maybe version [-Wdeprecated-declarations]
 8::String>("stopBits").ToLocalChecked()).ToLocalChecked()->ToNumber()->NumberVa
                                                                     ^
In file included from /home/zak/.node-gyp/6.9.5/include/node/node.h:42:0,
                 from ../../nan/nan.h:45,
                 from ../src/./serialport.h:7,
                 from ../src/serialport.cpp:1:
/home/zak/.node-gyp/6.9.5/include/node/v8.h:8166:15: note: declared here
 Local<Number> Value::ToNumber() const {
               ^
../src/serialport.cpp: In function ‘void EIO_AfterOpen(uv_work_t*)’:
../src/serialport.cpp:153:31: warning: ‘v8::Local<v8::Int32> v8::Value::ToInt32() const’ is deprecated: Use maybe version [-Wdeprecated-declarations]
     int fd = argv[1]->ToInt32()->Int32Value();
                               ^
In file included from /home/zak/.node-gyp/6.9.5/include/node/node.h:42:0,
                 from ../../nan/nan.h:45,
                 from ../src/./serialport.h:7,
                 from ../src/serialport.cpp:1:
/home/zak/.node-gyp/6.9.5/include/node/v8.h:8202:14: note: declared here
 Local<Int32> Value::ToInt32() const {
              ^
../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Update(Nan::NAN_METHOD_ARGS_TYPE)’:
../src/serialport.cpp:173:29: warning: ‘v8::Local<v8::Int32> v8::Value::ToInt32() const’ is deprecated: Use maybe version [-Wdeprecated-declarations]
   int fd = info[0]->ToInt32()->Int32Value();
                             ^
In file included from /home/zak/.node-gyp/6.9.5/include/node/node.h:42:0,
                 from ../../nan/nan.h:45,
                 from ../src/./serialport.h:7,
                 from ../src/serialport.cpp:1:
/home/zak/.node-gyp/6.9.5/include/node/v8.h:8202:14: note: declared here
 Local<Int32> Value::ToInt32() const {
              ^
../src/serialport.cpp:192:116: warning: ‘v8::Local<v8::Int32> v8::Value::ToInt32() const’ is deprecated: Use maybe version [-Wdeprecated-declarations]
 v8::String>("baudRate").ToLocalChecked()).ToLocalChecked()->ToInt32()->Int32Val
                                                                     ^
In file included from /home/zak/.node-gyp/6.9.5/include/node/node.h:42:0,
                 from ../../nan/nan.h:45,
                 from ../src/./serialport.h:7,
                 from ../src/serialport.cpp:1:
/home/zak/.node-gyp/6.9.5/include/node/v8.h:8202:14: note: declared here
 Local<Int32> Value::ToInt32() const {
              ^
../src/serialport.cpp:193:116: warning: ‘v8::Local<v8::Int32> v8::Value::ToInt32() const’ is deprecated: Use maybe version [-Wdeprecated-declarations]
 v8::String>("dataBits").ToLocalChecked()).ToLocalChecked()->ToInt32()->Int32Val
                                                                     ^
In file included from /home/zak/.node-gyp/6.9.5/include/node/node.h:42:0,
                 from ../../nan/nan.h:45,
                 from ../src/./serialport.h:7,
                 from ../src/serialport.cpp:1:
/home/zak/.node-gyp/6.9.5/include/node/v8.h:8202:14: note: declared here
 Local<Int32> Value::ToInt32() const {
              ^
../src/serialport.cpp:194:120: warning: ‘v8::Local<v8::Int32> v8::Value::ToInt32() const’ is deprecated: Use maybe version [-Wdeprecated-declarations]
 ::String>("bufferSize").ToLocalChecked()).ToLocalChecked()->ToInt32()->Int32Val
                                                                     ^
In file included from /home/zak/.node-gyp/6.9.5/include/node/node.h:42:0,
                 from ../../nan/nan.h:45,
                 from ../src/./serialport.h:7,
                 from ../src/serialport.cpp:1:
/home/zak/.node-gyp/6.9.5/include/node/v8.h:8202:14: note: declared here
 Local<Int32> Value::ToInt32() const {
              ^
../src/serialport.cpp:196:131: warning: ‘v8::Local<v8::Number> v8::Value::ToNumber() const’ is deprecated: Use maybe version [-Wdeprecated-declarations]
 8::String>("stopBits").ToLocalChecked()).ToLocalChecked()->ToNumber()->NumberVa
                                                                     ^
In file included from /home/zak/.node-gyp/6.9.5/include/node/node.h:42:0,
                 from ../../nan/nan.h:45,
                 from ../src/./serialport.h:7,
                 from ../src/serialport.cpp:1:
/home/zak/.node-gyp/6.9.5/include/node/v8.h:8166:15: note: declared here
 Local<Number> Value::ToNumber() const {
               ^
../src/serialport.cpp: In function ‘void EIO_AfterUpdate(uv_work_t*)’:
../src/serialport.cpp:236:31: warning: ‘v8::Local<v8::Int32> v8::Value::ToInt32() const’ is deprecated: Use maybe version [-Wdeprecated-declarations]
     int fd = argv[1]->ToInt32()->Int32Value();
                               ^
In file included from /home/zak/.node-gyp/6.9.5/include/node/node.h:42:0,
                 from ../../nan/nan.h:45,
                 from ../src/./serialport.h:7,
                 from ../src/serialport.cpp:1:
/home/zak/.node-gyp/6.9.5/include/node/v8.h:8202:14: note: declared here
 Local<Int32> Value::ToInt32() const {
              ^
../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Write(Nan::NAN_METHOD_ARGS_TYPE)’:
../src/serialport.cpp:256:29: warning: ‘v8::Local<v8::Int32> v8::Value::ToInt32() const’ is deprecated: Use maybe version [-Wdeprecated-declarations]
   int fd = info[0]->ToInt32()->Int32Value();
                             ^
In file included from /home/zak/.node-gyp/6.9.5/include/node/node.h:42:0,
                 from ../../nan/nan.h:45,
                 from ../src/./serialport.h:7,
                 from ../src/serialport.cpp:1:
/home/zak/.node-gyp/6.9.5/include/node/v8.h:8202:14: note: declared here
 Local<Int32> Value::ToInt32() const {
              ^
../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Close(Nan::NAN_METHOD_ARGS_TYPE)’:
../src/serialport.cpp:366:29: warning: ‘v8::Local<v8::Int32> v8::Value::ToInt32() const’ is deprecated: Use maybe version [-Wdeprecated-declarations]
   int fd = info[0]->ToInt32()->Int32Value();
                             ^
In file included from /home/zak/.node-gyp/6.9.5/include/node/node.h:42:0,
                 from ../../nan/nan.h:45,
                 from ../src/./serialport.h:7,
                 from ../src/serialport.cpp:1:
/home/zak/.node-gyp/6.9.5/include/node/v8.h:8202:14: note: declared here
 Local<Int32> Value::ToInt32() const {
              ^
../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Flush(Nan::NAN_METHOD_ARGS_TYPE)’:
../src/serialport.cpp:518:29: warning: ‘v8::Local<v8::Int32> v8::Value::ToInt32() const’ is deprecated: Use maybe version [-Wdeprecated-declarations]
   int fd = info[0]->ToInt32()->Int32Value();
                             ^
In file included from /home/zak/.node-gyp/6.9.5/include/node/node.h:42:0,
                 from ../../nan/nan.h:45,
                 from ../src/./serialport.h:7,
                 from ../src/serialport.cpp:1:
/home/zak/.node-gyp/6.9.5/include/node/v8.h:8202:14: note: declared here
 Local<Int32> Value::ToInt32() const {
              ^
../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Set(Nan::NAN_METHOD_ARGS_TYPE)’:
../src/serialport.cpp:566:29: warning: ‘v8::Local<v8::Int32> v8::Value::ToInt32() const’ is deprecated: Use maybe version [-Wdeprecated-declarations]
   int fd = info[0]->ToInt32()->Int32Value();
                             ^
In file included from /home/zak/.node-gyp/6.9.5/include/node/node.h:42:0,
                 from ../../nan/nan.h:45,
                 from ../src/./serialport.h:7,
                 from ../src/serialport.cpp:1:
/home/zak/.node-gyp/6.9.5/include/node/v8.h:8202:14: note: declared here
 Local<Int32> Value::ToInt32() const {
              ^
../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Drain(Nan::NAN_METHOD_ARGS_TYPE)’:
../src/serialport.cpp:626:29: warning: ‘v8::Local<v8::Int32> v8::Value::ToInt32() const’ is deprecated: Use maybe version [-Wdeprecated-declarations]
   int fd = info[0]->ToInt32()->Int32Value();
                             ^
In file included from /home/zak/.node-gyp/6.9.5/include/node/node.h:42:0,
                 from ../../nan/nan.h:45,
                 from ../src/./serialport.h:7,
                 from ../src/serialport.cpp:1:
/home/zak/.node-gyp/6.9.5/include/node/v8.h:8202:14: note: declared here
 Local<Int32> Value::ToInt32() const {
              ^
  CXX(target) Release/obj.target/serialport/src/serialport_unix.o
In file included from ../../nan/nan.h:194:0,
                 from ../src/./serialport.h:7,
                 from ../src/serialport_unix.cpp:1:
../../nan/nan_maybe_43_inl.h: In function ‘Nan::MaybeLocal<v8::Object> Nan::CloneElementAt(v8::Local<v8::Array>, uint32_t)’:
../../nan/nan_maybe_43_inl.h:220:58: warning: ‘v8::MaybeLocal<v8::Object> v8::Array::CloneElementAt(v8::Local<v8::Context>, uint32_t)’ is deprecated: Cloning is not supported. [-Wdeprecated-declarations]
   return array->CloneElementAt(GetCurrentContext(), index);
                                                          ^
In file included from /home/zak/.node-gyp/6.9.5/include/node/v8.h:25:0,
                 from /home/zak/.node-gyp/6.9.5/include/node/node.h:42,
                 from ../../nan/nan.h:45,
                 from ../src/./serialport.h:7,
                 from ../src/serialport_unix.cpp:1:
/home/zak/.node-gyp/6.9.5/include/node/v8.h:3032:36: note: declared here
                 MaybeLocal<Object> CloneElementAt(Local<Context> context,
                                    ^
/home/zak/.node-gyp/6.9.5/include/node/v8config.h:333:3: note: in definition of macro ‘V8_DEPRECATED’
   declarator __attribute__((deprecated(message)))
   ^
In file included from ../../nan/nan_new.h:189:0,
                 from ../../nan/nan.h:200,
                 from ../src/./serialport.h:7,
                 from ../src/serialport_unix.cpp:1:
../../nan/nan_implementation_12_inl.h: In static member function ‘static Nan::imp::FactoryBase<v8::BooleanObject>::return_t Nan::imp::Factory<v8::BooleanObject>::New(bool)’:
../../nan/nan_implementation_12_inl.h:40:38: warning: ‘static v8::Local<v8::Value> v8::BooleanObject::New(bool)’ is deprecated: Pass an isolate [-Wdeprecated-declarations]
   return v8::BooleanObject::New(value).As<v8::BooleanObject>();
                                      ^
In file included from /home/zak/.node-gyp/6.9.5/include/node/v8.h:25:0,
                 from /home/zak/.node-gyp/6.9.5/include/node/node.h:42,
                 from ../../nan/nan.h:45,
                 from ../src/./serialport.h:7,
                 from ../src/serialport_unix.cpp:1:
/home/zak/.node-gyp/6.9.5/include/node/v8.h:4007:56: note: declared here
   V8_DEPRECATED("Pass an isolate", static Local<Value> New(bool value));
                                                        ^
/home/zak/.node-gyp/6.9.5/include/node/v8config.h:333:3: note: in definition of macro ‘V8_DEPRECATED’
   declarator __attribute__((deprecated(message)))
   ^
In file included from ../src/./serialport.h:7:0,
                 from ../src/serialport_unix.cpp:1:
../../nan/nan.h: In function ‘bool Nan::SetAccessor(v8::Local<v8::Object>, v8::Local<v8::String>, Nan::GetterCallback, Nan::SetterCallback, v8::Local<v8::Value>, v8::AccessControl, v8::PropertyAttribute)’:
../../nan/nan.h:1961:16: warning: ‘bool v8::Object::SetAccessor(v8::Local<v8::Name>, v8::AccessorNameGetterCallback, v8::AccessorNameSetterCallback, v8::Local<v8::Value>, v8::AccessControl, v8::PropertyAttribute)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
     , attribute);
                ^
In file included from /home/zak/.node-gyp/6.9.5/include/node/v8.h:25:0,
                 from /home/zak/.node-gyp/6.9.5/include/node/node.h:42,
                 from ../../nan/nan.h:45,
                 from ../src/./serialport.h:7,
                 from ../src/serialport_unix.cpp:1:
/home/zak/.node-gyp/6.9.5/include/node/v8.h:2751:22: note: declared here
                 bool SetAccessor(Local<Name> name,
                      ^
/home/zak/.node-gyp/6.9.5/include/node/v8config.h:333:3: note: in definition of macro ‘V8_DEPRECATED’
   declarator __attribute__((deprecated(message)))
   ^
../src/serialport_unix.cpp: In function ‘OpenBatonPlatformOptions* ParsePlatformOptions(const v8::Local<v8::Object>&)’:
../src/serialport_unix.cpp:43:109: warning: ‘v8::Local<v8::Int32> v8::Value::ToInt32() const’ is deprecated: Use maybe version [-Wdeprecated-declarations]
 New<v8::String>("vmin").ToLocalChecked()).ToLocalChecked()->ToInt32()->Int32Val
                                                                     ^
In file included from /home/zak/.node-gyp/6.9.5/include/node/node.h:42:0,
                 from ../../nan/nan.h:45,
                 from ../src/./serialport.h:7,
                 from ../src/serialport_unix.cpp:1:
/home/zak/.node-gyp/6.9.5/include/node/v8.h:8202:14: note: declared here
 Local<Int32> Value::ToInt32() const {
              ^
../src/serialport_unix.cpp:44:111: warning: ‘v8::Local<v8::Int32> v8::Value::ToInt32() const’ is deprecated: Use maybe version [-Wdeprecated-declarations]
 ew<v8::String>("vtime").ToLocalChecked()).ToLocalChecked()->ToInt32()->Int32Val
                                                                     ^
In file included from /home/zak/.node-gyp/6.9.5/include/node/node.h:42:0,
                 from ../../nan/nan.h:45,
                 from ../src/./serialport.h:7,
                 from ../src/serialport_unix.cpp:1:
/home/zak/.node-gyp/6.9.5/include/node/v8.h:8202:14: note: declared here
 Local<Int32> Value::ToInt32() const {
              ^
  CXX(target) Release/obj.target/serialport/src/serialport_poller.o
In file included from ../../nan/nan.h:194:0,
                 from ../src/serialport_poller.cpp:5:
../../nan/nan_maybe_43_inl.h: In function ‘Nan::MaybeLocal<v8::Object> Nan::CloneElementAt(v8::Local<v8::Array>, uint32_t)’:
../../nan/nan_maybe_43_inl.h:220:58: warning: ‘v8::MaybeLocal<v8::Object> v8::Array::CloneElementAt(v8::Local<v8::Context>, uint32_t)’ is deprecated: Cloning is not supported. [-Wdeprecated-declarations]
   return array->CloneElementAt(GetCurrentContext(), index);
                                                          ^
In file included from /home/zak/.node-gyp/6.9.5/include/node/v8.h:25:0,
                 from /home/zak/.node-gyp/6.9.5/include/node/node.h:42,
                 from ../../nan/nan.h:45,
                 from ../src/serialport_poller.cpp:5:
/home/zak/.node-gyp/6.9.5/include/node/v8.h:3032:36: note: declared here
                 MaybeLocal<Object> CloneElementAt(Local<Context> context,
                                    ^
/home/zak/.node-gyp/6.9.5/include/node/v8config.h:333:3: note: in definition of macro ‘V8_DEPRECATED’
   declarator __attribute__((deprecated(message)))
   ^
In file included from ../../nan/nan_new.h:189:0,
                 from ../../nan/nan.h:200,
                 from ../src/serialport_poller.cpp:5:
../../nan/nan_implementation_12_inl.h: In static member function ‘static Nan::imp::FactoryBase<v8::BooleanObject>::return_t Nan::imp::Factory<v8::BooleanObject>::New(bool)’:
../../nan/nan_implementation_12_inl.h:40:38: warning: ‘static v8::Local<v8::Value> v8::BooleanObject::New(bool)’ is deprecated: Pass an isolate [-Wdeprecated-declarations]
   return v8::BooleanObject::New(value).As<v8::BooleanObject>();
                                      ^
In file included from /home/zak/.node-gyp/6.9.5/include/node/v8.h:25:0,
                 from /home/zak/.node-gyp/6.9.5/include/node/node.h:42,
                 from ../../nan/nan.h:45,
                 from ../src/serialport_poller.cpp:5:
/home/zak/.node-gyp/6.9.5/include/node/v8.h:4007:56: note: declared here
   V8_DEPRECATED("Pass an isolate", static Local<Value> New(bool value));
                                                        ^
/home/zak/.node-gyp/6.9.5/include/node/v8config.h:333:3: note: in definition of macro ‘V8_DEPRECATED’
   declarator __attribute__((deprecated(message)))
   ^
In file included from ../src/serialport_poller.cpp:5:0:
../../nan/nan.h: In function ‘bool Nan::SetAccessor(v8::Local<v8::Object>, v8::Local<v8::String>, Nan::GetterCallback, Nan::SetterCallback, v8::Local<v8::Value>, v8::AccessControl, v8::PropertyAttribute)’:
../../nan/nan.h:1961:16: warning: ‘bool v8::Object::SetAccessor(v8::Local<v8::Name>, v8::AccessorNameGetterCallback, v8::AccessorNameSetterCallback, v8::Local<v8::Value>, v8::AccessControl, v8::PropertyAttribute)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
     , attribute);
                ^
In file included from /home/zak/.node-gyp/6.9.5/include/node/v8.h:25:0,
                 from /home/zak/.node-gyp/6.9.5/include/node/node.h:42,
                 from ../../nan/nan.h:45,
                 from ../src/serialport_poller.cpp:5:
/home/zak/.node-gyp/6.9.5/include/node/v8.h:2751:22: note: declared here
                 bool SetAccessor(Local<Name> name,
                      ^
/home/zak/.node-gyp/6.9.5/include/node/v8config.h:333:3: note: in definition of macro ‘V8_DEPRECATED’
   declarator __attribute__((deprecated(message)))
   ^
../src/serialport_poller.cpp: In static member function ‘static Nan::NAN_METHOD_RETURN_TYPE SerialportPoller::New(Nan::NAN_METHOD_ARGS_TYPE)’:
../src/serialport_poller.cpp:88:31: warning: ‘v8::Local<v8::Int32> v8::Value::ToInt32() const’ is deprecated: Use maybe version [-Wdeprecated-declarations]
   obj->fd_ = info[0]->ToInt32()->Int32Value();
                               ^
In file included from /home/zak/.node-gyp/6.9.5/include/node/node.h:42:0,
                 from ../../nan/nan.h:45,
                 from ../src/serialport_poller.cpp:5:
/home/zak/.node-gyp/6.9.5/include/node/v8.h:8202:14: note: declared here
 Local<Int32> Value::ToInt32() const {
              ^
  SOLINK_MODULE(target) Release/obj.target/serialport.node
  COPY Release/serialport.node
make: Leaving directory '/home/zak/Documents/Development/GitHub/firmata-client-examples/firmata-js/network/node_modules/serialport/build'
firmata-js-network-examples@0.1.0 /home/zak/Documents/Development/GitHub/firmata-client-examples/firmata-js/network
├─┬ etherport@0.1.4 
│ └── es6-shim@0.25.3 
├─┬ etherport-client@0.1.2 
│ └─┬ debug@2.6.1 
│   └── ms@0.7.2 
└─┬ firmata@0.8.4 
  ├── browser-serialport@2.1.0 
  ├── es6-shim@0.33.13 
  └─┬ serialport@2.1.2 
    ├── bindings@1.2.1 
    ├── bluebird@3.4.7 
    ├─┬ debug@2.2.0 
    │ └── ms@0.7.1 
    ├── nan@2.2.1 
    ├─┬ node-pre-gyp@0.6.26 
    │ ├─┬ mkdirp@0.5.1 
    │ │ └── minimist@0.0.8 
    │ ├─┬ nopt@3.0.6 
    │ │ └── abbrev@1.0.7 
    │ ├─┬ npmlog@2.0.3 
    │ │ ├── ansi@0.3.1 
    │ │ ├─┬ are-we-there-yet@1.1.2 
    │ │ │ ├── delegates@1.0.0 
    │ │ │ └─┬ readable-stream@2.1.0 
    │ │ │   ├─┬ inline-process-browser@2.0.1 
    │ │ │   │ ├─┬ falafel@1.2.0 
    │ │ │   │ │ ├── acorn@1.2.2 
    │ │ │   │ │ ├── foreach@2.0.5 
    │ │ │   │ │ ├── isarray@0.0.1 
    │ │ │   │ │ └── object-keys@1.0.9 
    │ │ │   │ └─┬ through2@0.6.5 
    │ │ │   │   └─┬ readable-stream@1.0.34 
    │ │ │   │     └── isarray@0.0.1 
    │ │ │   └─┬ unreachable-branch-transform@0.5.1 
    │ │ │     ├── esmangle-evaluator@1.0.0 
    │ │ │     └─┬ recast@0.11.5 
    │ │ │       ├── ast-types@0.8.16 
    │ │ │       ├── esprima@2.7.2 
    │ │ │       ├── private@0.1.6 
    │ │ │       └── source-map@0.5.4 
    │ │ └─┬ gauge@1.2.7 
    │ │   ├── has-unicode@2.0.0 
    │ │   ├─┬ lodash.pad@4.3.0 
    │ │   │ ├── lodash._baseslice@4.0.0 
    │ │   │ └── lodash.tostring@4.1.2 
    │ │   ├── lodash.padend@4.4.0 
    │ │   └── lodash.padstart@4.4.0 
    │ ├─┬ rc@1.1.6 
    │ │ ├── deep-extend@0.4.1 
    │ │ ├── ini@1.3.4 
    │ │ ├── minimist@1.2.0 
    │ │ └── strip-json-comments@1.0.4 
    │ ├─┬ request@2.72.0 
    │ │ ├── aws-sign2@0.6.0 
    │ │ ├─┬ aws4@1.3.2 
    │ │ │ └─┬ lru-cache@4.0.1 
    │ │ │   ├── pseudomap@1.0.2 
    │ │ │   └── yallist@2.0.0 
    │ │ ├─┬ bl@1.1.2 
    │ │ │ └── readable-stream@2.0.6 
    │ │ ├── caseless@0.11.0 
    │ │ ├─┬ combined-stream@1.0.5 
    │ │ │ └── delayed-stream@1.0.0 
    │ │ ├── extend@3.0.0 
    │ │ ├── forever-agent@0.6.1 
    │ │ ├─┬ form-data@1.0.0-rc4 
    │ │ │ └── async@1.5.2 
    │ │ ├─┬ har-validator@2.0.6 
    │ │ │ ├─┬ chalk@1.1.3 
    │ │ │ │ ├── ansi-styles@2.2.1 
    │ │ │ │ ├── escape-string-regexp@1.0.5 
    │ │ │ │ ├─┬ has-ansi@2.0.0 
    │ │ │ │ │ └── ansi-regex@2.0.0 
    │ │ │ │ ├── strip-ansi@3.0.1 
    │ │ │ │ └── supports-color@2.0.0 
    │ │ │ ├─┬ is-my-json-valid@2.13.1 
    │ │ │ │ ├── generate-function@2.0.0 
    │ │ │ │ ├─┬ generate-object-property@1.2.0 
    │ │ │ │ │ └── is-property@1.0.2 
    │ │ │ │ ├── jsonpointer@2.0.0 
    │ │ │ │ └── xtend@4.0.1 
    │ │ │ └─┬ pinkie-promise@2.0.1 
    │ │ │   └── pinkie@2.0.4 
    │ │ ├─┬ hawk@3.1.3 
    │ │ │ ├── boom@2.10.1 
    │ │ │ ├── cryptiles@2.0.5 
    │ │ │ ├── hoek@2.16.3 
    │ │ │ └── sntp@1.0.9 
    │ │ ├─┬ http-signature@1.1.1 
    │ │ │ ├── assert-plus@0.2.0 
    │ │ │ ├─┬ jsprim@1.2.2 
    │ │ │ │ ├── extsprintf@1.0.2 
    │ │ │ │ ├── json-schema@0.2.2 
    │ │ │ │ └── verror@1.3.6 
    │ │ │ └─┬ sshpk@1.8.1 
    │ │ │   ├── asn1@0.2.3 
    │ │ │   ├── assert-plus@1.0.0 
    │ │ │   ├─┬ dashdash@1.13.1 
    │ │ │   │ └── assert-plus@1.0.0 
    │ │ │   ├─┬ ecc-jsbn@0.0.1 
    │ │ │   │ └── jsbn@0.0.0  (git+https://github.com/rynomad/jsbn.git#bb522b0124f75424f89d49446c40a87111942c7b)
    │ │ │   ├─┬ getpass@0.1.5 
    │ │ │   │ └── assert-plus@1.0.0 
    │ │ │   ├── jodid25519@1.0.2 
    │ │ │   ├── jsbn@0.1.0 
    │ │ │   └── tweetnacl@0.13.3 
    │ │ ├── is-typedarray@1.0.0 
    │ │ ├── isstream@0.1.2 
    │ │ ├── json-stringify-safe@5.0.1 
    │ │ ├─┬ mime-types@2.1.10 
    │ │ │ └── mime-db@1.22.0 
    │ │ ├── node-uuid@1.4.7 
    │ │ ├── oauth-sign@0.8.1 
    │ │ ├── qs@6.1.0 
    │ │ ├── stringstream@0.0.5 
    │ │ ├── tough-cookie@2.2.2 
    │ │ └── tunnel-agent@0.4.2 
    │ ├─┬ rimraf@2.5.2 
    │ │ └─┬ glob@7.0.3 
    │ │   ├── inflight@1.0.4 
    │ │   ├─┬ minimatch@3.0.0 
    │ │   │ └─┬ brace-expansion@1.1.3 
    │ │   │   ├── balanced-match@0.3.0 
    │ │   │   └── concat-map@0.0.1 
    │ │   └── path-is-absolute@1.0.0 
    │ ├── semver@5.1.0 
    │ ├─┬ tar@2.2.1 
    │ │ ├── block-stream@0.0.8 
    │ │ ├─┬ fstream@1.0.8 
    │ │ │ └── graceful-fs@4.1.3 
    │ │ └── inherits@2.0.1 
    │ └─┬ tar-pack@3.1.3 
    │   ├── fstream-ignore@1.0.3 
    │   ├─┬ once@1.3.3 
    │   │ └── wrappy@1.0.1 
    │   ├─┬ readable-stream@2.0.6 
    │   │ ├── core-util-is@1.0.2 
    │   │ ├── isarray@1.0.0 
    │   │ ├── process-nextick-args@1.0.6 
    │   │ ├── string_decoder@0.10.31 
    │   │ └── util-deprecate@1.0.2 
    │   └── uid-number@0.0.6 
    ├─┬ node-pre-gyp-github@1.1.2 
    │ ├─┬ commander@2.9.0 
    │ │ └── graceful-readlink@1.0.1 
    │ ├── github@0.2.4 
    │ └── mime@1.3.4 
    ├─┬ object.assign@4.0.4 
    │ ├─┬ define-properties@1.1.2 
    │ │ └── foreach@2.0.5 
    │ ├── function-bind@1.1.0 
    │ └── object-keys@1.0.11 
    ├─┬ optimist@0.6.1 
    │ ├── minimist@0.0.10 
    │ └── wordwrap@0.0.3 
    └── sf@0.1.7 

@zfields
Copy link
Contributor Author

zfields commented Feb 12, 2017

The pin you chose, number 8, is not the built-in LED for the Adafruit Feather HUZZAH. Once I changed it to 0, everything worked as expected.

All the errors and warning messages were coming from Boron release of Node. Once, I changed back to Argon everything seems to work without issue.

@zfields
Copy link
Contributor Author

zfields commented Feb 12, 2017

In conclusion, I am unable to reproduce the error you originally encountered when testing my change set. ;-)

@soundanalogous I know I just compiler bombed this thread, so I just wanted to pull your eye down here to show you I got everything working in both the core and master branches.

@soundanalogous
Copy link
Member

Pulled your latest and tested with hardware again and had no issues this time. Merging...

@soundanalogous soundanalogous merged commit 2bd457a into firmata:master Feb 22, 2017
@zfields zfields deleted the core branch February 24, 2017 04:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants