> For the complete documentation index, see [llms.txt](https://guide.petoi.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://guide.petoi.com/product/bittle-x-v2/control-and-programming/petoi-desktop-app.md).

# Petoi Desktop App

The Petoi Desktop App offers a user-friendly graphical interface for configuring the firmware, calibrating the robot, designing customized motions, and utilizing debugging tools. The major function modules are the [Firmware Uploader](https://guide.petoi.com/desktop-app/firmware-uploader), [Joint Calibrator](https://guide.petoi.com/desktop-app/joint-calibrator), [Skill Composer](https://guide.petoi.com/desktop-app/skill-composer), and [Tools](https://guide.petoi.com/desktop-app/tools).

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

## Download & Installation

You can download the [latest version](https://github.com/PetoiCamp/OpenCat/releases) of the desktop App and unzip it.

Before running the app, for BiBoard:

* Wired connection: The kit includes a **USB Type-C data cable** connecting the robot's mainboard to the computer.
* Wireless connection (Bluetooth): The motherboard's [**built-in Bluetooth**](https://docs.petoi.com/bluetooth-connection) module allows you to connect the robot's mainboard to the computer wirelessly.

{% hint style="info" %}
For NyBoard, you must use the included USB adapter or the Bluetooth dongle to connect to a Petoi robot.&#x20;
{% endhint %}

You may need to [install drivers](/technical-support/useful-tools/biboard-v1.md) for the USB connection.

### Windows

Run the UI.exe in the **unzipped** folder.  Do NOT move the UI.exe to another location in Windows.

### Mac

After downloading the Mac version, you must drag it into the **Applications** folder.&#x20;

If you see the error message that **Petoi Desktop App** cannot be opened because the developer cannot be verified, you can right-click the icon, hold the **Shift** key and click **Open**.

![](/files/8358jcqppHBs1YHVE40Z)

{% hint style="warning" %}
The upgraded macOS has introduced some incompatibility with the GUI library. To click/activate an element in the app's interface, press and hold the element, then move your finger slightly and release. Otherwise, the event cannot be recognized.&#x20;

Sorry for the inconvenience. It's been a known issue between macOS and the popular Tkinter library.

<img src="/files/VEUyL4GdnSJyUo1amUuI" alt="" data-size="original">
{% endhint %}

### Linux

Please see the next chapter to run the app from a terminal.

## Run the app from the Terminal for Mac or Linux

In the case of compatibility issues or if you want to modify the source and test, you can also run the code from the Terminal.

The Terminal is a built-in interface on Mac or Linux machines. The equivalent environment on Windows machines is the Command Prompt (CMD). It's recommended that you install [Anaconda](https://www.anaconda.com/) to manage your Python environment (**Python version > 3.7.1)**. It can also provide PowerShell as a Terminal for older Windows machines.

Depending on your existing Python configuration, you may need to upgrade to Python 3 and install the following libraries:

* pyserial
* pillow

You can install them by entering `pip3 install pyserial pillow` in the Terminal or use the package manager in Anaconda.

To run the code:

1. In the Terminal, use the `cd` command to navigate to the `OpenCat/pyUI/` folder. You can use the Tab key to auto-complete the path name.
2. After entering the pyUI/ folder, enter `ls` and ensure you can see the UI.py and other python source codes listed.
3. Enter `python3 UI.py`.

{% hint style="info" %}
For Linux system users,  if you encounter the Python error message "\_tkinter.TclError: no display name and no $DISPLAY environment variable", you can try to install **python3-tk**, **tk-dev**. Taking Debian / Ubuntu as an example, the command is as follows:

`apt install python3-tk`

`apt install tk-dev`

After the installation is complete, reboot the computer.
{% endhint %}

### Check the mainboard version and the USB connector

<figure><img src="/files/47Q1it4Z8bViL993GgH7" alt=""><figcaption></figcaption></figure>

## Robot Connection

Plug in the battery and press the battery button for 3 seconds to power on the robot.

There are two methods to connect to the computer:

* The USB data cable connection must be made directly to **the BiBoard,** not to the battery's charging port. &#x20;
* You can also connect to the computer via [Bluetooth](https://guide.petoi.com/quick-reference/bluetooth-connection).

For BiBoard, please ensure the program enters the [**regular startup mode**](https://guide.petoi.com/arduino-ide/upload-sketch-for-biboard#id-2.8-program-initialization)**.**

## Open Source Codes

The source code is written in Tkinter using Python 3 and is open-source. The GitHub repository URL is: <https://github.com/PetoiCamp/DesktopAppRelease>

UI.py is the general entry for all the modules in the pyUI file folder:

-> FirmwareUploader.py

-> Calibrator.py

-> SkillComposer.py

-> Debugger.py

-> translate.py provides multi-language support for the UI. You may help to translate the UI into your language.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://guide.petoi.com/product/bittle-x-v2/control-and-programming/petoi-desktop-app.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
