Petoi Doc Center

Firmware Uploader

This manual for Beginner. Makes it easier for you to get started with the robot(Nybble / Bittle ).

** Download the latest version of the Petoi Desktop APP. **

Petoi Desktop App works on both Nybble and Bittle, controlled by NyBoard based on ATmega328P, or BiBoard based on ESP32. More detailed documentation can be found at the NyBoard V1_0 or NyBoard V1_1.
Note: the board version number is here

Dial the I2C switch (SW2) to the "Arduino" side

The I2C switch changes the master of I2C devices (gyro/accelerometer, servo driver, external EEPROM). On default “Arduino”, NyBoard uses the onboard ATmega328P as the master chip; On “RPi”, NyBoard uses external chips connected through the I2C ports (SDA, SCL) as the master chip. Always select "Arduino" unless you know how to connect the I2C devices from the external chip.
  • Sometimes if you cannot go through the bootup stage, for example, printing Init IMU\r\n repetitively, maybe you have accidentally dialed the switch to the "RPi" side.
  • Before uploading the firmware, please make sure not to connect any I2C device to the I2C interface of the mainboard. Otherwise, the firmware upload will fail. The location of the I2C interface is as shown below (in the red box):

Upload the firmware for NyBoard with the Petoi Desktop APP

Download the latest version of the Petoi Desktop APP.

There may be some OS platform compatibility issues with different computers.
You can still run the app directly from your terminal:
  1. 1.
    Go to OpenCat/pyUI/ in your terminal.
  2. 2.
    Install pyserial, pillow for your Python. You may get a clean Anaconda environment and pip3 install pyserial pillow
  3. 3.
    Run python3
For NyBoard, firmware upload mainly calls the application avrdude to upload firmware files for the mainboard.

Install avrdude in the Linux OS

For Linux system users, in addition to the above steps, you also need to perform the following steps:
1. Install avrdude
  • Fedora : dnf install avrdude
  • CentOS : yum install avrdude
  • Debian / Ubuntu : apt install avrdude
2. Modify the variable avrdudeconfPath in
  • Fedora / CentOS : avrdudeconfPath = '/etc/avrdude/'
  • Debian / Ubuntu : avrdudeconfPath = '/etc/'

Connect the USB uploader

Check the connected serial ports:
For specific steps, please refer to the Connect NyBoard section in the USB uploader module.
After the USB uploader is properly connected, open the PetoiDesktopApp (for Windows: UI.exe / for Mac: Petoi Desktop App), and select your model and language.
The "Italian", "Français", "日语" translations are to be completed. You may contribute to our GitHub repository: OpenCat/pyUI/

Click the "Firmware Uploader" button to open the Firmware Uploader interface:

Main interface
Firmware Uploader interface
Select the correct options to upload the latest firmware for the NyBoard.
The 1.0 software won't work properly with the Joint Calibrator, the Skill Composer, and other APIs. Only use it when you want to use CodeCraft (a graphical coding interface by our partner, TinkerGen).
Software version
2.0 (default)
The 1.0 version will be obsolete.
Board version
NyBoard_V1_0 (default) NyBoard_V1_1 NyBoard_V1_2
Bittle (default) Nybble
Standard (default) RandomMind Voice Camera
Some modes are only available on a specific product
Serial port
The most recent
you may need to find it through trial-and-error
There's no correlation between the board (hardware) version and the code (software) version.

Uploading process

After clicking the "Upload" button, the uploading process starts immediately. The status bar at the bottom will show the current progress in real-time, as well as the results of key processes.
After the Parameters firmware has been successfully uploaded, the board starts to run the configuration program by itself. Some message windows will pop up in sequence for you to confirm or cancel:
  • Reset joint offsets? (Y/N)
Select "是(Y)", the program will reset all servo calibration parameters to zero, and the status bar will update the corresponding process and result in real-time.
Select "否(N)" and the program will skip this step.
For software version 1.0, there is a warning message window of "Update Instincts? (Y/N)" will pop up as follow:
Select "是(Y)", the program will upload all skill configuration parameters, and the status bar will update the corresponding process and result in real-time.
Select "否(N)" and the program will skip this step.
If you upload this version of the software for the first time, be sure to select "是(Y)"!
For software version 2.0, this choice is automatically processed as Y in the background..
  • Calibrate IMU? (Y/N)
Select "是(Y)", the program will calibrate the gyroscope (IMU), and the status bar will update the corresponding process and result in real-time.
Select "否(N)" and the program will skip this step.
  1. 1.
    Make sure the mainboard is positioned horizontally before clicking the "是(Y)" button.
  2. 2.
    When uploading this version of the firmware for the first time, be sure to click the "是(Y)" button!
When all the steps are completed, a message window will pop up showing "Parameter initialization complete!" You need to confirm to proceed to the second round of uploading the main functional code.
After the uploading is complete, the status bar will update the corresponding result such as the success or failure of firmware uploading. If the uploading is successful, a message window of "Firmware upload complete!" will pop up at the same time.
  1. 1.
    When you open the software and upload the firmware for the first time, the program will first upload the "Parameters" firmware, then upload the "Main function" firmware. If you re-upload after a successful upload, the program will only upload the "Main function" firmware as long as you only modifed the "Mode" option.
  2. 2.
    If the NyBoard is not connected to the battery and powered on, you will hear repetitive descending melodies, indicating that the battery is low or not connected. You need to connect the battery and turn on its power.
If you have Arduino IDE programming experience, you can refer to Upload Sketch For NyBoard.