_____ _ | __|___ ___ ___ _ _|_|___ ___ | __|_ -| . | _| | | | | . | |_____|___| _|_| |___|_|_|_|___| |_|
If you have an Espruino board, please read the Quick Start Guide first.
Other documentation of use is:
Submit bugs with clear steps to reproduce them: a small test case (not your whole program), and an actual and expected result. If you can't come up with these, please post on the forum first as it may just be something in your code that we can help out with.
Work on Espruino is supported by sales of our boards.
If your board isn't made by us but came pre-installed with Espruino then you should contact the manufacturers.
We try and support users of the boards we sell, but if you bought a non-official board your issue may not get addressed. In this case, please consider donating to help cover the time it takes to fix problems (even so, we can't guarantee to fix every problem).
Please see the LICENSE file
Check out the page on building Espruino
There are a bunch of tests in the
tests directory. See
tests/README.md for examples on how to run them.
The officially supported boards are the best supported. They come pre-installed with Espruino and you are able to easily download and flash the latest versions of Espruino to them.
While Espruino can run on other boards, we make no money from them and so cannot afford to test, fix or support the firmware on them. We're dependent on the community.
You can download binaries from http://www.espruino.com/Download
If you are a board manufacturer interested in getting your board officially supported, please check out this page.
For a list of supported boards, please see the boards folder.
Main supported platforms are:
Espruino has been ported to other boards and platforms (such as EFM32 and SAMD), but these have a habit of being contributed and then never maintained. All boards that this has happened to reside in the UNMAINTAINED_BOARDS branch.
Check out the documentation on the build process first - this should clear up a lot of potential questions about the Espruino architecture.
Please see CONTRIBUTING.md for some hints about code style/etc.
You can auto-build documentation for all source files - see doxygen/README.md
Any more questions? ask on the forum.
If you're using an existing architecture everything can be done from
boards/BOARDNAME.py. See a similar board's
.py file as an example.
However for a new architecture there are a bunch of different files to modify.
boards/*.pyfiles describe the CPU, available pins, and connections - so the relevant linker script, headers + docs can be created
boards/pins/*.csvare copies of the 'pin definitions' table in the chip's datasheet. They are read in for STM32 chips by the
boards/*.pyfiles, but they are not required - see
boards/MICROBIT.pyfor an example.
makedirectory contains arch-specific Makefile fragments
src/jshardware.his effectively a simple abstraction layer for SPI/I2C/etc, which should be implemented in
See libs/README.md for a short tutorial on how to add your own libraries.
If you're using Espruino for your own personal projects - go ahead, we hope you have fun - and please let us know what you do with it on http://www.espruino.com/Forum!
If you're planning on selling the Espruino software on your own board, please:
We spend a lot of time supporting Espruino on the forums, but can only do so because we make money from the sales of Espruino boards. If your users request support from us then we have absolutely no obligation to help them. However, we'll be a lot more motivated if you're actively helping to improve Espruino for all its users (not just your own).