The project uses CMake. Quick install looks like this:
git clone [email protected]:TOPLLab/WARDuino.git
cd WARDuino
mkdir build-emu
cd build-emu
cmake ..
make
This will build the command-line tool (EMULATOR) by default.
Before you can compile and flash with ESP-IDF, you must install and enable the toolchain. You also need to disable the watchdog timer:
- Go to the root folder of the WARDuino repo
- run
idf.py menuconfig
- Under Component config โ ESP System Settings disable the following options:
- Interrupt watchdog
- Initialize Task Watchdog Timer on startup
- Save and quit the menu
Make sure the ESP-IDF tools are enabled, otherwise these steps will not work.
To install the WARDuino with the ESP-IDF toolchain perform the following steps starting from the project root folder:
mkdir build
cd build
cmake ..
make flash
Or simply run idf.py flash
.
To install the WARDuino with the Arduino toolchain perform the following steps starting from the project root folder:
WARDuino can also be build as a command-line tool for a desktop environment. The purpose of this CLI is to allow developers to test WARDuino applications without the need to buy a microcontroller. The CLI is also used to run the various unit and specification tests for WARDuino.
To install the CLI perform the following steps starting from the project root folder:
mkdir build-emu
cd build-emu
cmake ..
make
pip install -r requirements.txt
./tests/integration/run_spec_tests.py --interpreter "build/warduino" --compiler "wat2wasm"
For a feature request or bug report, create a GitHub issue.
MPL-2.0 (see LICENSE).
WARDuino by Robbert Gurdeep Singh, Tom Lauwaerts, Christophe Scholliers and Joel Martin is licensed under a Mozilla Public License 2.0. This is a derivative work of kanaka/wac by Joel Martin.
If you need to cite WARDuino in your research, use:
@inproceedings{WARDuino2019,
author = {Gurdeep Singh, Robbert and Scholliers, Christophe},
title = {WARDuino: A Dynamic WebAssembly Virtual Machine for Programming Microcontrollers},
booktitle = {Proceedings of the 16th ACM SIGPLAN International Conference on Managed Programming Languages and Runtimes},
series = {MPLR 2019},
year = {2019},
isbn = {978-1-4503-6977-0},
location = {Athens, Greece},
pages = {27--36},
numpages = {10},
url = {http://doi.acm.org/10.1145/3357390.3361029},
doi = {10.1145/3357390.3361029},
acmid = {3361029},
publisher = {ACM},
address = {New York, NY, USA},
keywords = {Arduino, Live Code Updates, Virtual Machine, WebAssembly},
}