-
The piece of code below reproduces the error. The weird part is that if you comment out the line where proto is assigned in one (regardless which) of the two constructors you don't get the error. This does not make sense to me.
var Collection = function Collection(value) { return value; }; var KeyedCollection = /*@__PURE__*/ (function (Collection) { function KeyedCollection(value) { //return isKeyed(value) ? value : KeyedSeq(value); } if (Collection) KeyedCollection.__proto__ = Collection; KeyedCollection.prototype = Object.create(Collection && Collection.prototype); KeyedCollection.prototype.constructor = KeyedCollection; return KeyedCollection; })(Collection); var IndexedCollection = /*@__PURE__*/ (function (Collection) { function IndexedCollection(value) { //return isIndexed(value) ? value : IndexedSeq(value); } if (Collection) IndexedCollection.__proto__ = Collection; IndexedCollection.prototype = Object.create(Collection && Collection.prototype); IndexedCollection.prototype.constructor = IndexedCollection; return IndexedCollection; })(Collection);
-
-
-
-
-
Hi,
I got the lolin D32 pro board that's advertised to have 16mb flash + 8 mb PSRAM.I'd like to run the espirit "firmware" (which is clojurescript compiler on top of espruino ) using that manual https://cljdoc.org/d/esprit/esprit/1.0.0/doc/building-espruino
The build goes smooth, however after reset the board outpits this:
ets Jul 29 2019 12:21:46 rst:0x1 (POWERON_RESET),boot:0x17 (SPI_FAST_FLASH_BOOT) configsip: 0, SPIWP:0xee clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00 mode:DIO, clock div:2 load:0x3fff0018,len:4 load:0x3fff001c,len:2668 load:0x40078000,len:7304 load:0x40080000,len:5312 entry 0x40080274 ASSERT(length>0) FAILED AT src/jsvar.c:4189 #1[r1,l2] Object { #2[r1,l2] Name String [1 blocks] "\xFF" #3[r1,l1] Object { #6[r1,l2] Name String [2 blocks] "timers" #8[r2,l0] Array(0) [ ] #9[r1,l2] Name String [2 blocks] "watches" #11[r2,l0] Array(0) [ ] #14[r1,l2] Name String [1 blocks] "net" #12[r1,l1] String [2 blocks] "\5\0\0\0\0\xFF\xFF\xFF\0\0\0\0" } } HALTING.
any hints / help is appreciated
-
-
Hi,
I'm software professional with very big experience. I know when my code is crap and I know how to learn new stuff. This is why I may appear stubborn, but I really know best how to approach new stuff.Uploading my messy experimental code without explaining my workflow would've wasted other ppl's time. You and the community missed nothing, I guarantee you that.
I'm sorry but I don't really understand what's your request to me. As for my question re stability — It's fair question, in some respects the esp32 port is not complete so I had to know what to expect. I am also very suspicious of the heltec board.
As a good citizen I always like to help when I can. This is why after asking a question I do my best to follow up, as you can see above.
So, one more follow-up: the biggest challenge and source of grief for me was the combination of how save() works and how the web ide works. Let me elaborate:
- Clojure is my favorite environment and espruino's REPL is the closest I've ever seen to clojure's REPL. As usual similarity can hide very subtle traps and this happened here
- espruiono's save() and boot process is unlike anything I've ever used. It took me one evening of experimenting to finally grasp how the different pieces fit together. The "saving code..." page has it very well laid out, but I needed some practice to really grok it. This page must be front & central, it's extremely important information. The difference when code is evaluated and when global state is restored is key
- I quickly ditched the web ide to use my emacs + espruino cli. This is, I beleive another trap — the very powerful save & boot capabilities gave me lots of rope to hang myself. Also, using the espruino cli requires you understand what you're doing (which I did not). The web ide has pretty straightforward flow, but "graduating" to espruino cli is deceivingly simple (and wrong in my case)
- Clojure is my favorite environment and espruino's REPL is the closest I've ever seen to clojure's REPL. As usual similarity can hide very subtle traps and this happened here
-
Thanks, once again!
I had two major problems:
- the infamous brownout detector. Solved with capacitor
- total mess w.r.t. dev process and flashing code. Spent good deal of time on the "saving code..." page but still not 100% confident I'm doing it right. I obviously had hot mess of setInterval handlers.
It's big progress because now the probe works for hours without any issues.
- the infamous brownout detector. Solved with capacitor
-
Thanks for the debugging hints. I knew none of this. Where should I look for more debugging hints?
setInterval is called once from the main context. These are my timers in normal situation:
global["\xFF"].timers =[ undefined, undefined, undefined, { time: 140550, interval: 300000, callback: function (undefined) { ... } }, { time: 1342468, interval: 3000000, callback: function (undefined) { ... } } ]
this is memory (again under normal conditions)
{ free: 1563, usage: 737, total: 2300, history: 23, gc: 538, gctime: 2.717, blocksize: 16 }
I'll definitelly incorporate your and @AkosLukacs hints into the error handling and debugging when it crashes again.
-
Thanks a lot for the feedback.
I'm using DS18B20 and I knew the resolution/conversion time relationship. I use 9 or 10 bit resolution and I read registers then request new resolution without waiting in order to keep the event loop free.
How much self-heating do you think I'm causing? It's measuring temperatures in the 90-110 range and couple degrees offset (as long as it's constant) is not an issue. -
-
so, I left it connected via tcp and this is what seems relevant:
ERROR: Ctrl-C while processing interval - removing it. Execution Interrupted during event processing. New interpreter error: CALLBACK,MEMORY ERROR: Ctrl-C while processing interval - removing it. Execution Interrupted during event processing.
I get some exceptions in the http put ("Uncaught InternalError: Unable to create socket" included) but it looks like both setInterval handlers are cancelled? the one reading temperature did not throw visible exceptions.
-
Hi,
I'm using my heltec esp32 as simple temperature monitoring device:- via setInterval I sample my one wire sensors and generate strings (influx line format) that I push into array. Sampling is done every 300ms
- again via setInterval I push the collected strings to influx via http post. This happens every 5 secs.
What's weird is that every 10-15 minutes I get error from influx because I'm sending corrupt strings. The errors are small — here & there one character is wrong.
Also, the device works for few hours and then stops sending data. Haven't been able to catch this moment and see tho logs yet.
How stable/dependable is espruino? Can I rely on it to control heaters and pumps (planned next step)?
- via setInterval I sample my one wire sensors and generate strings (influx line format) that I push into array. Sampling is done every 300ms
-
Hi,
According to the board reference here only pin 35/36 are available.However after toying with the code from this comment I pick up signal on the mentioned pins.
What's the official situation? Is the documentation out-of-date or am I lucky?
Thanks
Using espruino_2v11.30_esp32.bin this error is gone. Thanks!
However I managed to load the module once with different error but after that I only get | New interpreter error: LOW_MEMORY,MEMORY when requiring the module. I store it on the storage. The file is 64k, I have 4M ram.
In case you are wondering — I'm trying to upload the immutable.js library as sort of stress test. Want to see if it's feasible to use most of my regular JS toolbox.