All Projects → grassel → wac-esp

grassel / wac-esp

Licence: other
Web Assembly Interpreter for ESP32 family of micro controllers running the ESP-IDF development framework, based on the great work at kanaka/wac

Programming Languages

c
50402 projects - #5 most used programming language
Makefile
30231 projects

Projects that are alternatives of or similar to wac-esp

esp32-ota
ESP32 OTA based on ThingsBoard Open-source IoT Platform
Stars: ✭ 45 (-31.82%)
Mutual labels:  esp32, esp32-idf
sra-board-component
ESP-IDF component for SRA Board
Stars: ✭ 34 (-48.48%)
Mutual labels:  esp32, esp32-idf
low-power-wifi
Experiments in low-power-wifi on esp8266, esp32, and ...
Stars: ✭ 35 (-46.97%)
Mutual labels:  esp32, esp32-idf
BlueRetro
Multiplayer Bluetooth controllers adapter for retro video game consoles
Stars: ✭ 520 (+687.88%)
Mutual labels:  esp32, esp32-idf
WARDuino
A dynamic WebAssembly VM for embedded systems
Stars: ✭ 51 (-22.73%)
Mutual labels:  runtime, esp32
esp32-epaper-display
Server and software to use an ESP32 as a connected display
Stars: ✭ 73 (+10.61%)
Mutual labels:  esp32, esp32-idf
ESPHome-OpenTherm
Example of how to control an opentherm boiler with esphome
Stars: ✭ 54 (-18.18%)
Mutual labels:  esp32
ESP32-3DPrinter-Bridge
A network <=> ESP32 <=> USB (FTDI) <=> 3D printer Bridge
Stars: ✭ 30 (-54.55%)
Mutual labels:  esp32
MicroPython Examples
MicroPython Examples For 01Studio Development Board
Stars: ✭ 86 (+30.3%)
Mutual labels:  esp32
esp32
Build your own toolchain to develop, test, build and finally deploy a Golang controller to your ESP32 device.
Stars: ✭ 76 (+15.15%)
Mutual labels:  esp32
ESPNtpClient
High accuracy NTP library for ESP32 and ESP8266
Stars: ✭ 81 (+22.73%)
Mutual labels:  esp32
squire
The medieval language held together by twine.
Stars: ✭ 42 (-36.36%)
Mutual labels:  runtime
CoopCommand
CoopCommand aims to increase automation in small scale egg-laying chicken flocks for the hobby farmer. Final product aims to have ease of installation and use for non-technical users.
Stars: ✭ 37 (-43.94%)
Mutual labels:  esp32
esp8266-esp32-sdk
Library for https://sinric.pro - simple way to connect your device to Alexa, Google Home, SmartThings and cloud
Stars: ✭ 147 (+122.73%)
Mutual labels:  esp32
Anemometer
Wireless WIFI Anemometer using ESP12e
Stars: ✭ 14 (-78.79%)
Mutual labels:  esp32
TPreventUnrecognizedSEL
Use TPreventUnrecognizedSEL can make you project prevent the unrecognized selector crash
Stars: ✭ 17 (-74.24%)
Mutual labels:  runtime
home-assistant-opentherm-thermostat
Home Assistant OpenTherm Thermostat
Stars: ✭ 26 (-60.61%)
Mutual labels:  esp32
go-wasm
Run WASM built from Go in Go
Stars: ✭ 58 (-12.12%)
Mutual labels:  runtime
MySQL MariaDB Generic
This MySQL_MariaDB_Generic library helps you connect your boards directly to a MySQL / MariaDB server, either local or cloud-based, so that you can store / retrieve data to / from the server. Supported boards are ESP8266/ESP32, WT32_ETH01 (ESP32 + LAN8720A), nRF52, SAMD21/SAMD51, STM32F/L/H/G/WB/MP1, Teensy, SAM DUE, Mega, RP2040-based boards, P…
Stars: ✭ 35 (-46.97%)
Mutual labels:  esp32
arduino-ble-gadget
Create your own Do-It-Yourself BLE enabled sensor gadget on the ESP32 platform.
Stars: ✭ 31 (-53.03%)
Mutual labels:  esp32

wac - WebAssembly in C

A Minimal WebAssembly interpreter written in C. Supports the WebAssembly MVP (minimum viable product) version of the WebAssembly specification.

This is a fork of the great works at kanaka/wac focuses on making the WASM Interpreter work on embedded devices compatible with Espressif ESP32 and their ESP-IDF development environment. This environment uses Amazon FreeRTOS.

Please read the intro at kanaka/wac .

Runs simple WASM code generated by Emscipten or CLANG/LLVM V8.

Currently limitations:

  • Only supports a non-interactive variant of wac. No plans to change.
  • WASM binary code is included as a static buffer in wac.c Plan is to support network download by integrating the HTTP client component.
  • Function import's are unsupported, no dynamic DLL loading, no calls to the OS. I might add some support in the future.
  • Systamatic testing has not been done.

Build Instructions for ESP32

Get the ESP-IDF development kit from https://docs.espressif.com/projects/esp-idf/en/stable/index.html and follow the instructions how to download, install, and configure.

The environment variable ESP_PLATFORM indicates we are building for ESP32:

export ESP_PLATFORM=1

Run once, the only thing to do is to adjust the devcie port of your module: make menuconfig

In the root directory ./wac, build everything:

make all

Flash the built image and start the monitor:

make flash monitr

The output is pretty verbouse becasue tracing is enabled (change in platform.h). If everything goes fine it prints the return value, tells its done and reboots to start over. Stop the monitor with CTRL - ].

Build Instructions for Ubuntu

The purpose of the Ubuntu built is to give an easier environment to track down bug, and to study the code.

Follow the instructions at kanaka/wac to install dependencies (works for me on Ubuntu 18.04. and does not work on Mac OS).

Create the out directory

mkdir ./out

Unset ESP_PLATFORM environment variable (otherwise the built will be for ESP)

unset ESP_PLATFORM

Make the executable out/wac

make all

License

MPL-2.0 (see LICENSE).

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].