We use the debug package and log under the
serialport namespace. Each package has it's own scope
serialport/streamfor all stream released logging
serialport/binding*for all binding related logging
You can enable logging through environment variables. Check the debug docs for info.
Linux and OSX
DEBUG=serialport/stream node myapp.js
DEBUG=serialport* node myapp.js
DEBUG=* node myapp.js
Windows Command Prompts
On Windows the environment variable is set using the
set DEBUG=serialport* & node myapp.js
PowerShell (VS Code default)
PowerShell uses different syntax to set environment variables.
$env:DEBUG = "serialport*"
$env:DEBUG='serialport*'; node app.js
You can enable core dumps on osx with;
ulimit -c unlimited for core dumps
You can "console.log" from c++ with;
fprintf(stdout, "Hellow World num=%d str=%s\n", 4, "hi");
You can make use of the
serialport-repl command with;
DEBUG=serialport* serialport-repl # to auto detect an arduino
DEBUG=serialport* serialport-repl /path/name # to connect to a specific port
and it will load a serialport object with debugging turned on.
Multiple Ports Slowdown
When working with multiple Serial Ports you might see slowdowns in reading and writing. This is caused by thread pool exhaustion in NodeJS. You can set the
UV_THREADPOOL_SIZE environment variable to be set to 1 + the number of ports you wish to open at a time. Defaults to
4 which supports 3 open ports. This might increase your performance.