3 Replies Latest reply on Oct 30, 2015 5:27 PM by VladWill

    Intel Edison node.js sample code not working with grove 3-axis digital I2C accelerometer

    VladWill

      This is the sample code from Intel for running an accelerometer (Grove digital):

       

      // Load accelerometer

      var adxl345 = require('jsupm_adxl345');

       

      // Instantiate on I2C bus

      var adxl = new adxl345.Adxl345(0);

       

      setInterval(function()

      {

          adxl.update(); // Update the data

          var raw = adxl.getRawValues(); // Read raw sensor data

          var force = adxl.getAcceleration(); // Read acceleration force (g)

          var rawvalues = raw.getitem(0) + " " + raw.getitem(1) + " " + raw.getitem(2);

          console.log("Raw Values: " + rawvalues);

          console.log("ForceX: " + force.getitem(0).toFixed(2) + " g");

          console.log("ForceY: " + force.getitem(1).toFixed(2) + " g");

          console.log("ForceZ: " + force.getitem(2).toFixed(2) + " g");

      }, 1000);


      It builds and uploads to the Edison Arduino board, but when running it throws this error:

                                                                                                                                                                                             

      ERROR: /home/root/.node_app_slot/main.js:10                                                                                                                                            

      ERROR: var adxl = new adxl345.Adxl345(0);                                                                                                                                              

         ERROR:         ^                                                                                                                                                                    

      ERROR: Error: UPM Runtime Error: Adxl345: i2c.write() control register failed                                                                                                          

          at Object.<anonymous> (/home/root/.node_app_slot/main.js:10:12)                                                                                                                    

          at Module._compile (module.js:456:26)                                                                                                                                              

          at Object.Module._extensions..js (module.js:474:10)                                                                                                                                

          at Module.load (module.js:356:32)                                                                                                                                                  

          at Function.Module._load (module.js:312:12)                                                                                                                                        

          at Function.Module.runMain (module.js:497:10)                                                                                                                                      

          at startup (node.js:119:16)                                                                                                                                                        

          at node.js:935:3

       

      Any thoughts as to what's wrong there? The accelerometer is connected to an I2C port. Another sensor (temperature) is working ok.