Nodejs Error "SerialPort is not a function...." with node-serialport-omega2



  • Re: Serial port communication using Node.js

    @Steven-de-Salas Hello I am having some trouble getting the node-serialport-omega2 module to function.

    To isolate the problem I have factory reset my Omega and only installed Nodejs and NPM.

    I downloaded the node_modules from the above link

    https://github.com/sdesalas/robotics/raw/master/omega2/node-serialport-v3.0.0.tar.gz
    

    and SCP'd those files to the Omega.

    Then checked it with npm ls, which reports several missing dependencies. I installed all depenencies until npm ls reports no errors ( Except for a version conflict with debug, however the error states that the serialport module will still load. )

    I have a very minimal script.

    var SerialPort = require('serialport');
    var port = new SerialPort('/dev/ttyS0',
                    {
                            parser: SerialPort.parsers.readline('\n'),
                            baudRate: 115200
                    });
    

    when I run the script I get the following error.

    var port = new SerialPort('/dev/ttyS0',
               ^
    
    TypeError: SerialPort is not a function
    

    If it will be of interest or help I can post my full npm ls here.

    Thank you in advance for your help.



  • Hi @Jeff-Seese,

    Please note that the SerialPort API has changed between versions.

    The one on node-serialport-omega2 is version 3. Which is why it might get a bit confusing if you look at the latest docs from the original serialport repo instead of the omega2 fork of the same.

    Please refer to the docs on the omega2 fork. They should work as expected.

    var SerialPort = require('serialport'); // original fork (v5)
    var port = new SerialPort('COM1');
    
    var SerialPort = require('serialport').SerialPort; // omega2 port (at v3)
    var port = new SerialPort('COM1'); 
    

Log in to reply
 

Looks like your connection to Onion Community was lost, please wait while we try to reconnect.