Skip to content
Tutorial emka
Menu
  • Home
  • Debian Linux
  • Ubuntu Linux
  • Red Hat Linux
Menu

Cara Membuat OTA Update (Over The Air Update) di Raspberry Pi W

Posted on March 13, 2024

Pada tutorial kali ini kita akan mengimplementasikan bootloader untuk Raspberry Pi Pico W yang memungkinkan pengunggahan kode program melalui WiFi (“Over The Air”). Cara paling mudah untuk menggunakannya adalah dengan menyertakan repositori ini sebagai submodule dalam aplikasi yang ingin kita dapatkan pembaruan melalui WiFi.

Contoh proyek menggunakan picowota dapat ditemukan di https://github.com/usedbytes/picowota_blink

Cara termudah untuk membangun picowota itu sendiri adalah:

mkdir build

cd build

export PICOWOTA_WIFI_SSID=picowota

export PICOWOTA_WIFI_PASS=password

export PICOWOTA_WIFI_AP=1

cmake -DPICO_BOARD=pico_w -DPICO_SDK_PATH=/path/ke/pico-sdk ../

make

Uji coba library PicoWOTA

Pertama, tambahkan picowota sebagai submodule ke proyek kita:

git submodule add https://github.com/usedbytes/picowota

git submodule update –init picowota

git commit -m “Tambahkan submodule picowota”

Kemudian, modifikasi CMakeLists.txt proyek kita untuk menyertakan direktori picowota:

add_subdirectory(picowota)

picowota dapat terhubung ke jaringan WiFi yang ada (secara default) atau membuat satu, dalam kedua kasus dengan SSID dan kata sandi yang diberikan.

kita dapat menyediakan informasi berikut sebagai variabel lingkungan atau mengaturnya sebagai variabel CMake:

PICOWOTA_WIFI_SSID # SSID jaringan WiFi

PICOWOTA_WIFI_PASS # Kata sandi jaringan WiFi

PICOWOTA_WIFI_AP # Opsional; 0 = terhubung ke jaringan, 1 = membuatnya sendiri

Selanjutnya, kita dapat membangun binary aplikasi mandiri (cocok untuk pembaruan melalui picowota ketika sudah ada di Pico) atau binary gabungan yang berisi bootloader dan aplikasi (cocok untuk flashing pertama kali):

picowota_build_stkitalone(nama_executable_kita)

picowota_build_combined(nama_executable_kita)

Mengunggah Kode Melalui picowota

Setelah picowota bootloader terinstal di Pico kita, kita dapat menggunakan alat https://github.com/usedbytes/serial-flash untuk mengunggah kode ke dalamnya.

Selama Pico berada dalam bootloader picowota (yaitu karena tidak ada kode aplikasi yang valid terunggah, atau aplikasi kita memanggil picowota_reboot(true);), kita dapat mengunggah file .elf aplikasi yang dibangun oleh picowota_build_stkitalone():

serial-flash tcp:192.168.1.123:4242 nama_executable_kita.elf

Setelah mengunggah kode, jika berhasil, Pico akan melompat ke aplikasi yang baru diunggah.

Cara Kerjanya

Ini berasal dari bootloader Pico non-W saya, https://github.com/usedbytes/rp2040-serial-bootloader, yang saya tulis dalam sebuah blog post: https://blog.usedbytes.com/2021/12/pico-serial-bootloader/

Kode bootloader berusaha menghindari “brick” dengan menyimpan CRC dari kode aplikasi yang diunggah. Jika CRC tidak cocok, maka aplikasi tidak akan dijalankan dan Pico akan tetap berada dalam mode bootloader picowota. Ini seharusnya membuatnya cukup kuat terhadap kesalahan dalam transfer, dll.

Recent Posts

  • Apa itu Cosmic Desktop: Pengertian dan Cara Pasangnya di Ubuntu 26.04?
  • Apa Itu Auvidea X242? Pengertian Carrier Board Jetson T5000 dengan Dual 10Gbe
  • Elementary OS 8.1 Resmi Rilis: Kini Pakai Wayland Secara Standar!
  • Apa Itu Raspberry Pi Imager? Pengertian dan Pembaruan Versi 2.0.3 yang Wajib Kalian Tahu
  • Performa Maksimal! Ini Cara Manual Update Ubuntu ke Linux Kernel 6.18 LTS
  • Ubuntu 26.04 LTS Resmi Gunakan Kernel Terbaru!
  • Apa Itu AI Kill Switch di Firefox? Ini Pengertian dan Detail Fitur Terbarunya
  • Apa Itu Platform Modular Intel Alder Lake N (N100)? Ini Pengertian dan Spesifikasinya
  • Apa Itu Armbian Imager? Pengertian Utilitas Flashing Resmi untuk Perangkat ARM Kalian
  • Apa Itu OpenShot 3.4? Pengertian dan Fitur LUT Terbaru untuk Grading Warna
  • Flatpak 1.16.2: Sandbox Baru untuk GPU Intel Xe dan VA-API
  • Apa Itu EmmaUbuntu Debian 6? Pengertian Distro Ringan Berbasis Trixie untuk PC Lawas
  • Apa Itu LocalSend? Pengertian dan Definisi Solusi Transfer File Lintas Platform
  • Apa Itu Microservices Playbook untuk AI Agent? Ini Definisi dan Strategi Penerapannya
  • Apa Itu Firefox AI Engine? Definisi dan Pengertian Strategi Baru Mozilla
  • Apa Itu Toradex Luna SL1680? Definisi System-on-Module dengan Kekuatan AI Terjangkau
  • SparkyLinux 2025-12 ‘Tiamat’ Dirilis dengan Debian Forky, Kernel 6.17
  • Apa Itu SnapScope? Ini Pengertian dan Cara Kerjanya di Ubuntu
  • Apa Itu Mixxx Versi 2.5.4? Ini Pengertian dan Pembaruannya
  • Linux Kernel 6.19 RC1 Dirilis
  • Ini Dia ESP32 P4: IoT RISC-V dengan Layar AMOLED dan LoRa, Perangkat Handheld Inovatif
  • Apa Itu HealthyPi-6? Solusi Open Source untuk Akuisisi Biosignal
  • Jetson THOR Industrial PC: 25Gbe Networking dan Bisa Pakai Kamera GMSL2
  • Azul Systems Akuisisi Payara Java Server
  • PC Kentang Jadi Ngebut? Coba GRML 2025, Distro Debian Ringan dengan Kernel 6.17!
  • “Listrik Gratis” dari Solar Panel Cuma Mitos?! Ini Sisi Gelap PLTS
  • Samsung Galaxy Z-Fold: Uji Jatuh Bebas yang Mengguncang Keandalan Lipatannya
  • Google One 2026: Apa yang Akan Jadi Fitur Utama dan Harga yang Diharapkan?
  • Apa Itu Error 0x800704f8? Ini Pengertian dan Cara Mengatasinya
  • Android Akhirnya Dapat GPS Darurat di India! Setelah Hampir 10 Tahun
  • Jelang Natal 2025 Fireworks.AI Beri Update Baru di NVIDIA Nemotron 3? Ini Penjelasan Lengkapnya
  • Apa Itu Elestio VibeCoder? Ini Pengertian dan Penjelasan Lengkapnya
  • Apa Itu Elestio Get A Team? Ini Pengertian Karyawan AI Digital
  • Apa itu RunPod? Ini Pengertian dan Tutorial Cara Deploy Pod Pertamamu
  • Apa Itu Migrasi Pod di RunPod? Ini Pengertian dan Cara Kerjanya
  • Gila! 574 Penjahat Siber Diciduk Interpol di Afrika, Kok Bisa Jaringannya Segede Ini?
  • Apa Itu Regulasi Drone Asing FAA? Ini Pengertian dan Implikasinya
  • Apa Itu Insiden Data Breach Nissan? Ini Kronologi dan Penjelasannya
  • Apa Itu Skandal Instacart? Pengertian Dark Pattern dan Refund 940 Miliar
  • Apa Itu Kerentanan UEFI? Pengertian Celah Keamanan DMA pada Booting Awal
©2025 Tutorial emka | Design: Newspaperly WordPress Theme