-
• #2
Fantastic Gordon,
Congratulation. You also patched my XBee module to the new serial handling.
Will test it and post some other improvements soon.Any progress on auto detect "bigram" ?
Sacha
-
• #3
No problem. I've tried to update all the modules and docs to go with the changes... Let me know if I missed something!
No progress on that yet. Well, a little, but I still need to actually make the ram resize...
-
• #4
Is the 1v65 WIZnet bin posted anywhere?
I'm using @DrAzzy build from the 32-bit Int Switch thread, but I'm unsure if that's the same as the official 1v65. http://forum.espruino.com/conversations/1555/
Also - will the WIZnet module always require a separate build, or can this be rolled in at some point?
-
• #5
Hi. It seems there's been a bit of a mixup as the latest builds in http://www.espruino.com/binaries/git should have wiznet, but they don't.
I've also just added them to http://www.espruino.com/binaries (they should have been there already!), and I'll make sure that they continue to be put up there.
At the moment, rolling support in looks unlikely. While I made sure that the code would support it, it turns out that there are a lot of conflicting function names, and the compiled binary won't work.
While that could be fixed, it's starting to get difficult to get all the required program code into the available flash, so I'm not sure I'll be able to justify using up such a large amount of it with support for different modules.
Probably the easiest fix for now would be to make it easier to choose different builds to flash from within the Web IDE.
-
• #6
Just tested new command spi.write for ILI9341 erasing the screen.
old version took 3.5 secs
new version takes 1.2 secs only
In a mixed session with text, bars, etc. etc.
old version took 13.5 secs
new version takes 9.5 secs onlyPowerful new command, great job.
-
• #8
The version I posted is not the same as official - it's based on github as of 6/21, so it's missing anything from after that. Also, it uses all 64k of ram (which the espruino boards seem to have despite the specs saying 48) for 2600 jsvars, and also makes use of the full 512k of flash (so you can save() )
On the topic of fitting Wiznet+CC3000 modules - I was kinda bummed when i discovered that the function names fight with eachother (I tried the naive approach of just enabling both in the makefile). The Espruino boards all seem to have 512k of flash - so they should all be able to fit a binary with both wiznet and cc3000, right?
-
• #9
Great job Gordon! Thanks a lot.
-
• #10
@DrAzzy - I don't want to actually take advantage of the full 512kB because it's not guaranteed that the board will have it at all. This batch may all have it (I have no guarantee), but it's extremely likely that the next batch of boards won't :(
But yes, I refactored all the code to work with both modules at the same time - so I was pretty fed up to find out that it wouldn't work! Someone could refactor all the duplicate names (cc3k_send / wiznet_send / etc) and it might spring into life though.
@JumJum: the changes were done for that very reason! I'm considering also adding an option for a
DC
pin, which would be set with the 9th bit of the data that was sent. That should massively speed up those displays (as well as simplifying the code).
This is another really big release with a whole range of changes!
Some of the changes are:
Changing from int64 to int32
This may seem like a step back, but it makes Espruino much more JS compatible. Quite a lot of code relies on numbers overflowing after 32 bits, and it will now work correctly. It also frees up some memory, speeds up execution, and paves the way for some better memory saving features in the future.
Improved Serial port handling
I've had to break backwards compatibility for this, but it's worth it!
Serial.onData
is nowSerial.on('data', ...)
which can return strings of data rather than just single characters. It means that Espruino can handle Serial data at much higher data rates than possible before, makes it more compatible with Node.js, and it also means...Piping data from Serial/HTTP
Both Serial and HTTP now support the use of
.available()
and.read(nBytes)
if there is noon('data', ...)
handler present. This means that you can also useSerial.pipe(...)
to pipe them directly to a file or even an HTTP socket!Multiple arguments to SPI/I2C and Serial
This means you can be much more efficient with code - you can write
I2C.write(addr, 1,2,myarray)
and 1,2, and myarray will be output together. You can also write things likeSPI.write(1,2,{data: [3,4], count:5})
which will output1,2,3,4,3,4,3,4,3,4,3,4
- this is extremely handy for things such as LCD drivers.Built-in Date class
There's now a Date module built into Espruino - which includes both parsing of dates, as well as creating string from dates. This means that you can easily read the current time and date right out of HTTP server responses, and can then use it to adjust Espruino's internal clock.
Exceptions!
While this needs a little more testing, there is now exception support, and most of the functions you'll call now return Exceptions. This means you can now 'catch' most errors that your code might generate, and can handle them yourself.
Increased Event Buffer size
The event buffer now stores 128 events instead of 64 - this means that you can now store up to 128 edge changes from
setWatch
, even if your code hasn't yet finished processing the first one.Array.reverse
This one has been a long time coming, but it's here now. While not in ES5, ES6 has
reverse
support for ArrayBuffers, so it's been added to Espruino too. This will be really handy for all kinds of code that handle large blocks of data.New Tutorials/modules/examples
There's:
and hopefully there will be a few more coming as well!
... and many more fixes and improvements!
Check out the ChangeLog. Espruino keeps getting more capable by the day!
As always, there will be a small yellow triangle at the top right of the Web IDE when you connect to an Espruino board with an older version of the software on it. Click it, and you'll be walked through the process of updating your firmware...