Skip to content

Expand JS Interpreter API: Hardware Access (Mic, IMU), Connectivity, and BadBLE #2262

@DESVOR8

Description

@DESVOR8

I am using M5StickC Plus2 with Bruce firmware and exploring the JS interpreter. Currently, the JS API is very limited, making it impossible to create advanced scripts. Specifically:

No access to raw microphone data: Cannot read volume levels or analyze sound.
No access to IMU: No data from the accelerometer or gyroscope.
No low-level networking: Missing ESP-NOW, custom Wi-Fi AP creation, and I2C communication for external sensors.
Screen timeout issues: No way to keep the screen on during script execution; it turns off if no keys are pressed.
Lack of BadBLE: While BadUSB is implemented, the JS interpreter lacks BadBLE support, which limits the device's offensive capabilities.

I would like to see the following modules/functions added to the JS environment:

mic: Functions to read raw audio data or peak volume.
imu: Functions like imu.getValues() to get orientation and motion data.
power: A way to disable the screen timeout, e.g., device.keepScreenOn(true).
connectivity: Support for esp-now, i2c.read() (for external sensors), and custom AP creation.
badble: Implementation of BadBLE functionality. Since the firmware already supports BadUSB, adding an API to emulate HID devices over BLE would be a logical and powerful addition to the JS engine.

Bruce 1.14

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions