# ตัวอัปโหลดเฟิร์มแวร์

### \*\* ดาวน์โหลดเวอร์ชันล่าสุดของ [Petoi Desktop APP](https://github.com/PetoiCamp/OpenCat/releases). \*\*

Petoi Desktop App ทำงานได้ทั้งบน Nybble และ Bittle ซึ่งควบคุมโดย NyBoard ที่ใช้ ATmega328P หรือ BiBoard ที่ใช้ ESP32 สามารถดูเอกสารรายละเอียดเพิ่มเติมได้ที่ [*NyBoard V1\_0*](/thai/nyboard/nyboard-v1_0.md) *หรือ* [*NyBoard V1\_1*](/thai/nyboard/nyboard-v1_1.md).

{% hint style="info" %}
หมายเลขเวอร์ชันของบอร์ดอยู่ที่นี่

![](/files/CH5kFJ31b1cvIqcFw9rs)
{% endhint %}

### กดสวิตช์ I2C (SW2) ไปที่ฝั่ง "Arduino"

![](/files/0SLBCPKvq2OffXgAl0z2)

สวิตช์ I2C เปลี่ยนเป็นมาสเตอร์ I2C (ไจโร/มาตรความเร่ง, ไดรเวอร์เซอร์โว, EEPROM ภายนอก) ตามค่าเริ่มต้น “Arduino” NyBoard ใช้ ATmega328P แบบออนบอร์ดเป็นชิปหลัก ใน “RPi” NyBoard ใช้ชิปภายนอกที่เชื่อมต่อผ่านพอร์ต I2C (SDA, SCL) เป็นชิปหลัก เลือก "Arduino" เสมอ แต่ถ้ารู้วิธีเชื่อมต่ออุปกรณ์ I2C จากชิปภายนอกสามารถเปลี่ยนโหมดได้

{% hint style="warning" %}
หมายเหตุ：

* บางครั้ง หากคุณไม่สามารถผ่านขั้นตอนการบูทเครื่องได้ เช่น พิมพ์ Init IMU\r\n ซ้ำๆ อาจจะมีการกดสวิตช์ไปที่ฝั่ง "RPi" โดยไม่ได้ตั้งใจ
* ก่อนอัปโหลดเฟิร์มแวร์ โปรดตรวจสอบว่าไม่ได้เชื่อมต่ออุปกรณ์ I2C ใดๆ กับอินเทอร์เฟซ I2C ของเมนบอร์ด มิฉะนั้น การอัพโหลดเฟิร์มแวร์จะล้มเหลว ตำแหน่งของอินเทอร์เฟซ I2C แสดงอยู่ด้านล่าง (ในช่องสีแดง):&#x20;

&#x20;                                   <img src="/files/vvcXvRauQtGg0veLrqP6" alt="" data-size="original">
{% endhint %}

### อัปโหลดเฟิร์มแวร์สำหรับ NyBoard ด้วยแอป Petoi Desktop

#### ดาวน์โหลดเวอร์ชันล่าสุดของ [Petoi Desktop APP](https://github.com/PetoiCamp/OpenCat/releases).&#x20;

{% hint style="info" %}
อาจจะมีปัญหาเรื่องความเข้ากันได้ของแพลตฟอร์ม OS กับคอมพิวเตอร์เครื่องอื่น

แต่ยังสามารถรันได้โดยตรงผ่านเทอร์มินัล:

1. ไปที่ OpenCat/pyUI/ ในเทอร์มินัล
2. ติดตั้ง pyserial, pillow สำหรับ python . สร้างสภาพแวดล้อมใหม่และพิมพ์ `pip3 install pyserial pillow`
3. รัน `python3 UI.py`
   {% endhint %}

สำหรับ **NyBoard** การอัปโหลดเฟิร์มแวร์ส่วนใหญ่จะเรียกแอปพลิเคชัน **avrdude** เพื่ออัปโหลดไฟล์เฟิร์มแวร์สำหรับเมนบอร์ด

#### การลง avrdude ใน Linux OS

{% hint style="info" %}
สำหรับผู้ใช้ระบบ Linux นอกจากขั้นตอนข้างต้นแล้ว คุณต้องทำตามขั้นตอนต่อไปนี้ด้วย:

1\. ติดตั้ง **avrdude**&#x20;

* Fedora : dnf install avrdude
* CentOS : yum install avrdude
* Debian / Ubuntu : apt install avrdude

2\. แก้ไขตัวแปร **avrdudeconfPath** ใน FirmwareUploader.py

* Fedora / CentOS : `avrdudeconfPath = '/etc/avrdude/'`
* Debian / Ubuntu : `avrdudeconfPath = '/etc/'`
  {% endhint %}

**เชื่อมต่อตัวอัปโหลด USB**

ตรวจสอบการเชื่อมต่อของ serial ports:

สำหรับขั้นตอนเฉพาะ โปรดดูที่ [Connect NyBoard section](https://docs.petoi.com/communication-modules/usb-downloader-ch340c#connect-nyboard) ในโมดูลตัวอัปโหลด USB

**หลังจากเชื่อมต่อตัวอัปโหลด USB อย่างถูกต้องแล้ว** ให้เปิด PetoiDesktopApp (สำหรับ Windows: UI.exe / สำหรับ Mac: Petoi Desktop App) แล้วเลือกรุ่นและภาษา

#### Menu bar in Petoi Desktop APP

<div align="left"><img src="/files/iI7VZwIve0Tf4ze71ZSy" alt="Model"> <img src="/files/pp7abv8lVNAuJYwSKjQD" alt="Language"> <img src="/files/GvzwqwPI300ZgUENZEhA" alt="Help"></div>

{% hint style="info" %}
&#x20;"Italian", "Français", "日语"  แปลเสร็จเรียบร้อยแล้ว. คุณสามารถมีส่วนร่วมในที่โค้ด GitHub ของเรา: OpenCat/pyUIC/translate.py
{% endhint %}

**คลิกปุ่ม "Firmware Uploader" เพื่อเปิดอินเทอร์เฟซ Firmware Uploader:**

<div align="left"><img src="/files/bmSa9E1wwzopUOGaqGUS" alt="Main interface"> <img src="/files/U3Jao57v8cZxXP8e2xDr" alt="Firmware Uploader interface"></div>

เลือกตัวเลือกที่ถูกต้องเพื่ออัปโหลดเฟิร์มแวร์ล่าสุดสำหรับ NyBoard

{% hint style="warning" %}
ซอฟต์แวร์ 1.0 จะทำงานไม่ถูกต้องกับ Joint Calibrator, Skill Composer และ API อื่นๆ ใช้เฉพาะเมื่อคุณต้องการใช้ CodeCraft (อินเทอร์เฟซการเข้ารหัสแบบกราฟิกโดย TinkerGen ซึ่งเป็นพันธมิตรของเรา)&#x20;
{% endhint %}

<table><thead><tr><th>Options</th><th width="216">Values</th><th>Note</th></tr></thead><tbody><tr><td>Software version</td><td><p>1.0</p><p>2.0 (default)</p></td><td>The 1.0 version เป็นรุ่นเก่า</td></tr><tr><td>Board version</td><td>NyBoard_V1_0 (default<em>)</em><br>NyBoard_V1_1<br>NyBoard_V1_2</td><td></td></tr><tr><td>Product</td><td>Bittle (default)<br>Nybble</td><td></td></tr><tr><td>Mode</td><td>Standard (default)<br>RandomMind<br>Voice<br>Camera</td><td>บางโหมดมีเฉพาะในผลิตภัณฑ์เฉพาะเท่านั้น</td></tr><tr><td>Serial port</td><td>The most recent</td><td>คุณอาจต้องค้นหาผ่านการลองผิดลองถูก</td></tr></tbody></table>

{% hint style="info" %}
ไม่มีความสัมพันธ์ระหว่างเวอร์ชันของบอร์ด (ฮาร์ดแวร์) และเวอร์ชันรหัส (ซอฟต์แวร์)
{% endhint %}

**ขั้นตอนการอัพโหลด**

หลังจากคลิกปุ่ม "อัปโหลด" กระบวนการอัปโหลดจะเริ่มขึ้นทันที แถบสถานะด้านล่างจะแสดงความคืบหน้าปัจจุบันตามเวลาจริง รวมถึงผลลัพธ์ในการรัน

หลังจากอัปโหลดเฟิร์มแวร์ **Parameters** สำเร็จแล้ว บอร์ดจะเริ่มรันโปรแกรมการกำหนดค่าด้วยตัวเอง หน้าต่างข้อความบางหน้าต่างจะปรากฏขึ้นตามลำดับเพื่อให้คุณยืนยันหรือยกเลิก:

* Reset joint offsets? (Y/N)

![](/files/BqbiNyNeoS8Z4Xg5fVXm)

เลือก "是(Y)" โปรแกรมจะรีเซ็ตพารามิเตอร์การสอบเทียบเซอร์โวทั้งหมดเป็นศูนย์ และแถบสถานะจะอัปเดตกระบวนการที่เกี่ยวข้องและผลลัพธ์ตามเวลาจริง

เลือก "否(N)" โปรแกรมจะข้ามขั้นตอนนี้ไป

{% hint style="info" %}
สำหรับซอฟต์แวร์เวอร์ชัน 1.0 จะมีหน้าต่างข้อความเตือน "Update Instincts? (Y/N)" ปรากฏขึ้นดังนี้:

![](/files/6X1NaYXpARTyq0yorlxY)

เลือก "是(Y)" โปรแกรมจะรีเซ็ตพารามิเตอร์การสอบเทียบเซอร์โวทั้งหมดเป็นศูนย์ และแถบสถานะจะอัปเดตกระบวนการที่เกี่ยวข้องและผลลัพธ์ตามเวลาจริง

เลือก "否(N)" โปรแกรมจะข้ามขั้นตอนนี้ไป

หากคุณอัปโหลดซอฟต์แวร์เวอร์ชั่นนี้เป็นครั้งแรก อย่าลืมเลือก "是(Y)"!

สำหรับซอฟต์แวร์เวอร์ชัน 2.0 ตัวเลือกนี้จะถูกประมวลผลโดยอัตโนมัติเป็น Y
{% endhint %}

* Calibrate IMU? (Y/N)

![](/files/Osed5PsM2pELmpMXbEpO)

เลือก "是(Y)" โปรแกรมจะปรับเทียบไจโรสโคป (IMU) และแถบสถานะจะอัปเดตกระบวนการที่เกี่ยวข้องและผลลัพธ์ตามเวลาจริง

เลือก "否(N)" โปรแกรมจะข้ามขั้นตอนนี้ไป

{% hint style="danger" %}
หมายเหตุ:&#x20;

1. ตรวจสอบให้แน่ใจว่าเมนบอร์ดอยู่ในตำแหน่งแนวนอนก่อนคลิกปุ่ม "是(Y)"
2. เมื่ออัปโหลดเฟิร์มแวร์เวอร์ชันนี้เป็นครั้งแรก อย่าลืมคลิกปุ่ม "是(Y)"!
   {% endhint %}

เมื่อทำตามขั้นตอนทั้งหมดเสร็จสิ้น หน้าต่างข้อความจะปรากฏขึ้นว่า "Parameter initialization complete!" คุณต้องกดยืนยันเพื่อขั้นตอนถัดไป

![](/files/cZc6Q3pUtVMLV0HtOvP1)

หลังจากการอัปโหลดเสร็จสิ้น แถบสถานะจะอัปเดตผลลัพธ์ที่เกี่ยวข้อง เช่น การอัปโหลดเฟิร์มแวร์สำเร็จหรือล้มเหลว หากการอัปโหลดสำเร็จ จะมีหน้าต่างข้อความ "การอัปโหลดเฟิร์มแวร์เสร็จสมบูรณ์!" จะปรากฏขึ้นพร้อมกัน

![](/files/PlpkM4gSZgXIll4CiPXw)

{% hint style="info" %}
หมายเหตุ:&#x20;

1. เมื่อคุณเปิดซอฟต์แวร์และอัปโหลดเฟิร์มแวร์เป็นครั้งแรก โปรแกรมจะอัปโหลดเฟิร์มแวร์ "**พารามิเตอร์**" ก่อน แล้วจึงอัปโหลดเฟิร์มแวร์ "**ฟังก์ชันหลัก**" หากคุณอัปโหลดซ้ำหลังจากอัปโหลดสำเร็จ โปรแกรมจะอัปโหลดเฉพาะเฟิร์มแวร์ "**ฟังก์ชันหลัก**" ตราบใดที่คุณแก้ไขตัวเลือก "**โหมด**" เท่านั้น
2. หาก **NyBoard** ไม่ได้เชื่อมต่อกับแบตเตอรี่และเปิดอยู่ คุณจะได้ยินเสียงท่วงทำนองลดหลั่นซ้ำๆ ซึ่งแสดงว่าแบตเตอรี่เหลือน้อยหรือไม่ได้เชื่อมต่อ คุณต้องเชื่อมต่อแบตเตอรี่และเปิดเครื่อง
   {% endhint %}

หากคุณมีประสบการณ์ในการเขียนโปรแกรม Arduino IDE โปรดดูที่ Upload Sketch For NyBoard


---

# 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://docs.petoi.com/thai/desktop-app/undefined-1.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.
