Skip to main content

KittenBot Grape:Bit ESP32-C3

A round board packed with IMU, buzzer, motor control, 4 RGB LEDs, and Jacdac.

KittenBot Grape:Bit ESP32-C3 picture


  • Jacdac on pin 5 using Jacdac connector
  • I2C on 6/7
  • WS2812B RGB LED on pin 10 (use setStatusLight to control)

  • Service: buttonA (button)
  • Service: buttonB (button)
  • Service: music (buzzer)
  • Service: M1 (motor)
  • Service: M2 (motor)



pin namehardware idfeatures
P1GPIO2analogIn, boot, io
P2GPIO0analogIn, io
$services.buttonA[0].pinGPIO21$services.buttonA[0].pin, bootUart, io
$services.buttonB[1].pinGPIO9$services.buttonB[1].pin, boot, io
$[2].pinGPIO3$[2].pin, analogIn, io
$services.M1[3].pin1GPIO1$services.M1[3].pin1, analogIn, io
$services.M2[4].pin1GPIO4$services.M2[4].pin1, analogIn, debug, io
i2c.pinSCLGPIO7i2c.pinSCL, debug, io
i2c.pinSDAGPIO6i2c.pinSDA, debug, io, debug, io

DeviceScript import

You must add this import statement to load the pinout configuration for this device.

In Visual Studio Code, click the wand icon on the file menu and select "KittenBot Grape:Bit ESP32-C3".

import { pins, board } from "@dsboard/kittenbot_grapebit_esp32c3"


The accelerometer can be accessed through the KittenBotGrapeBit helper.

import { KittenBotGrapeBit } from "@devicescript/drivers"

const board = new KittenBotGrapeBit()
const acc = await board.startAccelerometer()

acc.reading.subscribe(vector => console.log(vector))

Firmware update

In Visual Studio Code, select DeviceScript: Flash Firmware... from the command palette.

Run this command line command and follow the instructions.

devicescript flash --board kittenbot_grapebit_esp32c3


"$schema": "",
"id": "kittenbot_grapebit_esp32c3",
"devName": "KittenBot Grape:Bit ESP32-C3",
"productId": "0x38ccab8d",
"$description": "A round board packed with IMU, buzzer, motor control, 4 RGB LEDs, and Jacdac.",
"archId": "esp32c3",
"url": "",
"$services": [
"name": "buttonA",
"pin": 21,
"service": "button"
"name": "buttonB",
"pin": 9,
"service": "button"
"name": "music",
"pin": 3,
"service": "buzzer"
"name": "M1",
"pin1": 1,
"service": "motor"
"pin1": 4,
"name": "M2",
"service": "motor"
"i2c": {
"pinSCL": 7,
"pinSDA": 6
"jacdac": {
"$connector": "Jacdac",
"pin": 5
"led": {
"num": 4,
"pin": 10,
"type": 1
"pins": {
"P1": 2,
"P2": 0,
"LED": 10