• Issue #1 @ v67 -- console respond to reset() does not always return with a >
    sometimes it hangs mid response feedback. In v66 the response is consistent.

    Issue #2 Unknown errors in v67 but in v66 all responses/feedbacks/warnings OK

    Test code in pasted first then v66 responses and then v67 responses.
    Note: I still had to duplicate the I2C setup away from the onInit() to make the code work?

    /*
    DS18B20 Data Logger
    Rev. 1.0b
    7/17/14
    Espruino: v 1.3: firmware: v 66 WEB-IDE: v 45
    Windows 8.1 / Chrome
    Hardware: I2C 4x20 LCD, DS18B20, I2C RTC DS3231
    Bugs: Memory usage leak fixed in v67
    
    Program description:
    Uses 1-wire DS18B20 for the temperature sensor.
    The DS18B20 temperature is logged along with time/date to SD and LCD.
    1 1-wire and 1 I2C bus is used.
    
    Program credits:
    SD data logger code snippet was used from an unknown Espruino forum member.
    
    Note: 3.3k pull-ups for I2C LCD/RTC.
    */
    
    
    var ow,sensor,lcd,rtc;
    function onInit(){
    ow = new OneWire(A1);
    sensor = require("DS18B20").connect(ow);
    sensor.setRes(12); 
    digitalWrite([LED1,LED2,LED3],0b100);
    lcd = require("HD44780").connectI2C(I2C1);
    I2C1.setup({scl:B8,sda:B9});
    lcd.clear(); 
    setTimeout("digitalWrite([LED1,LED2,LED3­],0b010);", 1000);
    setTimeout("digitalWrite([LED1,LED2,LED3­],0b001);", 2000);
    setTimeout("digitalWrite([LED1,LED2,LED3­],0);", 3000);
    // Delay start-up for diagnostics (above) and for LCD clear
    I2C1.setup({scl:B8, sda:B9});
    rtc = require("DS3231").connect(I2C1);
    // stop noise on A10 ?
    pinMode(A10,'input_pullup');  
    }
    
    
    var fs = require('fs');
    var testName    = "TEST152Q.LOG";
    var testDetails = "Data Logging DS18B20 to SD";
    var logInterval = 5000;
    var logEntry    = 0;
    
    
    
    /* Set Dow Time/date - comment out lines out below after first use!
    Usage:
    rtc.setDow("day of the week") Monday,Tuesday ...
    rtc.setDate(date,month,year);1-31,1-12,0­-99
    rtc.setTime(hours,minutes); Military Time 
    Set time exactly on minute roll-over (+ 1  min)
    */
    
    //rtc.setDow("Thursday");
    //rtc.setDate(26,6,14);
    //rtc.setTime(19,25); 
    
    
    ow = new OneWire(A1);
    sensor = require("DS18B20").connect(ow);
    
    lcd = require("HD44780").connectI2C(I2C1);
    I2C1.setup({scl:B8,sda:B9});
    
    I2C1.setup({scl:B8, sda:B9});
    rtc = require("DS3231").connect(I2C1);
    
    
    // Initialise log file here with header information
    //console.log(testDetails); <---- do not leave in without USB (will halt)
    fs.appendFileSync(testName, testDetails);
    
    // Function to log some data every so often
    setInterval(function(){
        // Indicate each time function is executed 
        digitalPulse(LED1, 1, 100);
    // Log some data.
        logEntry++;
     var logString = logEntry + " " + (sensor.getTemp(true)* 1.8 + 32 + " F. ") +
        (rtc.readDateTime()) + " "  + "\r\n";
      
        //console.log(logString); <---- do not leave in without USB (will halt)
        //console.log(process.memory().usage); <--- do not leave in without USB (will halt)
        fs.appendFileSync(testName, logString);
        lcd.setCursor(0,0);
        lcd.print("DS18B20 Logging ..."); 
        lcd.setCursor(0,1);
        // lcd needs a string
        lcd.print("TempF: " + new String(sensor.getTemp(true)*1.8 + 32));
        lcd.setCursor(0,2);
        lcd.print(rtc.readDateTime());
        lcd.setCursor(0,3);
        lcd.print(new String(process.memory().usage));
        lcd.print(" ");
        lcd.print(new String(Serial1.available()));
        
    }, logInterval);
    
    onInit();
    
    


    reset();
    =undefined


    | |_ ___ ___ _ ||___ ___
    | |_ -| . | _| | | | | . |
    |
    || || |_|||_|_|

          |_| http://espruino.com
    

    1v66 Copyright 2014 G.Williams
    echo(0);
    WARNING: I2C device not responding
    WARNING: I2C device not responding
    WARNING: I2C device not responding
    WARNING: I2C device not responding
    WARNING: I2C device not responding
    WARNING: I2C device not responding
    =undefined
    save()
    =undefined
    Erasing Flash.....................
    Programming 36000 Bytes...................................­....
    Checking...
    Done!
    Running onInit()...



    reset();
    =undefined


    | |_ ___ ___ _ ||___ ___
    | |_ -| . | _| | | | | . |
    |
    || || |_|||_|_|

          |_| http://espruino.com
    

    1v67 Copyright 2014 G.Williams
    echo(0);
    Uncaught Error: I2C device not responding
    at line 2 col 7
    4,e,e])}

       ^
    

    in function "a" called from line 1 col 8
    {a(51,1);a(50,1);a(40,1);a(12,1);a(6,1);­a(1,1);return{write:...

        ^
    

    in function "f" called from line 2 col 9
    4,e,e])})}

         ^
    

    in function "connectI2C" called fromuline 1 col 41
    lcd = require("HD44780").connectI2C(I2C1);

                                         ^
    

    =undefined

About

Avatar for user7114 @user7114 started