-
I used RELEASE_2V08.
Anyway, with edge I've same problem.
Both are downloaded yesterday this way:git clone -b RELEASE_2V08 https://github.com/espruino/Espruino.git EspruinoRelease git clone https://github.com/espruino/Espruino.git EspruinoEdge
Flashing is done with IDE from local file.
To avoid misunderstanding on my side for using the script. I did
- cd to script folder
- add path for compiler to $PATH
- startet the script
Now I've a file espruino_file.bin, size is 225 kb
Would it be correct to flash this file with IDE ?
- cd to script folder
-
Firmware created on my ubuntu server does not work on board.
After flashing from local drive with IDE and reset, all 3 LED are on, and serial port is not found.
Flashing a binary from Espruino/com/binaries, same way, works fine.
My make runs this way, there is no error:cd /home/nodejs/efeu/espruino/EspruinoRelease/ export PATH=/home/nodejs/efeu/tools/gcc-arm-none-eabi-8-2018-q4-major/bin:$PATH make clean RELEASE=1 BOARD=ESPRUINOBOARD make >tmp/Espruino/log/stdout 2>tmp/Espruino/log/stderr
Comparing binaries there is a difference in size.
Mine(espruino_2v08_espruino_1r3) has 214KB and "yours" from binaries folder has 224 KBAny idea, whats going wrong on my side?
Make for ESP32 works fine, looks like something wrong with my installation for ARM ? -
-
Depending on boards we use some ports cause a shutdown after setting mode for pin, like D16.mode("output").
Testing was done to check speed of different solutions for LED-Matrix(32x64).
Started with a board from Watterott, everything worked fine.
Switching to another board reset with same configuration.
Problem could be drilled down to usage of IO16 and IO17.
D16.mode("output") and I've got a reset.
Most boards don't have pins for IO16 and IO17, so be careful, not to use them accidently -
I would like to load a binary image from sd directly to a graphicsbuffer.
The only way, it worked for me is this:var gr = Graphics.createArrayBuffer(64,32,4,{interleavex:true}); //this is a 64x32 LED matrix fs = require("fs"); var x = E.toUint8Array(fs.readFile("myFile.bin")); //myFile.bin is binary file holding 1024 bytes for(var i = 0; i < 1024; i++) gr.buffer[i] = x[i];
Using a temporary array and copy value by value in a loop looks strange to me.
And it takes a lot of CPU power to copy.
But all I tried to assign Uint8Array directly to graphics buffer, failed.
Failed in the way, that loaded image was not shown.I'm pretty sure, there is a way to do better, but I don't find it.
-
@user122861, how did you convert to tflite ?
I tried some time ago to convert from keras to tflite see Forum entry
But the result could not be used for bangle. Size was too big. -
-
NO_COMPILE is in make file for some years now.
It was added by me to have an easy method to get wrapperfiles only.
See lines 820-823 in make file (on github) .
Its used to create a UI to support blacklist handling
I checked DFU_UPDATE_BUILD and it works fine. Thanks for this hint.BTW, there is a break in handling of WRAPPERSOURCES. entrys are all relative, only tensorflow is absolute. Is there a special reason for that, or is it grown the way it is ?
...... src/jswrap_waveform.c libs/compression/jswrap_heatshrink.c libs/math/jswrap_math.c libs/graphics/jswrap_graphics.c libs/graphics/jswrap_terminal.c libs/bluetooth/jswrap_bluetooth.c /home/nodejs/efeu/espruino/EspruinoRelease/libs/tensorflow/jswrap_tensorflow.c
-
After starting make
NO_COMPILE=1 BOARD=BANGLEJS make
I get this again and again
make: *** No rule to make target 'bootloader_espruino_2v08_banglejs.elf', needed by 'bootloader_espruino_2v08_banglejs.app_hex'. Stop.
Running same with ESPRUINOBOARD runs fine
Running same with MDBT42Q fails with same messageEverything runs on RASPBERRY with gcc-arm-none-eabi-9-2020-q2-update
Any idea what I've to fix ? -
-
@fanoush
running file ... gives
/home/nodejs/efeu/tools/gcc-arm-none-eabi-8-2018-q4-major/bin/arm-none-eabi-gcc: ELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.24, BuildID[sha1]=9ac5427532642fef341e6e032eea16d7eb5fde4c, strippedldd ... gives not a dynamic executable
In my poor understanding this is the showstopper for my idea.
Anyway, for espressif I will ask in their forum. Based on my experience with them I don't expect too much -
@gordon, @fanoush, thanks for quickly responding.
Let me give some more information- ubuntu version is for 64 bit
- raspberry is V4 with 8gb ram and booting from usb stick
- problem occurs with ARM and ESP8266 and ESP32
- checking version for arm gives an error: Exec format error
Wonder if my idea to use raspberry for compiling is doable.
Need of an arm compiler for Espressif boards (and others?) could be the showstopper - ubuntu version is for 64 bit
-
-
For creating firmware I would like to switch from my shared ubuntu to a raspberry pi V4
According to provision.sh everything is installed.
But after calling make like thiscd /home/nodejs/efeu/espruino/EspruinoRelease export PATH=/home/nodejs/efeu/tools/gcc-arm-none-eabi-8-2018-q4-major/bin:$PATH RELEASE=1 BOARD=ESPRUINOBOARD make
I get this
Makefile:781: warning: ignoring prerequisites on suffix rule definition Makefile:785: warning: ignoring prerequisites on suffix rule definition CC /home/nodejs/efeu/espruino/EspruinoRelease/targetlibs/stm32f1/lib/startup_stm32f10x_hd.o /home/nodejs/efeu/tools/gcc-arm-none-eabi-8-2018-q4-major/bin/arm-none-eabi-gcc: 1:ELF: not found Generating platform configs /home/nodejs/efeu/tools/gcc-arm-none-eabi-8-2018-q4-major/bin/arm-none-eabi-gcc: 5: Syntax error: "(" unexpected Generating pin info make: *** [Makefile:791: /home/nodejs/efeu/espruino/EspruinoRelease/targetlibs/stm32f1/lib/startup_stm32f10x_hd.o] Error 2 make: *** Waiting for unfinished jobs....
Doing the same on shared ubuntu host runs fine without warning and error
Any idea ? -
-
-
-
During testing, Terminal window is often used to send same commands.
Typing same thing again and again is boring.
Snippets could be one way to help, but working with several projects blows up snippets.
I would prefer to save testing commands in project file, to have them available whenever comin back to project.
Therfore just tested, how we could send selected lines from code window.
Short extension to js/core/send.js(line 47) like this could help.
It first checks for selected lines in code window, and sends this code only.
If nothing is selected it sends whole project.
I'm not fully satisfied with this solution.
It would be a change for send button, any idea to do better ?var code = Espruino.Core.EditorJavaScript.getSelectedCode(); if(code.length > 0) Espruino.Core.Serial.write(code,true); else Espruino.Core.Code.getEspruinoCode(Espruino.Core.CodeWriter.writeToEspruino);
-
@allObjects,
my reason to choose SIM800 was size (and price)
Adding a micro switch, good point, before giving up, I'll take that.
Micro and speaker, hmm, no idea yet.
As soon as all steps before are working, I'll see what I can do with that. -
@allObjects,
thanks for your feedback. I've a 612-2 and an older phone made from copper.
There is one switch for the hook.
Another sensor is for dialing.
Last not least one sensor for pulses.
612-2 works fine, all signals are recognized with simple debouncing.
The copper phone works for hook and dialing, but pulses give strange results. Debouncing by Espruino does not help. From test to test, I get totally different results. Looks like hardware of the phone does not like reproducable results. Sometimes even no pulse is detected.
Anyway, I will first try to get my 612-2 running with a SIM800.
And later on come back to the copper phone.
-
Original Espruino Boards are faster than ESP32, at least for functions like this.
But I'm pretty sure, based on my experience with 32x64, 64x64 even Espruino boards will still be too slow.
Watching prices for 64x64 boards, they are really cheap, P2.5 for less than 13€ shipping includedI2S would be an option, if parallel mode is supported. Have in mond you have to set 11(5+6) data and 3 control ports for a 64x64 Matrix
Special driver like the one for Neopixel could be an option.
If I would be Gordon, I would not like this. Support for several boards could end in a nightmare. -
-
Using edge:0 was my first step. Thats were the problem started.
I changed to 2 watches to have the option to use different debounce for falling and for raising.
Anyway, I switched back to one watch for testing.function initWP(){ var arr = new Uint8Array(100),pnt = 0,pulsePort = D3; pulsePort.mode('input_pullup'); function pulseHnd(e){arr[pnt++] = e.state;} function logPulse(){ console.log(new Uint8Array(arr.buffer,0,pnt)); clearWatch(); } setWatch(pulseHnd,pulsePort,{repeat:true,edge:0,debounce:5}); setTimeout(logPulse,5000); }
Problem stays.
Next, based on a hint from @MaBe, used 2 wires connecting on a breadboard to simulate pulses instead of my rotary and got similiar problem. This time I've falling edges without raising between (2nd and 3rd example)initWP() =undefined new Uint8Array([0, 1, 0, 1, 0, 1, 0, 1, 0, 1]) >initWP() =undefined new Uint8Array([0, 0, 1, 0, 1, 0, 1, 0, 1]) >initWP() =undefined new Uint8Array([0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0])
-
Still working on my rotary phone.
For recognizing a simple test should help, thats the idea.function initWP(){ var arr = new Uint8Array(100),pnt = 0,pulsePort = D3; pulsePort.mode('input_pullup'); function pulseHnd(e){arr[pnt++] = e.state;} function logPulse(){ console.log(new Uint8Array(arr.buffer,0,pnt)); clearWatch(); } setWatch(pulseHnd,pulsePort,{repeat:true,edge:1,debounce:5}); setWatch(pulseHnd,pulsePort,{repeat:true,edge:-1,debounce:5}); setTimeout(logPulse,5000); }
Next switched to terminal window and checked several times.
initWP() =undefined new Uint8Array([1, 1, 0]) >initWP() =undefined new Uint8Array([1, 1, 1, 1, 1, 0]) >initWP() =undefined new Uint8Array([1, 1, 1, 1, 0]) >initWP() =undefined new Uint8Array([1, 1, 1, 0]) >initWP() =undefined new Uint8Array([0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0]) >
How can I get raising edge several times, without having falling edge between ?
Checked the same with one watch (edge:0) and got similiar result.
Tested firmware created with script on Espruino Board from first Kickstarter campaign.
It works fine with latest release and with edge from github. Size of binary also matches those from your binaries folder
My problem is to create my own firmware.
Looks like I've to write a script to combine my firmware with bootloader. Something similiar to your create_espruino_image_1v3.sh