All Projects → vshymanskyy → Wasm3_RGB_Lamp

vshymanskyy / Wasm3_RGB_Lamp

Licence: other
Animating an RGB lamp, using WebAssembly!

Programming Languages

C++
36643 projects - #6 most used programming language
c
50402 projects - #5 most used programming language
typescript
32286 projects
Makefile
30231 projects

Projects that are alternatives of or similar to Wasm3 RGB Lamp

IOS-DFU-Library
OTA DFU Library for Mac and iOS, compatible with nRF5x SoCs
Stars: ✭ 400 (+1042.86%)
Mutual labels:  nrf52, nrf51
nrf52-IR
Decoding and saving carrier modulated IR signals and sending modulated IR signals using NRF52 SoCs
Stars: ✭ 17 (-51.43%)
Mutual labels:  nrf52, nrf51
Tinygo
Go compiler for small places. Microcontrollers, WebAssembly (WASM/WASI), and command-line tools. Based on LLVM.
Stars: ✭ 9,068 (+25808.57%)
Mutual labels:  nrf52, nrf51
tinyfont
Text library for TinyGo displays
Stars: ✭ 37 (+5.71%)
Mutual labels:  nrf52, nrf51
platform-nordicnrf52
Nordic nRF52: development platform for PlatformIO
Stars: ✭ 82 (+134.29%)
Mutual labels:  platformio, nrf52
Platform Kendryte210
Kendryte K210: development platform for PlatformIO
Stars: ✭ 60 (+71.43%)
Mutual labels:  platformio
Easybutton
Arduino library for debouncing momentary contact switches, detect press, release, long press and sequences with event definitions and callbacks.
Stars: ✭ 187 (+434.29%)
Mutual labels:  platformio
Esp32 Paxcounter
Wifi & BLE driven passenger flow metering with cheap ESP32 boards
Stars: ✭ 844 (+2311.43%)
Mutual labels:  platformio
Platformio Vscode Ide
PlatformIO IDE for VSCode: The next generation integrated development environment for IoT
Stars: ✭ 676 (+1831.43%)
Mutual labels:  platformio
timonel
ATtiny85/45/25 I2C bootloader
Stars: ✭ 108 (+208.57%)
Mutual labels:  platformio
EthernetWebServer SSL
Simple TLS/SSL Ethernet WebServer, HTTP Client and WebSocket Client library for for AVR, Portenta_H7, Teensy, SAM DUE, SAMD21, SAMD51, STM32F/L/H/G/WB/MP1, nRF52 and RASPBERRY_PI_PICO boards using Ethernet shields W5100, W5200, W5500, ENC28J60 or Teensy 4.1 NativeEthernet/QNEthernet. It now supports Ethernet TLS/SSL Client. The library supports …
Stars: ✭ 40 (+14.29%)
Mutual labels:  nrf52
Platform Gd32v
GD32V: development platform for PlatformIO
Stars: ✭ 142 (+305.71%)
Mutual labels:  platformio
Stm32pio
Automate managing of STM32CubeMX + PlatformIO projects
Stars: ✭ 89 (+154.29%)
Mutual labels:  platformio
Esp8266 React
A framework for ESP8266 & ESP32 microcontrollers with a React UI
Stars: ✭ 193 (+451.43%)
Mutual labels:  platformio
Ttgo T Wristband
First steps with TTGO T-Wristband
Stars: ✭ 50 (+42.86%)
Mutual labels:  platformio
platform-shakti
Shakti: development platform for PlatformIO
Stars: ✭ 26 (-25.71%)
Mutual labels:  platformio
Arduino Esp32
Arduino core for the ESP32
Stars: ✭ 7,741 (+22017.14%)
Mutual labels:  platformio
Irremoteesp8266
Infrared remote library for ESP8266/ESP32: send and receive infrared signals with multiple protocols. Based on: https://github.com/shirriff/Arduino-IRremote/
Stars: ✭ 1,964 (+5511.43%)
Mutual labels:  platformio
Platform Espressif8266
Espressif 8266: development platform for PlatformIO
Stars: ✭ 206 (+488.57%)
Mutual labels:  platformio
Stc diyclock
STC DIY Clock redux (STC15F204EA, STC15W404AS, STC15W408AS)
Stars: ✭ 130 (+271.43%)
Mutual labels:  platformio

[WIP] WebAssembly RGB lamp animation demo

  • MCU: Nordic nRF51822 QFAA (16 MHz Cortex-M0, 16 Kb RAM, 256 Kb Flash)
  • Wasm Runtime: Wasm3
  • Framework: Arduino
  • Build System: PlatformIO

Demo

  • Video with 30 LEDs, lamp produces 110 FPS
  • Video with 144 LEDs, lamp produces 23.5 FPS

demo

Status

  • Run AssemblyScript on nRF51
  • Simple Color Wheel animation working
  • Transfer pixels in batches (optimize speed)
  • Add support for Micro:bit, ESP32, ESP8266
  • Try running Bluetooth LE stack
  • Upload wasm binary to device using BLE (store to RAM)
  • Store wasm binary to flash

Build instructions

./assemblyscript contains the wasm app. This implements an animation.
./wasm_vm contains the interpreter/VM.

  1. Install PlatformIO
  2. In assemblyscript directory, run npm install
  3. To build the demo: make
  4. To upload and run the demo: make run
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].