Where to find a previous version of firmware?

Posted on
  • I need to revert back to a previous version of firmware.
    By downloading the latest (v67) broke my code and I cannot even
    try to decipher what the errors are on the console.
    I need v66 version download ?

  • http://www.espruino.com/binaries

    Just find espruino_1v66_espruino_1r3.bin, left click and copy link. Go into the Web IDE's 'flasher' page and then paste that into the text box, then click advanced flash firmware.

    Can you paste up what the error messages are? If it is something that's broken in this version I'd like to try and fix it as soon as I can.

  • 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

  • Ahh. So this isn't a bug in Espruino as far as I know. (Not sure what is causing issue 1 though)

    What has happened is onInit is only called on startup - not when you first upload your code. You've set a timeout to occur that uses i2c, and it happens before i2c is initialised.

    In 1v67 the i2c error causes an exception, which causes the timeout to be removed.

    To fix it simply add the line onInit (); to the end of your code.

  • To fix it simply add the line onInit (); to the end of your code.

    Looking at the last line of code (above) it is already installed?

  • Sorry - was checking on my phone and didn't see that.

    Just looked and it seems you are initialising the lcd before you initialise the i2c. Try moving the i2c.setup line above the hd44780 line.

    It probably explains why you had to copy all the other lines outside of the onInit function too?

  • Post a reply
    • Bold
    • Italics
    • Link
    • Image
    • List
    • Quote
    • code
    • Preview
About

Where to find a previous version of firmware?

Posted by Avatar for user7114 @user7114

Actions