# BiBoard V0

## Hardware setup

It is built into the [**BiBoard V0's extension hat**](https://guide.petoi.com/biboard/biboard-extension-hat) as follows:

<figure><img src="/files/MN0GoFWf7UrTJq0xGJ3G" alt=""><figcaption></figcaption></figure>

## Software setup

### 1. Upload Firmware

There are two methods to upload the firmware for the robot.

* **use the Petoi Desktop App**
* **use the Arduino IDE**

#### **Petoi Desktop App**

You can use the [Firmware Uploader](https://guide.petoi.com/desktop-app/firmware-uploader#select-the-correct-options-to-upload-the-latest-firmware) within the Petoi Desktop App.

Please select the correct ***Product*** type, ***Board version***, and ***Serial port***. The mode should be **Standard**, so press the **Upgrade the Firmware** button.&#x20;

For example, Bittle +X, BiBoard\_V0\_2, COM3 as follows:

<figure><img src="/files/qn8Ehkwkv7nzKsJ180So" alt=""><figcaption></figcaption></figure>

#### **Arduino IDE**

You can use [Arduino IDE](https://www.arduino.cc/en/software) to [upload the sketch](https://guide.petoi.com/arduino-ide/upload-sketch-for-biboard#id-2.-set-up-biboard)(***OpenCatEsp32.ino***).&#x20;

For Bittle or Bittle X:

<pre class="language-cpp"><code class="lang-cpp">#define BITTLE    //Petoi 9 DOF robot dog, also for Bittle X
<strong>//#define NYBBLE  //Petoi 11 DOF robot cat, also for Nybble Q
</strong>//#define CUB
</code></pre>

For Nybble or Nybble Q:

<pre class="language-cpp"><code class="lang-cpp">//#define BITTLE    //Petoi 9 DOF robot dog, also for Bittle X
<strong>#define NYBBLE  //Petoi 11 DOF robot cat, also for Nybble Q
</strong>//#define CUB
</code></pre>

Modify the mainboard model macro definition in OpenCatEsp3&#x32;**.ino** according to the mainboard (BiBoard) version.

```cpp
// #define BiBoard_V0_1  //ESP32 Board with 12 channels of built-in PWM for joints
// #define BiBoard_V0_2
#define BiBoard_V1_0
```

If the robot(**Bittle X+Arm**) has the robotic arm, you should also activate the macro definition as follows:

<pre class="language-cpp"><code class="lang-cpp"><strong>#define ROBOT_ARM                 // for attaching the head clip arm
</strong></code></pre>

Otherwise, please comment out this line of code.

After the modification is completed, you can click the **Upload** button (as below) to upload the sketch **OpenCatEsp32.ino**, and the changes in the code file will be automatically saved.

<figure><img src="/files/tdpRznaQQrpxXC9osxpY" alt=""><figcaption></figcaption></figure>

### 2. Switch mode

After uploading, the program defaults to Voice mode. If it is in another mode and you want to switch to Voice mode, please open the [Serial Monitor](https://guide.petoi.com/arduino-ide/serial-monitor) and send the **`XA`** command.

## The test sketch

The test sketch is in the OpenCatEsp32 repository on GitHub (specific path: OpenCatEsp32/ModuleTests/testVoiceCommander). You can visit our GitHub repository <https://github.com/PetoiCamp/OpenCatEsp32> to download the complete code, as shown in the following picture:

<figure><img src="/files/xkAYdahcOoMhWtdwbTNU" alt=""><figcaption></figcaption></figure>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://guide.petoi.com/extensible-modules/voice-command-module/biboard-v0.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
