-
• #2
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 clickadvanced 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.
-
• #3
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
-
• #4
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. -
• #5
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?
-
• #6
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?
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 ?