-
B- Now, just uploaded the very same source after the success posted above, this time the borad is not recognised:
_____ _ | __|___ ___ ___ _ _|_|___ ___ | __|_ -| . | _| | | | | . | |_____|___| _|_| |___|_|_|_|___| |_| http://espruino.com 1v95 Copyright 2017 G.Williams >Uncaught Error: Function "compiledC" not found! at line 1 col 11 var c = E.compiledC(` ^ Uncaught Error: Field or method "sum" does not already exist, and can't create it on undefined at line 1 col 8 print(c.sum(str.length, E.getAddressOf(str,true))); ^ =undefined >process.env ={ "VERSION": "1v95", "BUILD_DATE": "Dec 15 2017", "BUILD_TIME": "17:07:34", "GIT_COMMIT": "7dbffcf5da09570bd95714b2386a12ab25ab1d50", "BOARD": "ESPRUINOBOARD", "CHIP": "STM32F103RCT6", "CHIP_FAMILY": "STM32F1", "FLASH": 262144, "RAM": 49152, "SERIAL": "34ffdb05-42573838-24631743", "CONSOLE": "USB", "EXPORTS": { "jsvLock": 131929, "jsvLockAgainSafe": 131915, "jsvUnLock": 131889, "jsvSkipName": 19429, "jsvMathsOp": 24927, "jsvMathsOpSkipNames": 24977, "jsvNewFromFloat": 132269, "jsvNewFromInteger": 132305, "jsvNewFromString": 133473, "jsvNewFromBool": 132289, "jsvGetFloat": 19713, "jsvGetInteger": 17081, "jsvGetBool": 20437, "jspeiFindInScopes": 31009, "jspReplaceWith": 31069, "jspeFunctionCall": 35349, "jspGetNamedVariable": 188129, "jspGetNamedField": 189697, "jspGetVarNamedField": 189293, "jsvNewWithFlags": 132085 } } >
---> "\u0010console.log(\"<\",\"<<\",JSON.stringify(process.env),\">>\",\">\")\n" >>> Sent Got "< << {\"VERSION\":\"1v95\",\"BUILD_DATE\":\"Dec 15 2017\",\"BUILD_TIME\":\"17:07:34\",\"GIT_COMMIT\":\"7dbffcf5da09570bd95714b2386a12ab25ab1d50\",\"BOARD\":\"ESPRUINOBOARD\",\"CHIP\":\"STM32F103RCT6\",\"CHIP_FAMILY\":\"STM32F1\",\"FLASH\":262144,\"RAM\":49152,\"SERIAL\":\"34ffdb05-42573838-24631743\",\"CONSOLE\":\"USB\",\"EXPORTS\":{\"jsvLock\":131929,\"jsvLockAgainSafe\":131915,\"jsvUnLock\":131889,\"jsvSkipName\":19429,\"jsvMathsOp\":24927,\"jsvMathsOpSkipNames\":24977,\"jsvNewFromFloat\":132269,\"jsvNewFromInteger\":132305,\"jsvNewFromString\":133473,\"jsvNewFromBool\":132289,\"jsvGetFloat\":19713,\"jsvGetInteger\":17081,\"jsvGetBool\":20437,\"jspeiFindInScopes\":31009,\"jspReplaceWith\":31069,\"jspeFunctionCall\":35349,\"jspGetNamedVariable\":188129,\"jspGetNamedField\":189697,\"jspGetVarNamedField\":189293,\"jsvNewWithFlags\":132085}} >> >\r\n" Loading http://www.espruino.com/json/ESPRUINOBOARD.json Searching for json/ESPRUINOBOARD.json json/ESPRUINOBOARD.json found in offline archive Board JSON loaded Firmware >1.43 supports faster writes over USB ForceThrottle option is set - set Slow Write = true FIRMWARE: Current 1v95, Available 1v95 Device found (connectionId=2) [success] Connected to port /dev/ttyACM0 >>> Connected to port /dev/ttyACM0 WARNING: [notify_warn] Errors while minifying - sending unminified code. Found a prompt... great! >>> Sending... ---> "\u0010reset();\n\u0010setTime(1518688159.377);\n\u0010var c = (function(){\u001b\n var bin=atob(\"ChgAIJFCA9AR+AE7GET553BHAAA=\");\u001b\n return {\u001b\n sum:E.nativeCall(1, \"int(int, int)\", bin),\u001b\n };\u001b\n})();\n\u0010var str = E.toString(\"\\1\\2\\3\\4\\5\\6\");\n\u0010print(c.sum(str.length, E.getAddressOf(str,true)));\n\n" Splitting at "reset();\n", delay 250 ERROR: [notify_error] Input_0:8: ERROR - This style of octal literal is not supported in strict mode. ERROR: [notify_error] var str = E.toString("\1\2\3\4\5\6"); // create a flat string ERROR: [notify_error] ^ >>> Sent
-
Better logs for this problem:
A- Success if disconnecting WebIde before uploading, thus it reconnects itself. I just choose the serial link for the board.
Connected > > _____ _ | __|___ ___ ___ _ _|_|___ ___ | __|_ -| . | _| | | | | . | |_____|___| _|_| |___|_|_|_|___| |_| http://espruino.com 1v95 Copyright 2017 G.Williams >21 =undefined >
We have chrome.serial - not using 'serialport' module serial_audio: Audio Sample rate : 44100 serial_audio: Audio Serial Baud 9600 Bit time 4.59375 GET chrome.storage.sync = {"AUTO_SAVE_CODE":true,"BAUD_RATE":9600,"BLOCKLY_EXTENSIONS":"|bluetooth|robot|","BLOCKLY_LANGUAGE":"en","BLOCKLY_TO_JS":false,"BOARD_JSON_URL":"http://www.espruino.com/json","CODE":" var c = E.compiledC(`\n // int sum(int, int)\n int sum(int len, unsigned char *data){\n int s = 0;\n while (len--)\n s += *(data++);\n return s;\n }\n `);\n var str = E.toString(\"\\1\\2\\3\\4\\5\\6\"); // create a flat string\n print(c.sum(str.length, E.getAddressOf(str,true)));","COMPILATION":true,"COMPILATION_URL":"http://www.espruino.com:32766","DISABLE_CODE_HINTS":false,"ENABLE_Testing":true,"ENV_ON_CONNECT":true,"FONT_SIZE":12,"FREQUENCY_Testing":1000,"MINIFICATION_DeadCode":true,"MINIFICATION_LEVEL":"SIMPLE_OPTIMIZATIONS","MINIFICATION_Literal":true,"MINIFICATION_Mangle":true,"MINIFICATION_Unreachable":true,"MINIFICATION_Unused":true,"MODULE_AS_FUNCTION":false,"MODULE_EXTENSIONS":".min.js|.js","MODULE_MINIFICATION_LEVEL":"SIMPLE_OPTIMIZATIONS","MODULE_PROXY_ENABLED":false,"MODULE_PROXY_PORT":"","MODULE_PROXY_URL":"","MODULE_URL":"http://www.espruino.com/modules","NPM_MODULES":false,"OFFLINE_DATA":"","OFFLINE_DATA_DOWNLOAD":"","OFFLINE_DATA_UPLOAD":"","OFFLINE_ENABLED":true,"RESET_BEFORE_SEND":true,"SAVE_ON_SEND":false,"SERIAL_AUDIO":"0","SERIAL_TCPIP":"","SERIAL_THROTTLE_SEND":true,"SET_TIME_ON_WRITE":true,"SHOW_CODE_LINK_ICON":true,"SHOW_RELOAD_ICON":true,"SHOW_WEBCAM_ICON":true,"STORE_LINE_NUMBERS":false,"Sound_Error":"","Sound_Info":"","Sound_Success":"","Sound_Warning":"","Speak_Error":false,"Speak_Info":false,"Speak_Success":false,"Speak_Warning":false,"UI_MODE":"compact","WEBCAM_CONSTRAINTS":0,"WEB_BLUETOOTH":true,"projectEntry":"645CE808FCEC404709C322927E633191:Espruino pico"} Initialising SettingsConsole Initialising Utils Initialising Config Initialising Notifications Initialising Status Initialising App Initialising File Initialising Code Initialising Serial - Initialising Serial Chrome Serial - Initialising Serial Chrome Socket - Initialising Serial Web Audio - Initialising Serial Web Bluetooth Initialising Terminal Initialising CodeWriter Initialising Modules Initialising Env Initialising Flasher Initialising EditorBlockly Initialising EditorJavaScript Initialising Send Initialising MenuPortSelector Initialising MenuSettings Initialising MenuFlasher Initialising SettingsAbout Initialising SettingsFlasher Initialising BoardJSON Initialising VersionChecker Initialising Compiler Initialising Assembler Initialising GetGitHub Initialising SetTime Initialising Unicode Initialising Minify Initialising SaveOnSend Initialising Tutorial Initialising Webcam Initialising FontSize Initialising UiMode Initialising URLHandler Initialising CodeLink Initialising Project Initialising Testing Initialising Notification_Sound Initialising Tern Initialising Debugger Initialising Tour Initialising SettingsProfile Initialising HelpLinks Initialising Offline Loaded code from storage. GET chrome.storage.local.OFFLINE_DATA = 497080 bytes No navigator.bluetooth - Web Bluetooth not enabled >>> Connecting... ForceThrottle option is set - set Slow Write = true [object Object] Connected [object Object] Found a prompt... great! >>> Sending... ---> "\u0010console.log(\"<\",\"<<\",JSON.stringify(process.env),\">>\",\">\")\n" >>> Sent Got "< << {\"VERSION\":\"1v95\",\"BUILD_DATE\":\"Dec 15 2017\",\"BUILD_TIME\":\"17:07:34\",\"GIT_COMMIT\":\"7dbffcf5da09570bd95714b2386a12ab25ab1d50\",\"BOARD\":\"ESPRUINOBOARD\",\"CHIP\":\"STM32F103RCT6\",\"CHIP_FAMILY\":\"STM32F1\",\"FLASH\":262144,\"RAM\":49152,\"SERIAL\":\"34ffdb05-42573838-24631743\",\"CONSOLE\":\"USB\",\"EXPORTS\":{\"jsvLock\":131929,\"jsvLockAgainSafe\":131915,\"jsvUnLock\":131889,\"jsvSkipName\":19429,\"jsvMathsOp\":24927,\"jsvMathsOpSkipNames\":24977,\"jsvNewFromFloat\":132269,\"jsvNewFromInteger\":132305,\"jsvNewFromString\":133473,\"jsvNewFromBool\":132289,\"jsvGetFloat\":19713,\"jsvGetInteger\":17081,\"jsvGetBool\":20437,\"jspeiFindInScopes\":31009,\"jspReplaceWith\":31069,\"jspeFunctionCall\":35349,\"jspGetNamedVariable\":188129,\"jspGetNamedField\":189697,\"jspGetVarNamedField\":189293,\"jsvNewWithFlags\":132085}} >> >\r\n" Loading http://www.espruino.com/json/ESPRUINOBOARD.json Searching for json/ESPRUINOBOARD.json json/ESPRUINOBOARD.json found in offline archive Board JSON loaded Firmware >1.43 supports faster writes over USB ForceThrottle option is set - set Slow Write = true FIRMWARE: Current 1v95, Available 1v95 Device found (connectionId=1) [success] Connected to port /dev/ttyACM0 >>> Connected to port /dev/ttyACM0 WARNING: [notify_warn] Errors while minifying - sending unminified code. Found a prompt... great! >>> Sending... ---> "\u0010reset();\n\u0010setTime(1518687384.349);\n\u0010var c = (function(){\u001b\n var bin=atob(\"ChgAIJFCA9AR+AE7GET553BHAAA=\");\u001b\n return {\u001b\n sum:E.nativeCall(1, \"int(int, int)\", bin),\u001b\n };\u001b\n})();\n\u0010var str = E.toString(\"\\1\\2\\3\\4\\5\\6\");\n\u0010print(c.sum(str.length, E.getAddressOf(str,true)));\n\n" Splitting at "reset();\n", delay 250 ERROR: [notify_error] Input_0:8: ERROR - This style of octal literal is not supported in strict mode. ERROR: [notify_error] var str = E.toString("\1\2\3\4\5\6"); // create a flat string ERROR: [notify_error] ^ >>> Sent
-
I have some errors when trying the example below on an original Espruino Rev 1.4b.
var c = E.compiledC(` // int sum(int, int) int sum(int len, unsigned char *data){ int s = 0; while (len--) s += *(data++); return s; } `); var str = E.toString("\1\2\3\4\5\6"); // create a flat string print(c.sum(str.length, E.getAddressOf(str,true)));
It goes well, see first and second logs below, if I disconnect from webide, then upload the very same example, reconnecting at the prompt from wedide (0.68.5) just before it uploads the source. There no need to disconnect physically the board.
No error or just warnings, and a correct result of 21.
Note that printing process.env.EXPORTS gave once a truncated string with no closing " and no ending } and no prompt for the next command until I press the Enter key on the left side of the WebIde. Then I get the rest of the strings, json closed and prompt. This is also true on the error case.
On the other hand, process.env sends a full JSON with everything apparently correct.> _____ _ | __|___ ___ ___ _ _|_|___ ___ | __|_ -| . | _| | | | | . | |_____|___| _|_| |___|_|_|_|___| |_| http://espruino.com 1v95 Copyright 2017 G.Williams >21 =undefined >process.env.EXPORTS ={ "jsvLock": 131929, "jsvLockAgainSafe": 131915, "jsvUnLock": 131889, "jsvSkipName": 19429, "jsvMathsOp": 24927, "jsvMathsOpSkipNames": 24977, "jsvNewFromFloat": 132269, "jsvNewFromInteger": 132305, "jsvNewFromString": 133473, "jsvNewFromBool": 132289, "jsvGetFloat": 19713, "jsvGetInteger": 17081, "jsvGetBool": 20437, "jspeiFindInScopes": 31009, "jspReplaceWith": 31069, "jspeFunctionCall": 35349, "jspGetNamedVariable": 188129, "jspGetNamedField": 189697, "jspGetVarNamedField": 189293, "jsvNewWithFlags": 132085 } > process.env ={ "VERSION": "1v95", "BUILD_DATE": "Dec 15 2017", "BUILD_TIME": "17:07:34", "GIT_COMMIT": "7dbffcf5da09570bd95714b2386a12ab25ab1d50", "BOARD": "ESPRUINOBOARD", "CHIP": "STM32F103RCT6", "CHIP_FAMILY": "STM32F1", "FLASH": 262144, "RAM": 49152, "SERIAL": "34ffdb05-42573838-24631743", "CONSOLE": "USB", "EXPORTS": { "jsvLock": 131929, "jsvLockAgainSafe": 131915, "jsvUnLock": 131889, "jsvSkipName": 19429, "jsvMathsOp": 24927, "jsvMathsOpSkipNames": 24977, "jsvNewFromFloat": 132269, "jsvNewFromInteger": 132305, "jsvNewFromString": 133473, "jsvNewFromBool": 132289, "jsvGetFloat": 19713, "jsvGetInteger": 17081, "jsvGetBool": 20437, "jspeiFindInScopes": 31009, "jspReplaceWith": 31069, "jspeFunctionCall": 35349, "jspGetNamedVariable": 188129, "jspGetNamedField": 189697, "jspGetVarNamedField": 189293, "jsvNewWithFlags": 132085 } } >
Ide log corresponding:
```
ERROR: RECEIVE ERROR: {"connectionId":1,"error":"device_lost"}
Disconnect callback...
WARNING: [notify_warn] DisconnectedDisconnected
Connecting...
ForceThrottle option is set - set Slow Write = true
[object Object]
Connected [object Object]
Found a prompt... great!
Sending...
---> "\u0010console.log(\"<\",\"<<\",JSON.stringify(process.env),\">>\",\">\")\n"
Sent
Got "< << {\"VERSION\":\"1v95\",\"BUILD_DATE\":\"Dec 15 2017\",\"BUILD_TIME\":\"17:07:34\",\"GIT_COMMIT\":\"7dbffcf5da09570bd95714b2386a12ab25ab1d50\",\"BOARD\":\"ESPRUINOBOARD\",\"CHIP\":\"STM32F103RCT6\",\"CHIP_FAMILY\":\"STM32F1\",\"FLASH\":262144,\"RAM\":49152,\"SERIAL\":\"34ffdb05-42573838-24631743\",\"CONSOLE\":\"USB\",\"EXPORTS\":{\"jsvLock\":131929,\"jsvLockAgainSafe\":131915,\"jsvUnLock\":131889,\"jsvSkipName\":19429,\"jsvMathsOp\":24927,\"jsvMathsOpSkipNames\":24977,\"jsvNewFromFloat\":132269,\"jsvNewFromInteger\":132305,\"jsvNewFromString\":133473,\"jsvNewFromBool\":132289,\"jsvGetFloat\":19713,\"jsvGetInteger\":17081,\"jsvGetBool\":20437,\"jspeiFindInScopes\":31009,\"jspReplaceWith\":31069,\"jspeFunctionCall\":35349,\"jspGetNamedVariable\":188129,\"jspGetNamedField\":189697,\"jspGetVarNamedField\":189293,\"jsvNewWithFlags\":132085}} >> >\r\n"
Loading http://www.espruino.com/json/ESPRUINOBOARD.json
Searching for json/ESPRUINOBOARD.json
json/ESPRUINOBOARD.json found in offline archive
Board JSON loaded
Firmware >1.43 supports faster writes over USB
ForceThrottle option is set - set Slow Write = true
FIRMWARE: Current 1v95, Available 1v95
Device found (connectionId=2)
[success] Connected to port /dev/ttyACM0
Connected to port /dev/ttyACM0
WARNING: [notify_warn] Errors while minifying - sending unminified code.
Found a prompt... great!
Sending...
---> "\u0010reset();\n\u0010setTime(1518684180.54);\n\u0010var c = (function(){\u001b\n var bin=atob(\"ChgAIJFCA9AR+AE7GET553BHAAA=\");\u001b\n return {\u001b\n sum:E.nativeCall(1, \"int(int, int)\", bin),\u001b\n };\u001b\n})();\n\u0010var str = E.toString(\"\1\2\3\4\5\6\");\n\u0010print(c.sum(str.length, E.getAddressOf(str,true)));\n\n"
Splitting at "reset();\n", delay 250
ERROR: [notify_error] Input_0:8: ERROR -
-
Hello and hapy new year,
Simply said: espruino is a javascript interpreter and a set of boards. Java is in no way able to run on the boards that run espruino.
As the interpreter is written in C/C++, you should certainly be able to use C or C++ on the board that is running it so far.
You could also see this thread if you need to add some C/C++ functionalities to the interpreter.
See your board manufacturer for further details about dev environnement. -
Hi, what my test above shown on the pico with some floats at least for pi computation, is:
- uncompiled and not pretokenised: 446 s
- compiled (84 MHz) : 36 s as opposed to ThomasChr result of 28 s on the pyboard (168 MHz)
I did not tried the tokenised functionnality.
Results are indeed in favor of Espruino Pico as it is only 84 MHz clocked.This test could be rerun on Espruino Pico reflashed with Micropython as it has been ported to.
Porting Espruino to the Pyboard would eventually and symetricaly allow this comparison running on the Pyboard too
That would definitly be fair. - uncompiled and not pretokenised: 446 s
-
Just now, I am testing this with a "compiled" directive.
Simple changes are: code inside very identical functions, except that the compiled one needs to declare the i variable.
Results are:compare()
Starting non compiled espruino pi at 1514037569001.04614257812
Pi: 3.14159365358
Took 446121180.6640625 Microseconds for 1000002 iterations
Starting COMPILED espruino pi at 1514038015123.26708984375
Pi: 3.14159365358
Took 36048217.7734375 Microseconds for 1000002 iterations
=0So there is a speedup of a factor 12 to using the "compiled" directive.
I had experimented a comparable speedup in a gps checksum computation 2 years ago.
See herefunction testcompiled() { "compiled"; var iterations = 1000000; var x = 1; var pi = 1; var i=2; // required for compiler var begin=Date.now(); console.log("Starting COMPILED espruino pi at", begin); for (i = 2; i < iterations + 2; i++) { x = x * -1; pi = pi + (x / (2*i-1)); } pi = pi * 4; console.log('Pi: ' + pi); var end= Date.now(); console.log('Took ' + ((end-begin)*1000) + ' Microseconds for ' + i + ' iterations'); return pi; } function test() { var iterations = 1000000; var x = 1; var pi = 1; var begin=Date.now(); console.log("Starting non compiled espruino pi at", begin); for (i = 2; i < iterations + 2; i++) { x = x * -1; pi = pi + (x / (2*i-1)); } pi = pi * 4; console.log('Pi: ' + pi); var end= Date.now(); console.log('Took ' + ((end-begin)*1000) + ' Microseconds for ' + i +' iterations'); return pi; } function compare() { return test() - testcompiled(); }
-
-
Hello, you could have a look at this http://forum.espruino.com/conversations/265821/ .
More specifically this post http://forum.espruino.com/comments/12435986/
Also there are the pages about:
compiling espruino's javascript, which is simple, http://www.espruino.com/Compilation,
assembler, which I find tricky, http://www.espruino.com/Assembler,
performance, suggestions about writing efficient code, http://www.espruino.com/Performance .
As far as I can remember, Espruino does not use hardware floting points computation in order to run on very small flash memory size. See here http://forum.espruino.com/comments/12613170/ Espruino floats are 64 bits.Also micropython is compiled in bytecode so, that's not really fair per opposition to fully interpreted approach of espruino: you can have dynamically written code in strings and then convert them to executable code on the fly.
Dig a bit in this forum.
-
-
-
I guess, it should be relatively easy to port Espruino to these modules ...
By relatively, I mean most of the STMF4 part is already known while the wifi specific part is yet to be checked.
And, as I am biaised in favor of Espruino versus Micropython, I do strongly believe it has to be done! That's not to talk about a new kickstarter project with a board more 'in the stream' of rpiz addon boards (or phats as some call it). -
Well, they wrote it. I can't say about electrodragon, but some suppliers don't provide the certificates that goes with CE, FCC and more unusual ROHS.
So far there is the :
+Acorn V1 (They wrote it on the metallic radio shield but I 'd like to get the certificates)
+WT8266-S1 which is available from aliexpress supplier's shop and has it's certificates
? AI-thinkers pretends it, but I have not read it.All the others have just copied the esp8266 chip statements (and the chips have their certificates) but never have anything written about their modules.
The thing is that PCB's material and soldering joints should also be ROHS: that's never written actually. To be CE, in theory, you have to retest some part of the radio functionalities / power once it's in the final box...Olimex is clear about not beeing CE for instance. Although they are ROHS. It's probably because of the costs and the metallic shield required for radio.
So, it's a quick summary.
-
Hi @Gordon,
Very few esp modules do have a ce and rohs certifications.
That's a problem as soon as you want to juild anything commercialy sellable in Europe. -
@Gordon,
Thank for your answer.
About power saving, I suggest to use an ultra low quiescent current power regulator. I mean nA not ten's of nA.
I am biaised toward 1 year autonomy on a pair of AA batteries and now considering Stm32l476 mcu. I would suggest to have a look at it's integrated capability to charge a super capacitor. Just to go on dreaming, power it from a cheap 1,5v solar panel such as those found in solar powered garden lights.
May be that could be an optionnal shield, part of a new Kickstarter campain and, somewhere retrofit the Pico with it too... -
Well, I found that power management is critical in iot...
So, since the esp is not as power saving as it should be to use it on its own. I would suggest to carefully integrate the opportunity to switch completely off the esp from it's mcu fellow. And more or less let this mcu handle all of the io and realtime stuff before waking up the esp.
That's just an opinion. -
Hi @Gordon, about this new board, would you open a separate thread? I think quite a number of suggestions could ne made.
-
Hi @user6546,
So, the port of Espruino to the Nucleo F401RE doesn't need the USB functionality mainly because it has an equivallent USB connection through the ST-Link v2 integrated one. This makes it an mbed compatible board.
As a result, the USB port is under control of the ST-link and seen from Espruino's side as a serial port...The various difficulties, mentionned above, are just about flashing Espruino on a Nucleo board. They do not impact the functionnalities under Espruino.
That said, it could be interesting to have the usb available on this board as it is OTG on the STM32F4.
I think getting USB to work would need to break apart the ST-link board thus freeing the serial port used, design some accessory board providing the correct STM32F4 pins as well as a steady 5V power supply and the proper USB connector. Just to add, some HSI or LSI are provided by the ST-link part to the Nucleo, this is to consider too, specially for USB.
On the Espruino interpreter side, you will have to reconfigure the serial link used with the ST-link part and let it behave as a USB port. The Pico is doing so but that's to be carefully studied as there is no bootloader in the Nucleo board port of Espruino.Quite a lot of work actually, specially compared to the Pico beeing readily available.
-
Just a link to start this port...
-
Hi, just a few arguments to this discussion:
a- the global bill amounts to 25 - 30 euros! (box+sd+power supply+wifi dongle)
b- running a rpi for month or years imply a bit of hardening on the linux side or you'll get sd wear: i have done than since 2 years now and finally openssl bugs imply reboots every 2 or 3 months
c- power consumption is definitly not iot friendly: stm32L4 seems very interesting from this side (nA somewhere)
d- no adc or dac on pi0
e- single uart
f- android tablets are getting as low as 30 euros -
Hi all,
Just to mention that, on Ubuntu also, the Espruino interpreter for Nucleo needs the same modification to flash it from it's original binary file.
The Nucleo's firmware has been updated to 2VJ25M13 and there is no improvement on this point so far.
That is just set the 8th byte to 0x08 in Espruino's binary file.
Then drag and drop it to your Nucleo device folder to flash. -
Hi, @Gordon!
You are right!!!!
I think most persons do not have a correct understanding of what is going under the curtain!
I mean, doing really real time I/O in such a high level language as Espruino / JavaScript are, as simply as it is now, is quite a challenge very few of them would have tried, say using Arduino C++ approach!
Furthermore we all try to do this on very small platforms, happily forgetting any realistic constraints of memory sizes or computation time/responsiveness.
Espruino definitely allows to make it, reducing the source code to a minimal size.
I think, just as every one else, I hit the available ram size wall.
So, to make it concrete, I would state that any ram saving technique is good to use but, expecting a massive ram requirement reduction, is just an illusion. You have to choose an appropriate platform to your application!
So, you are right when you consider that Espruino is targeted at small, very energy saving, platforms...
Now it is clear that tomorrow will be brighter than yesterday... Maybe...
It's a time/effort/cost alternative consideration.
Should this community finds a clearly simple, universal, solution let's do it.
I doubt...
Go on!
You know what you are doing as a software / hardware designer or architect. It's more than obvious looking at the Espruino's projects. -
@Gordon, the compiler emits an error message that looks like:
"Compiler not active as no process.env.EXPORTS available... Are you sure you upgraded to the latest firmware". -
@DrAzzy, It also is a bit over my head...
You, probably, did not upgraded your firmware and other things since a year which makes it invisible to you. I could flash by drag and drop before upgrading, see above.
Anyway, things are getting clearer now: ST silently added some constraints, while updating everything, that are incompatible with the linker parameters setup in some makefile of Espruino.
On a mid to long term basis, I think we are condamned to follow ST about this kind of change.
Now I don't really understand why you have a different version of Espruino. Except for you use the latest version while the official one is 1v81 so...
Ok, rebooted, changed cable and full log IT failed!