Devices
This page links to various developer boards that have a DeviceScript runtime firmware.
For sensors and other peripherals, see drivers.
Implementation status
Device | USB | TCP | TLS | I2C | SPI | GPIO | PWM | WS2812B | Jacdac |
---|---|---|---|---|---|---|---|---|---|
WASM Sim | N/A | ✓ | ✓ | ❌ | ❌ | ❌ | ❌ | ❌ | ✓ |
ESP32 | ⚠️ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
ESP32-C3 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
ESP32-S2 | ✓ | ✓ | ❌ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
ESP32-S3 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
RP2040 | ✓ | ❌ | ❌ | ✓ | ✓ | ✓ | ✓ | ❌ | ✓ |
RP2040-W | ✓ | ✓ | ❌ | ✓ | ✓ | ✓ | ✓ | ❌ | ✓ |
The PWM is currently only supported through servo, light bulb, buzzer and similar drivers.
The ESP32-C3 boards are best supported. The regular ESP32 (without -C3 or -S2) currently have issues with the USB connection (as it's handled by external chip). The ESP32-S2 has limited memory which makes it difficult to use TLS. The ESP32-S3 is very recent and largely untested.
The RP2040 should generally work, but TLS is not supported on Pico-W.
If you have ESP-IDF or Pico SDK expertise, we are actively looking for contributors to help with the C embedded runtime. You can look at the ESP32 issues or the RP2040 issues for ideas. There's also an incomplete STM32 port if you want to contribute there. It's also possible to port to a new MCU/SoC.
Board recommendations
For ESP32,
- Adafruit QT Py C3 and FeatherS2 have Qwiic aka STEMMA QT connectors that make it easy to connect I2C sensors; there's also Adafruit Feather ESP32-S2 in the same category but it's untested
- Seeed Xiao ESP32C3
- ESP32-C3-RUST has a builtin temperature/humidity and light sensors, and RGB LED
For RP2040,
Your device is not in the list? Add a new Device Configuration in your project.
Shields
It is also possible to create npm packages for shields or breakouts. Those packages typically configure the pins and drivers for a better experience.