1. Pengantar

OpenThread (OT) Google adalah implementasi Thread open source. Google telah merilis OpenThread untuk menyediakan teknologi jaringan yang digunakan dalam produk Google Nest secara luas kepada developer, sehingga mempercepat pengembangan produk untuk aplikasi rumah yang terhubung dan bangunan komersial. Dengan lapisan abstraksi platform yang sempit dan jejak memori yang kecil, OpenThread sangat portabel. Platform ini mendukung desain system-on-chip (SoC) dan network co-processor (NCP).
Spesifikasi Thread menentukan protokol komunikasi nirkabel perangkat-ke-perangkat berbasis IPv6 yang andal, aman, dan berdaya rendah untuk aplikasi rumah dan bangunan komersial.
Texas Instruments telah menerapkan OpenThread untuk keluarga perangkat SimpleLink™ CC27xx. Repositori ot-ti di GitHub berisi driver platform dan contoh aplikasi yang diperlukan untuk menjalankan OpenThread di MCU yang Terhubung SimpleLink Texas Instruments. CC2745R10-Q1 adalah MCU nirkabel IEEE 802.15.4 bersertifikasi Thread kelas otomotif (memenuhi syarat AEC-Q100) dari keluarga SimpleLink CC27xx TI.
Codelab ini menjelaskan cara mulai mengembangkan aplikasi OpenThread dengan papan evaluasi LaunchPad LP-EM-CC2745R10-Q1 dan repositori ot-ti. Gambar di bawah menunjukkan penyiapan hardware yang digunakan dalam codelab ini, dengan OT Border Router (OTBR) dan dua Thread Full Thread Device (FTD).

Yang akan Anda pelajari
- Cara menyiapkan lingkungan build ot-ti Texas Instruments.
- Cara membuat dan mem-flash biner OpenThread CLI ke papan LP-EM-CC2745R10-Q1.
- Cara menyiapkan Raspberry Pi sebagai OpenThread Border Router (OTBR) menggunakan ot-br-posix.
- Cara membuat jaringan Thread di OTBR.
- Penyiapan out-of-band perangkat ke jaringan Thread.
- Cara memverifikasi komunikasi Thread antar-node menggunakan perintah ping.
2. Prasyarat
Hardware
- 3 papan LP-EM-CC2745R10-Q1 LaunchPad: satu dikonfigurasi sebagai RCP yang terhubung ke Border Router, dan dua dikonfigurasi sebagai Perangkat Thread Lengkap (FTD).
CC2745R10-Q1 adalah MCU nirkabel IEEE 802.15.4 bersertifikasi Thread kelas otomotif (memenuhi syarat AEC-Q100) dalam keluarga SimpleLink CC27xx TI. LP-EM-CC2745R10-Q1 adalah Modul Evaluasi LaunchPad yang sesuai dan mendukung peran RCP, FTD, MTD, dan NCP Thread. CC2340R5 dengan LaunchPad LP-EM-CC2340R5 adalah opsi memori yang lebih rendah yang hanya dapat berfungsi sebagai RCP. Fitur ini tidak mendukung peran FTD, MTD, atau NCP. Jika Anda mengganti LP-EM-CC2340R5 untuk Board 1 (RCP), kedua board FTD harus tetap LP-EM-CC2745R10-Q1. - 3 probe debug LP-XDS110ET: satu per papan LaunchPad, digunakan untuk pemrograman dan debug melalui USB.
LP-XDS110ET adalah probe debug USB terpisah yang diperlukan untuk LaunchPad dalam faktor bentuk LP-EM. Alat ini mencakup dukungan EnergyTrace untuk pembuatan profil daya. LP-XDS110 adalah alternatif berbiaya lebih rendah yang menyediakan kemampuan pemrograman dan debug yang sama, tetapi tidak menyertakan EnergyTrace. Sebagai alternatif lebih lanjut, LaunchPad dengan probe debug XDS110 bawaan (seperti LAUNCHXL-CC26X2R1) dapat digunakan sebagai pengganti papan LP-EM dan probe debug terpisah. Lihat panduan konektivitas debug LaunchPad untuk mengetahui detailnya. - 3 kabel micro-USB untuk menghubungkan dan menyuplai daya ke papan LaunchPad dan probe debug.
- Raspberry Pi 4B atau yang lebih baru dengan Raspberry Pi OS yang terhubung ke internet melalui Ethernet. Perangkat ini akan dikonfigurasi sebagai host OT Border Router.

- Sistem host Linux atau macOS dengan minimal 2 port USB dan akses internet. Lingkungan build memerlukan shell yang kompatibel dengan Bash. Pengguna Windows harus menggunakan WSL2 (Windows Subsystem for Linux 2) dengan Ubuntu.
- Minimal satu kabel Ethernet untuk menghubungkan Raspberry Pi ke internet. Atau, Anda dapat menghubungkan Raspberry Pi ke Wi-Fi dan menggunakan
wlan0sebagai antarmuka infrastruktur — lihat langkah penyiapan OTBR untuk mengetahui detailnya.
Software
- Repositori TI ot-ti: https://github.com/TexasInstruments/ot-ti
- GNU ARM Embedded Toolchain 12.2 (diinstal secara otomatis oleh skrip bootstrap)
- SysConfig 1.27.0 (diinstal secara otomatis oleh skrip bootstrap)
- TI UniFlash: untuk mem-flash firmware ke papan LaunchPad
- ot-br-posix: https://github.com/openthread/ot-br-posix
- Terminal serial seperti PuTTY (Windows), minicom (Linux), atau screen (macOS/Linux)
3. Penyiapan Hardware
Codelab ini menggunakan tiga board LP-EM-CC2745R10-Q1:
- Board 1 (RCP): Menjalankan firmware
ot-rcp. Terhubung ke Raspberry Pi melalui USB sebagai co-prosesor radio untuk Router Pembatas. - Board 2 (FTD 1): Menjalankan firmware
ot-cli-ftdsebagai Perangkat Thread Penuh. - Board 3 (FTD 2): Menjalankan firmware
ot-cli-ftdsebagai Perangkat Thread Penuh.

Hubungkan setiap LaunchPad ke komputer host Anda melalui micro-USB. Koneksi USB menyediakan kemampuan daya dan debug/pemrograman melalui probe debug XDS110 di perangkat.
Setiap LP-EM-CC2745R10-Q1 muncul sebagai dua port serial virtual saat terhubung melalui USB: satu untuk antarmuka debug XDS110 dan satu untuk UART aplikasi. Saat membuka konsol serial, hubungkan ke port Application/User UART, bukan port Data Tambahan.

4. Penyiapan dan Build Repositori
Sistem build ot-ti menggunakan CMake dan memerlukan shell Bash. Semua perintah di bagian ini dijalankan di host Linux atau macOS (atau WSL2 di Windows).
1. Melakukan cloning repositori
$ git clone https://github.com/TexasInstruments/ot-ti.git $ cd ot-ti $ git submodule update --init
2. Jalankan skrip bootstrap
Skrip bootstrap menginstal dependensi yang diperlukan, termasuk toolchain GNU ARM dan SysConfig:
$ ./script/bootstrap
Skrip bootstrap memerlukan cmake, git, wget, dan alat build standar. Di Ubuntu/Debian, instal prasyarat dengan: sudo apt-get install -y cmake git make wget tar ninja-build
3. Membangun firmware untuk LP_EM_CC2745R10_Q1
Bangun semua image firmware untuk papan LP-EM-CC2745R10-Q1:
$ ./script/build LP_EM_CC2745R10_Q1
Target build LP_EM_CC2745R10_Q1 sesuai dengan perangkat CC2745R10-Q1 dalam keluarga CC27xx SimpleLink (inti Arm Cortex-M33F). Untuk melihat semua papan yang didukung, jalankan ./script/build tanpa argumen.
Setelah build berhasil, biner ELF ada di build/bin/:
$ ls build/bin/ ot-cli-ftd.out ot-cli-mtd.out ot-ncp-ftd.out ot-rcp.out
Dua gambar yang digunakan dalam codelab ini adalah:
ot-rcp.out: Firmware Radio Co-Processor untuk papan Border Router.ot-cli-ftd.out: Firmware CLI Perangkat Thread Lengkap untuk dua papan FTD.
Perangkat Thread Minimal Opsional: Jika ingin menjelajahi perangkat akhir yang tidak aktif, bukan Perangkat Thread Lengkap, Anda dapat mem-flash ot-cli-mtd.out sebagai pengganti ot-cli-ftd.out di Board 2 dan 3. MTD tidak merutekan traffic Thread dan dapat memasuki status tidur berdaya rendah, sehingga sangat cocok untuk aplikasi yang menggunakan daya baterai. Langkah-langkah pembentukan jaringan Thread dalam codelab ini sama untuk kedua jenis perangkat.
Network Co-Processor (NCP) Opsional: Biner ot-ncp-ftd.out mengimplementasikan arsitektur NCP, dengan stack OpenThread berjalan di perangkat dan prosesor host menggerakkannya melalui protokol Spinel. Penggunaan NCP berada di luar cakupan codelab ini. Lihat README NCP untuk mengetahui detailnya.
5. Flash Firmware
Gunakan TI UniFlash untuk mem-flash image ELF ke papan LaunchPad.
Mem-flash menggunakan UniFlash
- Buka UniFlash. Board LaunchPad yang terhubung ditampilkan di bagian Detected Devices karena fitur deteksi perangkat otomatis.Jika board Anda tidak terdeteksi secara otomatis, klik New Configuration, pilih target
LP-EM-CC2745R10-Q1, lalu pilih probe debug USB XDS110.
- Pilih Board 1 (yang akan di-flash dengan
ot-rcp.out), lalu klik Start. - Klik tombol Browse dan buka
ot-ti/build/bin/ot-rcp.out.
- Klik Load Image untuk mem-flash firmware. Area log menampilkan progres dan mengonfirmasi penyelesaian.
- Ulangi langkah 2–4 untuk Board 2 dan Board 3, dengan memilih
ot-ti/build/bin/ot-cli-ftd.outuntuk masing-masing papan.
Alternatif: Lakukan flashing menggunakan Code Composer Studio (CCS)
Code Composer Studio dapat digunakan sebagai alternatif UniFlash, dan juga menyediakan lingkungan debug lengkap:
- Download dan instal Code Composer Studio.
- Buat koneksi target (CCXML) untuk LP-EM-CC2745R10-Q1 dengan debugger XDS110. Lihat Panduan Pengguna CCS: Metode Manual.
- Mulai sesi debug tanpa project seperti yang dijelaskan dalam CCS User's Guide: Manual Launch.
- Hubungkan ke inti Arm Cortex-M33, lalu klik Load untuk memuat image ELF.
Konfigurasi CCXML default menggunakan cJTAG 2-kawat agar sesuai dengan konfigurasi jumper LP-EM-CC2745R10-Q1 default. Setelah memprogram melalui JTAG, lakukan siklus daya pada board untuk menghapus tanda berhenti saat booting.
6. Memprogram HSM
CC2745R10-Q1 berisi Modul Keamanan Hardware (HSM) yang harus disediakan sebelum menjalankan Thread atau firmware aplikasi aman lainnya. Jika board LP-EM-CC2745R10-Q1 Anda belum diprogram HSM-nya, selesaikan langkah ini sekarang.
Untuk memprogram HSM menggunakan UniFlash:
- Buka UniFlash dan pilih board LP-EM-CC2745R10-Q1 Anda dari Detected Devices.
- Buka panel pemrograman HSM dan muat image firmware HSM seperti yang ditunjukkan di bawah.

- Ikuti perintah di layar untuk menyelesaikan penyediaan HSM. Operasi dicatat di konsol output UniFlash.
Lihat Panduan Memulai Cepat CC2745R10-Q1 di TI Resource Explorer untuk mengetahui prosedur pemrograman HSM lengkap, termasuk jalur image firmware yang diperlukan dalam SimpleLink Low Power F3 SDK.
7. Ringkasan Firmware
Pada tahap ini, ketiga papan harus di-flash:
- Board 1:
ot-rcp.out: Putuskan koneksi dari komputer host dan hubungkan ke Raspberry Pi melalui USB. - Papan 2:
ot-cli-ftd.out: Tetap terhubung ke komputer host. - Papan 3:
ot-cli-ftd.out: Tetap terhubung ke komputer host.
Penyiapan hardware Anda akan terlihat seperti diagram di bawah. Board 1 terhubung ke Raspberry Pi sebagai co-prosesor radio untuk OTBR, sedangkan Board 2 dan 3 tetap terhubung ke komputer host untuk akses konsol serial.

8. Menyiapkan Konsol Serial untuk Perangkat ot-cli-ftd
LP-EM-CC2745R10-Q1 mengekspos UART aplikasi melalui USB pada 921600 baud.
Buka terminal serial ke port COM UART Aplikasi (Windows) atau perangkat /dev/ttyACM* (Linux/macOS) untuk setiap papan FTD menggunakan setelan berikut:
Parameter | Nilai |
Kecepatan (baud) |
|
Bit data |
|
Bit berhenti |
|
Paritas |
|
Kontrol alur |
|
Tips (Linux/macOS): Identifikasi node perangkat yang benar dengan menjalankan ls /dev/ttyACM* sebelum dan setelah mencolokkan board, lalu perhatikan entri mana yang muncul. Setiap LP-EM-CC2745R10-Q1 membuat dua entri: port bernomor lebih rendah adalah XDS110 debug UART dan port bernomor lebih tinggi adalah Application UART. Misalnya, jika papan membuat /dev/ttyACM0 dan /dev/ttyACM1, gunakan /dev/ttyACM1.
Tips (Windows): Buka Pengelola Perangkat dan lihat di bagian Ports (COM & LPT) untuk melihat dua port COM baru saat board dicolokkan. Port data debug XDS110 biasanya muncul terlebih dahulu, gunakan port COM kedua (bernomor lebih tinggi) untuk konsol aplikasi.
Tekan Enter di terminal untuk mendapatkan prompt CLI OpenThread (>). Untuk daftar lengkap perintah yang tersedia, lihat Referensi CLI OpenThread. Verifikasi bahwa FTD beroperasi:
> state disabled Done

Anda belum akan menyiapkan konsol serial untuk papan RCP. OTBR di Raspberry Pi berkomunikasi langsung dengan RCP. Pada langkah berikutnya, Anda akan mengonfigurasi Raspberry Pi sebagai Router Batas OpenThread.
9. Menyiapkan Raspberry Pi sebagai Border Router
OTBR dibangun dari ot-br-posix, project OpenThread Border Router open source. Border Router berjalan di Raspberry Pi dan menggunakan Board 1 (RCP) sebagai radio 802.15.4 melalui USB.
Penyiapan Raspberry Pi
- Flash Raspberry Pi OS (64-bit Lite atau Desktop) ke kartu SD Anda menggunakan Raspberry Pi Imager.
- Boot Raspberry Pi dan buka terminal (melalui SSH atau secara langsung).
- Update pengelola paket dan upgrade paket yang diinstal:
$ sudo apt-get update $ sudo apt-get upgrade -y
Mulai ulang Raspberry Pi setelah update sebelum melanjutkan: sudo reboot
Hubungkan Board 1 (RCP) ke Raspberry Pi
Hubungkan Board 1 (yang di-flash dengan ot-rcp) ke Raspberry Pi melalui USB mikro. Setelah koneksi, verifikasi apakah node perangkat muncul:
$ ls /dev/ttyACM* /dev/ttyACM0 /dev/ttyACM1
UART Aplikasi pada papan RCP biasanya /dev/ttyACM1 (UART debug XDS110 adalah /dev/ttyACM0). Verifikasi port mana yang merupakan UART aplikasi dengan memeriksa apakah port tersebut merespons saat agen OTBR dimulai pada langkah berikutnya. Jika perangkat serial USB lain terhubung, nomor node perangkat mungkin berbeda. Sesuaikan jalur dalam konfigurasi OTBR dengan tepat.
Membangun dan Menginstal ot-br-posix
Di Raspberry Pi, clone dan bangun ot-br-posix:
$ git clone https://github.com/openthread/ot-br-posix.git $ cd ot-br-posix $ ./script/bootstrap
Jalankan skrip penyiapan, dengan menentukan antarmuka Ethernet Anda sebagai antarmuka backbone (infrastruktur):
$ INFRA_IF_NAME=eth0 ./script/setup
eth0 adalah nama umum untuk antarmuka Ethernet berkabel. Jika Anda menghubungkan Raspberry Pi melalui Wi-Fi, bukan Ethernet, ganti eth0 dengan wlan0 (dan pastikan Pi sudah terhubung ke jaringan Wi-Fi Anda). Verifikasi nama antarmuka aktif dengan ip link show.
Skrip penyiapan membangun ot-br-posix dari sumber, menginstal layanan sistem otbr-agent dan otbr-web, serta mengonfigurasi stack jaringan. Proses ini biasanya memerlukan waktu 10–20 menit di Raspberry Pi 4B.
Mengonfigurasi Agen OTBR
Edit file konfigurasi agen OTBR untuk menentukan jalur perangkat RCP dan kecepatan transfer data:
$ sudo nano /etc/default/otbr-agent
Temukan baris OTBR_AGENT_OPTS dan perbarui untuk mereferensikan RCP Application UART:
OTBR_AGENT_OPTS="-I wpan0 -B eth0 spinel+hdlc+uart:///dev/ttyACM1?uart-baudrate=921600"
Ganti eth0 dengan wlan0 jika Raspberry Pi Anda terhubung melalui Wi-Fi.
OTBR_AGENT_OPTS="-I wpan0 -B wlan0 spinel+hdlc+uart:///dev/ttyACM1?uart-baudrate=921600"
LP-EM-CC2745R10-Q1 RCP Application UART beroperasi pada 921600 baud. Pastikan jalur perangkat (/dev/ttyACM1 dalam contoh ini) cocok dengan UART Aplikasi pada papan RCP Anda.
Mulai ulang agen OTBR untuk menerapkan konfigurasi:
$ sudo systemctl restart otbr-agent $ sudo systemctl enable otbr-agent
Pastikan agen sedang berjalan:
$ sudo systemctl status otbr-agent
Berinteraksi dengan Node RCP
Berkomunikasi dengan node RCP menggunakan alat ot-ctl:
$ sudo ot-ctl state disabled Done
Anda dapat memantau log agen OTBR untuk pesan koneksi dan status:
$ sudo journalctl -u otbr-agent -f
Jika perlu, antarmuka web OTBR tersedia di http:// dan memberikan tampilan grafis jaringan Thread.
Untuk menghentikan atau memulai ulang agen OTBR:
$ sudo systemctl stop otbr-agent $ sudo systemctl start otbr-agent
Pada tahap ini, Anda akan memiliki tiga konsol aktif:
- Terminal serial untuk Board 2 (
ot-cli-ftd 1) di komputer host. - Terminal serial untuk Board 3 (
ot-cli-ftd 2) di komputer host. - Sesi SSH atau terminal di Raspberry Pi untuk
ot-ctl(OTBR/RCP).
Sekarang Anda siap membentuk jaringan Thread.
10. Membuat Jaringan Thread
Menyiapkan RCP (OTBR)
Buat jaringan Thread baru dari shell ot-ctl di Raspberry Pi. Masukkan perintah berikut secara berurutan:
Indeks | Perintah | Deskripsi | Respons yang Diharapkan | ||
1 |
| Buat konfigurasi jaringan baru. | Selesai | ||
2 |
| Lakukan penerapan set data baru ke Set Data Operasional Aktif. | Selesai | ||
3 |
| Aktifkan antarmuka Thread. | Selesai | ||
4 |
| Aktifkan dan lampirkan operasi protokol Thread. | Selesai | ||
Tunggu 10 detik hingga antarmuka Thread muncul. | |||||
5 |
| Periksa status perangkat. Harus berupa leader. Kemungkinan status lainnya: offline, dinonaktifkan, terlepas, turunan, router, atau pemimpin. | pemimpin | ||
6 |
| Melihat konfigurasi jaringan. Nilai Anda akan berbeda. Catat channel, kunci jaringan, nama jaringan, dan PAN ID — informasi ini diperlukan untuk bergabung dengan FTD ke jaringan. | Active Timestamp: 1 | ||
Menambahkan FTD ke Jaringan Thread (Metode Out-of-Band)
Dengan metode aktivasi di luar band, Anda memberikan kredensial jaringan secara langsung. Di terminal serial untuk setiap papan FTD, masukkan perintah berikut menggunakan kunci jaringan dan saluran dari output set data OTBR di atas:
Indeks | Perintah | Deskripsi | Respons yang Diharapkan | ||
1 |
| Setel channel agar cocok dengan OTBR. Ganti | Selesai | ||
2 |
| Tetapkan kunci jaringan. Ganti dengan kunci jaringan OTBR Anda. Hanya kunci ini yang diperlukan untuk melampirkan. | Selesai | ||
3 |
| Lakukan penerapan set data baru ke Set Data Operasional Aktif. | Selesai | ||
4 |
| Aktifkan antarmuka Thread. | Selesai | ||
5 |
| Mengaktifkan dan melampirkan operasi protokol Thread. | Selesai | ||
Tunggu 20 detik saat perangkat bergabung dan mengonfigurasi dirinya sendiri. | |||||
6 |
| Periksa status perangkat. | child | ||
Karena sifat jaringan Thread yang dapat dikonfigurasi sendiri dan perangkat ini adalah Perangkat Thread Lengkap, salah satu atau kedua FTD pada akhirnya dapat menjadi router. Anda dapat memverifikasi peran saat ini kapan saja dengan perintah state.
Komunikasi Antara Perangkat Thread
Gunakan perintah ping untuk memverifikasi bahwa perangkat dapat berkomunikasi. Dapatkan alamat IPv6 setiap perangkat dengan ipaddr:
> ipaddr fd5c:c6b:3a17:40b9:0:ff:fe00:fc00 # Leader Anycast Locator (ALOC) fd5c:c6b:3a17:40b9:0:ff:fe00:1800 # Routing Locator (RLOC) fd5c:c6b:3a17:40b9:84e2:bae8:bd5b:fa03 # Mesh-Local EID (ML-EID) fe80:0:0:0:c449:ca4a:101f:5d16 # Link-Local Address (LLA) Done
Dari kedua FTD, ping OTBR menggunakan alamat RLOC-nya:
> ping fd5c:c6b:3a17:40b9:0:ff:fe00:1800 Done > > 16 bytes from fd5c:c6b:3a17:40b9:0:ff:fe00:1800: icmp_seq=3 hlim=64 time=30ms 16 bytes from fd5c:c6b:3a17:40b9:0:ff:fe00:1800: icmp_seq=3 hlim=64 time=52ms
Respons yang berhasil mengonfirmasi bahwa jaringan Thread beroperasi dan perangkat dapat berkomunikasi. Ulangi proses untuk melakukan ping ke setiap FTD dari OTBR (sudo ot-ctl ping ).
11. Selamat
Anda telah membuat jaringan Thread dengan papan TI CC2745R10-Q1.
Sekarang Anda tahu:
- Cara menyiapkan lingkungan build ot-ti Texas Instruments.
- Cara membuat dan mem-flash biner OpenThread CLI ke LP-EM-CC2745R10-Q1 LaunchPad.
- Cara menyiapkan Raspberry Pi sebagai OpenThread Border Router (OTBR) menggunakan ot-br-posix.
- Cara membuat jaringan Thread di OTBR.
- Penyiapan out-of-band perangkat ke jaringan Thread.
- Cara memverifikasi komunikasi Thread antar-node menggunakan perintah ping.
Bacaan Lebih Lanjut
Lihat openthread.io dan GitHub untuk berbagai referensi OpenThread, termasuk:
- Platform yang Didukung — temukan semua platform yang mendukung OpenThread
- Build OpenThread — detail lebih lanjut tentang membangun dan mengonfigurasi OpenThread
- Pengantar Thread — mencakup semua konsep Thread yang ditampilkan dalam codelab ini
- TI ot-ti Repository — Implementasi OpenThread TI untuk perangkat SimpleLink, dengan petunjuk build dan catatan rilis
- Halaman Produk CC2745R10-Q1 — datasheet perangkat, desain referensi, dan dokumentasi lainnya
- LP-EM-CC2745R10-Q1 LaunchPad — panduan pengguna papan evaluasi dan file hardware
- Referensi CLI OpenThread — ringkasan CLI OpenThread dan penggunaannya
- Perintah CLI OpenThread — referensi lengkap untuk semua perintah CLI OpenThread
- TI E2E Community — Thread & Zigbee — komunitas dukungan teknis untuk produk konektivitas nirkabel Texas Instruments