Debugging
Debugging Output
We use the debug package and log under the serialport namespace. Each package has it’s own scope
serialport/streamfor all stream released loggingserialport/binding*for all binding related loggingserialport*for everything
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
CMD
On Windows the environment variable is set using the set command.
set DEBUG=serialport*
Example:
set DEBUG=serialport* & node myapp.js
PowerShell (VS Code default)
PowerShell uses different syntax to set environment variables.
$env:DEBUG = "serialport*"
Example:
$env:DEBUG='serialport*'; node app.js
Core dumps
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");
Repl
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.