Arduino Leonardo ile ESP8266 Firmware Güncelleme

Konu ile ilgili çok faydalı ve detaylı makaleler bulunuyor ama tüm derlemeleri bir araya getirmeden ESP8266 üzerinde firmware güncelleme işlemini başlatamadım. Bu yüzden başarılı bir güncelleme için uyguladığım adımları buraya yazma gereksini mi duydum. Tabi Google arama sonuçlarında gösterirse 🙂

Öncelikle Arduino Leonardo (Arduino Mega 2560 klon ile de denendi) ve ESP8266 arasındaki kablolamayı anlatmak gerekirse; ESP8266’nın çalışması için gereken bağlantıdan haricen cihazın kendini firmware update’ine hazırlayabilmesi için GPIO0 pininin resimdeki gri kabloda görüldüğü gibi topraklanması gerekiyor.

Arduino IDE yazılımında Tools menüsü altında ilgili COM portunu ve kullanacağınız kartın modelini seçerek sistemi aktif hale getirebilirsiniz.

Bu bağlantıyı yaptıktan sonra Arduino IDE yazılımı ile aşağıdaki kodları complile etmek gerekiyor. Kodlar IDE yazılımı içerisinde File > Examples > Communication > SerialPassthrough adımlarından da ulaşabilirsiniz.

 

 

Bu kodlar USB portu üzerindeki Serial Converter ile Arduino üzerindeki Hardware Serial (Rx, Tx pinleri) üzerindeki dataların doğrudan birbiri üzerinden aktarılmasını sağlıyor. Kablo bağlantıları yapıldıktan sonra güncellemenin tamamlanacağı belirtilmiş ama ben denemelerimde başarılı olamadım. Eğer her adım doğru şekilde yapılandırıldı ise Arduino IDE üzerindeki Serial Monitor ile AT komutuna cevap alabilmeniz gerekir ve sonuç aşağıdaki gibi olmalıdır.

Arduino Leonardo USB üzerindeki seri port haricinde Digital 0 ve 1 pinlerinde donanımsal serial port bulundurmaktadır ve Yukarıdaki kodlar ile bu portları aktif hale getirmemiz gerekiyor. 

AT

OK

 

Resimde görüldüğü gibi sağ alt köşedeki değerleri de seçmek gerekiyor. Aksi halde ya bozuk karakterler görülecektir veya hiç cevap alınamayacaktır. Tabi benim sürecimde herşeye bu kadar rahat ulaşamadım, örneğin Arduino Mega klon kullandığımdan dolayı üzerinde CH340 USB Uart çipi bulunuyor. Windows 10 bu driver’ı otomatik tanıyor ama aşağıdaki link üzerinden ilgili driver’ı yükledikten sonra Serial Monitor ile cevap alabildim.

CH340 Driver

Ayrıca Arduino Mega klon üzerindeki Rx1 ve Tx1 pinlerinin etiketlemesi ters yapılmış ve eğer Serial1 kullanmayı düşünüyorsanız o kısımdaki pinleme işlemi tam tersi şeklinde yapmanız gerekiyor.

AT+GMR

Komutu ile sorgu çalıştırdığınızda  00170901 üzerinde bir versiyon bilgisi alıyorsanız; Serial Monitor üzerinden aşağıdaki adımları takip ederek güncelleme işlemi AT komutlarıyla yapabilirsiniz. Kartlarımdan biri başarılı şekilde güncellendi. En önemli ayrıntı ise, bu yöntem 4Mbit(256 + 256) modüller üzerinde uygulanamıyor. Modülü alırken dikkat etmediğiniz bir ayrıntı ise -ki ben sonradan öğrendim- AT+RST komutunu çalıştırdığınızda satırların sonunda bu bilgiye ulaşabilirsiniz.

AT+CWMODE=3

Modül Access Point ve Station moduna geçiyor.

AT+RST

Aygıtı yeniden başlatıyoruz.

AT+CIPMUX=1

Bu komut ile modül çoklu TCP/IP bağlantılarına izin veriyor.

AT+CWJAP=”SSID”,”Password”

Ağımızda var olan kablosuz bağlantıya katılıyoruz. SSID ve Password kısımlarında büyük ve küçük harflere dikkat etmemiz gerekiyor.

AT+CIPSTART=id,type,addr,port

AT+CIPSTART=4,TCP,google.com,80

Eğer bağlantı başarılı şekilde sağlandıysa yukarıdaki kodlar ile bağlantıyı test edebiliriz. Eğer Connection Successed uyarısını aldıysak son adıma geçebiliriz. Bu adım test için yapıldığından uygulamak zorunda değilsiniz.

 AT+CIUPDATE

Bu komut çalıştırıldığında ekranda sırasıyla:

+CIPUPDATE:1

+CIPUPDATE:2

+CIPUPDATE:3

+CIPUPDATE:4

Bilgileri görülecektir ve bir kaç dakika sürecektir. Eğer sonunda ERROR mesajını almadıysanız güncelleme başarılı şekilde tamamlanmış demektir.

Bu işlemler sonunda firmware güncelleme işlemi başarısız olduysa diğer yöntem ile doğrudan bilgisayar üzerinden güncelleme yapılabilir.

Yukarıda anlatılan bağlantı şekli ve Arduino üzerine compile ettiğimiz kodlar ile devam ederek bir Flash yazılımı yardımı ile bu süreç tamamlanabilir. Denemelerim sonunda tamamen Çince olan ESP8266Flasher  (tıklayarak indirebilirsiniz) yazılımını kullanmaya karar verdim. 

Güncelleme: Çinçe versiyon zaman içinde sıkıntı çıkardığından aynı arayüze benzer hem de İngilizce olan başka bir NodeMCUFlasher‘ı indirdim. Resimler de bu uygulamaya göre güncellenmiştir. 

En güncel dosyaları buradan indirebilirsiniz.

Resimde belirtilen linke tıklayarak firmware dosyalarını indirin.

İndirilen ZIP dosyasının içindeki bin klasörü içerisinde tüm ilgili dosyalara ulaşabilirsiniz. Yukarıda resimde görüldüğü gibi dosyalar sırasıyla eklenmeli ve sağ taraftaki değerler tanımlanmalıdır.

Arduino’nun bağlı bulunduğu seri port seçildikten sonra Flash(F) butonuna tıklayarak yükleme işlemini başlatabilirsiniz. Güncelleme tamamlandığında sol alt köşede yeşil bir simge belirecektir. Programı kapatarak güncelleme işlemini tamamlayabilirsiniz. Modülü kapatıp, toprağa (GND) bağlanmış olan GPIO0 pinini serbest bırakıp tekrar modülü açtığımızda yeni firmware devreye girmiş olacaktır.

 

 

4 Comments:

  1. Şahin KAHRAMAN

    Benim elimde ESP-07 modül var ve burdan gördüklerimle update işlemine başladım lakin her defasında 0X7E00 kısmına gelince hata verdi ve devam etmedi işlem. hatayı nerde yaptığımı bulamadım. Yardım edereseniz sevinirim.

    • Merhaba, makaleyi ESP8266-01 için yazmıştım. Burada belirtilen hex değerler model numarasına ve flash sürümüne göre değişiklik göstermektedir. https://www.espressif.com/sites/default/files/ap/ESP8266_AT_Bin_V1.7.zip adresinden son sürümü indirdiğinizde bin\at klasörü içerisinde Readme.md dosyasında elinizdeki sürüme göre hex değerlere ulaşabilirsiniz. Ayrıca Arduino üzerinden cevap alabiliyorsanız internet bağlantısı için bağlantı ayarlarını yaptıktan sonra AT+CIUPDATE komutu ile modülü doğrudan internet üzerinden de update edebilirsiniz.

      • Şahin KAHRAMAN

        Cevapladığınız için teşekkür ederim.
        Arduino ile At komutuna cevap alamıyorum. Baund rate i değiştirip 38400 veya 9600 yaptığımda, ilk açıldında 25 30 anlamsız karakter çıkıyor, sonrası gelmiyor. Md uzantılı dosyayı telefonumda açtım ancak evde pc de deneme fırsatım olmadı.

        • Baud rate’i 115200’e getirip tekrar deneyin. Eğer anlamsız da olsa anlamsız karakterler görüyorsanız bağlantıda sıkıntı yok demektir. Makaledeki Arduino kodlarını kopyala yapıştır ile yüklediyseniz, burada da Serial 115200 hızında başlatılmıştır.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.