Skip to content

MaartenS11/WARDuino

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WARDuino

Warduino is a port of the Web assembly virtual machine for the ESP32/ESP8266 under the arduino toolchain.

ToolChain Installation

Follow these steps to execute the blink program on WARduino on an ESP8266 or ESP32.

  • Download Arduino and install it.

  • Setup emcc version v.1.38.47 or higher.

  • Clone this repository under $(HOME)/Arduino/libraries.

  • Add the esp8266 or esp32 driver depending on your board:

  • Restart Arduino.

  • Go to the demo/run_wa folder.

  • Execute make -C wa_sources/ all.

  • Execute make up or use the Arduino IDE to compile and upload the .ino file.

    • Use board DOIT ESP32 DEVKIT V1

Run WARDuino on host machine

  • Install wat2wasm from the wabt package

Run the tests

  • mkdir build_test
  • cd build_test
  • cmake ../
  • make TestWARDuino
  • ./TestWarDuino

LICENCE

MPL-2.0 (see LICENSE).

WARDuino by Robbert Gurdeep Singh, 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},
}

About

A dynamic WebAssembly VM for embedded systems

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 86.8%
  • TypeScript 6.4%
  • C 3.2%
  • CMake 1.2%
  • Makefile 1.0%
  • JavaScript 0.7%
  • Other 0.7%