Guide for the Petoi App


Thanks for choosing Petoi's robot Bittle or Nybble. This guide will help you set up your robot buddy and provide a simpler UI to calibrate, control, and program it. For advanced users, we recommend you keep the robot updated with the OpenCat firmware on Github for the best compatibility and newest features.

Download and installation

The app works on both Android and iOS devices.

Connect to your robot

You need to plug the Bluetooth dongle into the 6-pin socket on the NyBoard. Pay attention to the Bluetooth dongle's pin order. Long-press the button on the battery to turn on the robot's power.
If the buzzer beeps three times (bi-bi-bi) repetitively after bootup or during use, it means the battery is low. Please charge it in time. The charging port is on one end of the battery.
The LED on the Bluetooth dongle should blink waiting for a connection. Open the app and scan to connect the device with the name Bittle, Petoi, or OpenCat. Remember to open the Bluetooth service and grant the app access to the service.
If the Bluetooth is connected, its LED will light steady. The robot will play a three-tone melody. If the robot doesn't respond or malfunction later, press the reset button on the NyBoard to restart the program on the NyBoard.
The App should automatically detect Nybble or Bittle with the latest OpenCat firmware. Otherwise, it will show the selections for Nybble or Bittle. The option can be re-visited in the control panel.

Calibrate the joints

The following screen will be calibration for first-time users. It can also be re-visited in the control panel.
Select the joint index in the image on the calibration page, then click + or - to fine-tune the joints to right angles. Use the included L-shape tool as a reference. If the offset exceeds +/- 9 degrees, you need to take off the servo and reinstall it by one tooth. For example, what used to be +9 (out of bound) should become -3 or something.
You can switch between rest, stand, walk to test the effect of calibration. If it's good, remember to click "save" to save the calibration offsets. Otherwise, click return on the top-left corner to abandon the calibration.

Use the control panel

In the control panel, you can use the pe-set buttons to control the robot.


The left panel sets both the robot's gaits and directions and send combined command, such as "walk left" and "trot forward". The robot will only move if an initial gait and direction are selected. The "step" has no direction, and "backward" has left and right directions. The pause button "||" will pause the robot's motion and turn off the servos, so that you can rotate the joints to any angle. The "Turbo" button (
) turns on/off the gyro, a sensor to detect the robot's body orientation. Turning it on will make the robot keep adjusting to body angles, and will know when it's upside down. Turning it off will reduce calculation and make it walk faster and more stable.

Postures and behaviors

The built-in postures and behaviors can be triggered by pressing the buttons. Don't press the button too frequently and repeatedly. Allow some time for the robot to finish its current tasks.

Customized buttons

You can also define customized commands by pressing the "+" button. Long-press a custom command button to edit it. There's a lite serial console to test the command and even configure the robot.
Custom commands to try:

* move head (move joint angle)

m0 45

* move head left and right (move joint1 angle1 joint2 angle2 .... The angle is -127~128)

m0 -70 0 70

* sit


* move joints one by one

m 0 -70 0 70 8 -30 8 45

* MOVE joints simutanuosly

M 0 -45 8 -30 12 -60

* show current joint angles


* long meow once

u0 1

* short meow three times

u2 20

* play a short tone (beep tone duration, duration is 0~256)

b12 100

* play a melody (beep tone1 duration1, tone2 duration2, tone3 duration3, .... only 64 characters are allowed)

b14 90 14 90 21 90 21 90 23 90 23 90 21 180
Below are the indexes of the joints for your reference. Observe the patterns of the ordering and try to remember them.
A more detailed table can be found in the user manual:

Updates and support

We keep improving the app and will inform you of the updates when available. Please write to [email protected] if you have any questions about the app.