• First of all, I would like to have more options to extend firmware by myself. Let me add my 2 cents:

    • adding all modules to Espruino Firmware that are helpful to somebody makes development and maintenance a nightmare. Who would be (or at least feel) responsible ? If I would be Gordon, my answer would be "not me anymore".
    • modules like neopixel can be big or small. There are some implementation for WS2812 and others that give a lot of options. Which one should be implemented in Espruino ?
    • some modules are helpful on special platform only. For example, Espruino boards already supports WS2812, why should there be one more module ?
    • Espruino already supports binarys, see http://www.espruino.com/Assembler and http://www.espruino.com/Compilation.
    • binarys are machine code, therefore we will never have binarys running on all platforms.
    • by working with WebSockets I would like to have SHA1 implemented, to give one more example
    • something I was working on some time ago was a PID, one more example
    • some already available function in Espruino are needed by few people only, like FFT, CC3000, tv, ...

    What I could imagine is something like this:

    • use compiler of WebIDE to get a code-frame (function mytest(a,b){ return a+b;}) in a cpp file
    • add C-code to do whatever somebody wants to do inside
    • compile and upload this binary
    • or take binarys, that somebody else created

    Right now we have some limitations, even I know about

    • we need actual exports from process.env. This will change with each new release. So we need a more general way to get this information.
    • binarys right now are stored in memory not in flash.
    • at least in assembler we can store local variables inside the binarys, a nogo for flash
    • we don't get C-code from actual compiler service
    • compiler service works for Espruino(ARM?) only, there is nothing similiar available for ESP8266, EMW3165, NRF52, ...
About

Avatar for JumJum @JumJum started