Introduction

Welcome to Kaluma! Kaluma is a tiny and efficient JavaScript runtime for RP2040 (Raspberry Pi Pico). If you are a JavaScript developer familiar with Node.js, you can make electronics without learning a new language like C/C++ or Arduino sketch. Written in C99 and built on JerryScript - A lightweight and efficient JavaScript engine.

Main features

  • Small footprint. Runs minimally on microcontrollers with 300KB ROM with 64KB RAM.
  • Support modern JavaScript standards (ECMAScript 5/6/6+). Powered by JerryScript.
  • Has internal event loop like as Node.js for asynchronous.
  • Has built-in modules including file systems (LittleFS, FAT), graphics, networking and more.
  • Support RP2's PIO (Programmable I/O) inline assembly in JavaScript code.
  • Provides very friendly API that resembles Node.js and Arduino.
  • Kaluma CLI - A command-line tool to program devices running Kaluma runtime.

ECMAScript

Kaluma supporting full ES (ECMAScript) 5.1 and the most of ES2015+ standards as below:

  • Arrow Functions
  • Typed Arrays
    • Int8Array
    • Uint8Array
    • Uint8ClampedArray
    • Int16Array
    • Uint16Array
    • Int32Array
    • Uint32Array
    • Float32Array
    • Float64Array
    • ArrayBuffer
    • DataView
  • Set
  • Map
  • Promise
  • Symbol
  • Constants
  • Async Functions (async and await)
  • for-await-of language element
  • Iterator and for-of operator
  • Generator Functions
  • Classes
  • Default Parameter Values
  • Destructuring Assignment
  • Rest Parameter
  • Object Initializer
  • Template String
  • Numeric Separators
  • Nullish Coalescing Operator