MicroPython Firmware’i esptool.py ile Flashlama

MicroPython Firmware'i esptool.py ile Flashlama esptool

Bu rehberimizde, Espressif firmasının resmi komut satırı aracı olan esptool.py yazılımını kullanarak ESP32 ve ESP8266 kartlarına MicroPython bellenimini (firmware) nasıl sıfır hata ile yükleyeceğinizi (flash) gösteriyoruz. esptool.py; Windows, macOS ve Linux (Ubuntu/Debian) işletim sistemlerinde kararlı bir şekilde çalışan güçlü bir araçtır. Detaylı teknik açıklamalar ve parametre belgeleri için resmi esptool.py GitHub sayfasını da ziyaret edebilirsiniz.

Faydalı İpucu: Eğer komut satırı arayüzü yerine grafiksel bir ekran tercih ediyorsanız, bellenimi çok daha pratik yüklemenizi sağlayan uPyCraft IDE ile MicroPython Bellenim Yükleme Kılavuzu içeriğimizi inceleyebilirsiniz. Ancak uPyCraft IDE kurulumunda bağlantı sorunları yaşayan geliştiriciler için en güvenilir ve profesyonel alternatif komut satırından esptool.py kullanmaktır.

esptool.py Kurulum ve Bağımlılık Adımları

esptool.py programının sisteminizde çalışabilmesi için öncelikle güncel bir Python (Python 3.x) kurulumuna ihtiyacınız vardır. Windows bilgisayarınızda Python yüklü değilse, kurulum için hazırladığımız Windows Python 3 Kurulum Rehberi içeriğimizi inceleyebilirsiniz.

Python kurulumunu tamamladıktan sonra terminal (komut istemi) ekranını açın ve pip paket yöneticisi yardımıyla en son kararlı esptool.py sürümünü yükleyin:

pip install esptool

Teknik Detay: Bazı işletim sistemlerindeki Python yapılandırmalarında yukarıdaki komut hata verebilir. Bu durumda esptool kütüphanesini alternatif olarak şu komutlardan biriyle kurmayı deneyebilirsiniz:

pip3 install esptool
python -m pip install esptool
python3 -m pip install esptool

Komut satırı araçlarının donanımla kararlı haberleşebilmesi için arka planda setuptools kütüphanesine de ihtiyaç duyulur. Aşağıdaki komutla bu bağımlılığı da yükleyin:

pip install setuptools

Kurulum tamamlandıktan sonra aracın sistem tarafından tanındığını doğrulamak için terminale şu komutu girin:

python -m esptool

Kurulum başarılı ise, işletim sisteminizden bağımsız olarak esptool parametre listesini gösteren şu çıktıyı almalısınız:

esptool Parametre Listesi

esptool.py kurulumu doğrulandıktan sonra, bellenim yükleme işlemlerine geçebiliriz. Bu rehberimiz iki bağımsız donanım bölümüne ayrılmıştır; kullandığınız karta göre ilgili bölümü inceleyin:

  • 1. Bölüm: ESP32 MicroPython Bellenim Yükleme Protokolü
  • 2. Bölüm: ESP8266 MicroPython Bellenim Yükleme Protokolü

Hatırlatma: Karta MicroPython yükledikten sonra dilediğiniz zaman Arduino IDE üzerinden doğrudan yeni bir C/C++ kodu yükleyerek kartı orijinal haline döndürebilirsiniz. Kartı tekrar MicroPython ile programlamak istediğinizde ise bu sayfadaki adımları tekrarlamanız yeterlidir.

1. Bölüm: ESP32 MicroPython Bellenimini İndirme ve Flaşlama

ESP32 kartınız için en güncel ve kararlı bellenim imajını indirmek üzere resmi MicroPython İndirme Sayfası adresine gidin ve ESP32 bölümüne kaydırın.

Sayfadaki sürümler listesinden en son kararlı derlemeye (Release) ait .bin uzantılı dosyayı bilgisayarınıza indirin. Kararsız çalışan ve hata barındıran “Nightly” (gecelik) derlemeleri indirmekten kesinlikle kaçının:

ESP32 MicroPython İndirme Sürümleri

1. Seri Port (COM Port) Adının Belirlenmesi

Seri port adını bulmanın en pratik yolu, kartı bilgisayara bağladıktan sonra Arduino IDE’yi açıp Araçlar (Tools) > Port menüsünden aktif olan port adını (Örn: Windows için COM7, macOS için /dev/cu.usbserial-xxx) not edip Arduino IDE’yi kapatmaktır:

Arduino IDE Port Kontrolü

Önemli Teknik Sorun Giderme: Kartı bilgisayara bağlamanıza rağmen COM port listesinde göremiyorsanız, bu durum genellikle iki temel nedenden kaynaklanır: 1. Kart üzerindeki USB-seri dönüştürücü entegrenin (genellikle CP210x veya CH340) sürücüsü bilgisayarınızda yüklü değildir ya da 2. İçerisinde veri (data) hattı bulunmayan, sadece şarj amaçlı üretilmiş kalitesiz bir USB kablosu kullanıyorsunuzdur.

  1. COM port listesi tamamen boş görünüyorsa kartın üzerindeki micro-USB soketinin hemen arkasında yer alan dönüştürücü entegrenin ismini fiziksel olarak kontrol edin:
USB-to-UART Entegre Kontrolü

Entegre adını belirledikten sonra (genellikle CP2102 veya CH340’tır) ilgili üretici sayfasından işletim sisteminize uygun güncel sanal COM portu (VCP) sürücüsünü indirip bilgisayarınıza kurun:

CP2102 Arama Sorgusu

CP2102 USB-to-UART dönüştürücü sürücülerini Silicon Labs resmi indirme sayfasından güvenle edinebilirsiniz:

Silicon Labs Sürücü İndirme Ekranı

Sürücü yüklü olmasına rağmen kart listelenmiyorsa, kullandığınız USB kablosunun veri aktarımını (data transfer) desteklediğinden emin olun. Powerbank şarj kablolarında sadece enerji hatları bulunur, bu yüzden bilgisayarla donanım arasında veri iletişimi kurulamaz. Kaliteli bir USB veri kablosu sorununuzu anında çözecektir.

2. Terminal Üzerinden Bellenim Klasörüne Erişim

İndirdiğiniz MicroPython .bin dosyası bilgisayarınızın “İndirilenler” (Downloads) klasöründe yer alacaktır. Terminal ekranından `cd` komutunu kullanarak ilgili klasöre geçiş yapın:

cd ~/Downloads
Terminal Dizin Değiştirme

Dosyanın klasörde yer aldığını doğrulamak için dizindeki dosyaları listeleyin. Windows terminali için dir, macOS veya Linux terminali için ls komutunu çalıştırın:

ls -l
Dizin Listeleme

3. ESP32 Flash Belleğinin Donanımsal Olarak Silinmesi (Erase)

Hatalı veri yazımını önlemek amacıyla, bellenim yüklemeden önce kartın dahili flash belleğini tamamen sıfırlamamız gerekir. Kart bilgisayara bağlıyken üzerindeki BOOT / FLASH butonunu fiziksel olarak parmağınızla basılı tutun:

ESP32 Boot Butonu

Butonu basılı tutarken, terminalden şu bellek silme komutunu çalıştırın:

python -m esptool --chip esp32 erase_flash

Terminal ekranında “EraseFlash” işlemi başladığı anda BOOT butonunu bırakabilirsiniz. Saniyeler içinde silme işlemi başarıyla tamamlanacaktır:

Silme İşlemi Çıktısı

Hata Çözümü: Eğer “Connecting…” mesajından sonra noktalar çıkmaya devam eder ve bağlantı başarısız olursa, bu durum kartın flash moduna geçemediğini gösterir. Bu durumda USB kablosunu söküp takın ve BOOT butonuna daha kararlı bir şekilde basılı tutarak adımları tekrarlayın.

Bağlantı Hatası

4. esptool.py ile ESP32 MicroPython Belleniminin Yüklenmesi

Bellek sıfırlandıktan sonra, bellenim yazma aşamasına geçebiliriz. Komut satırındaki port parametresini kendi portunuzla, dosya adını ise indirdiğiniz güncel dosya adıyla değiştirerek şu komut şablonunu çalıştırın:

python -m esptool --chip esp32 --port PORTUNUZ write_flash -z 0x1000 DOSYA_ADINIZ.bin

Gerçekçi parametre değerleriyle yapılandırılmış örnek komut satırı:

python -m esptool --chip esp32 --port COM7 write_flash -z 0x1000 esp32-20220618-v1.19.1.bin

Komutu çalıştırmadan hemen önce kart üzerindeki BOOT / FLASH butonunu basılı tutun. Yazma (writing) işlemi başladığında butonu bırakabilirsiniz. İşlem bittiğinde terminalde şu başarı loglarını göreceksiniz:

Yükleme Başarı Çıktısı

ESP32 kartınız artık MicroPython bellenimi ile başarıyla güncellenmiştir!

2. Bölüm: ESP8266 MicroPython Bellenimini İndirme ve Flaşlama

ESP8266 kartınız için en güncel ve kararlı bellenim imajını indirmek üzere resmi MicroPython İndirme Sayfası adresine giderek ESP8266 bölümüne kaydırın.

Sayfadan en son kararlı derlemeye ait .bin uzantılı dosyayı bilgisayarınıza indirin (Örn: esp8266-20220618-v1.19.1.bin):

ESP8266 İndirme Sürümleri

1. Seri Port (COM Port) Adının Belirlenmesi

Port adını bulmak için kartı bilgisayara bağlayıp Arduino IDE’yi açın ve Araçlar (Tools) > Port menüsünden aktif port adını (Örn: COM4) not edip Arduino IDE’yi tamamen kapatın:

Arduino IDE Port Kontrolü

Önemli Teknik Sorun Giderme: Kartı bilgisayara bağlamanıza rağmen COM port listesinde göremiyorsanız, sürücü kütüphanelerini kurmak ve USB veri kablosu doğruluğunu test etmek için 1. Bölüm altındaki kılavuz adımlarını aynen uygulayın.

ESP8266 USB Dönüştürücü Entegre

2. Terminal Üzerinden Bellenim Klasörüne Erişim

Terminal ekranından `cd` komutunu kullanarak İndirilenler (Downloads) klasörüne geçiş yapın:

cd ~/Downloads

Dizindeki dosyaları listeleyip dosya adını kontrol edin:

ls -l

Dizinde indirdiğiniz ESP8266 bellenim dosyasını (Örn: esp8266-20220618-v1.19.1.bin) göreceksiniz.

3. ESP8266 Flash Belleğinin Donanımsal Olarak Silinmesi

Veri kararlılığı için flaşlamadan önce ESP8266 flash belleğini silmemiz gerekir. Kart bilgisayara bağlıyken üzerindeki FLASH / BOOT (veya GPIO0 pinini GND’ye çeken buton) düğmesini fiziksel olarak basılı tutun:

ESP8266 Flash Butonu

Butonu basılı tutarken terminalden şu sıfırlama komutunu çalıştırın:

python -m esptool --chip esp8266 erase_flash

Silme (erase) işlemi başladığı anda butonu bırakabilirsiniz. Kısa süre içinde ESP8266 flash belleği başarıyla temizlenecektir:

ESP8266 Silme Başarı Çıktısı

4. esptool.py ile ESP8266 MicroPython Belleniminin Yüklenmesi

Sıfırlama bittikten sonra bellenim yazma komutunu çalıştırabiliriz. ESP8266 donanım mimarisinde başlangıç adresi (write address) 0x0 olarak tanımlanmalıdır. Port adını ve dosya adını düzenleyerek şu komut şablonunu çalıştırın:

python -m esptool --chip esp8266 --port PORTUNUZ write_flash --flash_mode dio --flash_size detect 0x0 DOSYA_ADINIZ.bin

Örnek gerçekçi parametrelerle yapılandırılmış komut satırı:

python -m esptool --chip esp8266 --port COM4 write_flash --flash_mode dio --flash_size detect 0x0 esp8266-20220618-v1.19.1.bin

Komutu çalıştırmadan hemen önce kart üzerindeki FLASH / BOOT butonunu basılı tutun. Yazma işlemi başladığında butonu bırakabilirsiniz. İşlem tamamlandığında terminale şu başarı raporu düşecektir:

ESP8266 Flaşlama Başarı Logları

ESP8266 kartınız da MicroPython bellenimi ile başarıyla güncellenmiştir!

Genel Özet

Bu rehberimizde, Espressif’in resmi donanım programlama aracı olan `esptool.py` kütüphanesini kullanarak ESP32 ve ESP8266 mikrodenetleyicilerine MicroPython bellenimini (firmware) nasıl sıfır hata ile yükleyeceğimizi pratik adımlarla inceledik. Çevre birimi sürücüleri, seri port kısıtlamaları, bellek silme komutları ve doğru başlangıç adresleme parametrelerini (ESP32 için 0x1000, ESP8266 için 0x0) tüm detaylarıyla doğruladık. MicroPython ile IoT ve kablosuz haberleşme projelerinizi geliştirmeye başlamak için sitemizdeki diğer detaylı rehber içerikleri inceleyebilirsiniz.

Yorum yapma özelliği, forum tarafından gelen istek sebebiyle kapatılmıştır. Lütfen tartışmalar ve sorularınız için topluluk forumumuza katılın.