Esp32 Wroom32E Aktarım Hızı

frmman

Aktif Üye
Katılım
27 Haziran 2024
Mesajlar
860
ESP32 Wroom 32E serisi ile uğraşan ve network üzerinden hem download hem upload olarak özellikle TCP soket haberleşmesinde hangi hızlara ulaştınız.

Elimde Esp32 wroom ve Esp32C6 serisi iki test modülü var. Aynı ortam (hız testleri local ağda yapılıyor) aynı test kodları ile test yaptığımda Esp32 wroom tabiri yerindeyse hız konusunda yerlerde sürünüyor.

Hemen belirteyim IDF framework kullanıyorum.

Espressif in kendi IPERF test benchmark yazılımı ve örnek kodu ile Esp32C6 da 45..50 Mbit hızlara çıkabiliyorum. Daha önemlisi bu hızda stabil şekilde kalabiliyor.
Klasik esp32 ise stabil olmayan 4Mbit gibi (bu değişken bazen 10Mbit bazen 1Mbit ve altı) hızlarda başlayıp 1-2 saniye sonra 300kbitler seviyesine düşüyor.

IPERF haricinde test için yazdığım TCP soket haberleşme testlerinde esp32c6 15Mbit hızlarda stabil 200MB bir datayı rahat aktarabiliyor. Eski esp32 wroom 0,3Mbit bazende sıfıra düşen hızlarda sürünüyor.

IDF kullanlar için yüksek hızlar için önerilen LWIP ile ilgili çeşitli ayarlar var. Bunların sayısız değişik kombinasyonlarını denedim.

Pratik olarak yüksek bağlatı hızı ve yüksek boyutlu 50MB ve üstü veri aktarımı yapanlar varsa tecrübelerini paylaşmalarını rica ederim.


1778056422869.png
1778056459898.png
 
Merhaba hocam, test sonuçlarınız hiç şaşırtıcı değil; klasik WROOM-32 serisi ile TCP üzerinden stabil yüksek bant genişliği almak maalesef tam bir baş belası.

Eski nesil ESP32'lerde Wi-Fi 4 (802.11n) desteği var ve ağda en ufak bir gürültü olduğunda veya router tarafında gecikme yaşandığında, TCP'nin doğası gereği ACK paketleri yığılıyor ve throughput aniden o bahsettiğiniz 300kbit seviyelerine çakılıyor.

ESP32-C6'da ise 45-50 Mbit'leri stabil görmenizin ana sebebi çipin donanımsal olarak Wi-Fi 6 (802.11ax) desteklemesi. Wi-Fi 6'nın getirdiği OFDMA ve daha gelişmiş modülasyon yetenekleri sayesinde router ile olan paket alışverişi çok daha temiz yürüyor. Ben de yakın zamanda yerel ağda anlık yüksek boyutlu sensör ve görüntü verisi aktarmam gereken bir projede eski WROOM'ları çöpe atıp C6'ya geçtim. Test masasında doğrudan ESP32-C6 Supermini geliştirme kartını kullanıyorum. Üzerindeki ufacık seramik antenle bile klasik ESP32'nin harici antenli versiyonlarından daha stabil bir TCP soket performansı veriyor. C6'nın RF front-end'i gerçekten çok başarılı.

Özellikle 50MB ve üstü büyük veri paketlerini aktarırken C6 ile hızı daha da tepeye çekmek ve stabilitesini korumak için IDF menuconfig üzerinden şu LWIP konfigürasyonlarını denemediyseniz kesinlikle öneririm:

  1. TCP Window Scale: Component config -> LWIP -> TCP altında TCP window scaling (RFC 1323) özelliğini kesinlikle aktif edin. Yüksek hızlarda büyük veriler aktarırken hızın aniden düşmesini engelleyen en önemli ayar bu.
  2. TCP Send/Receive Window: Default değerler genellikle çok düşük kalır. RAM limitlerinizi zorlamayacak şekilde TCP_WND ve TCP_SND_BUF değerlerini en az 32768 veya 65536'ya çıkartın.
  3. AMPDU (Aggregated MAC Protocol Data Unit): Component config -> Wi-Fi altında TX/RX AMPDU ayarlarını aktif edip buffer sayısını (eğer IRAM'de yeriniz varsa) artırın.
Özetle klasik ESP32 ile LWIP tarafında takla da atsanız o donanımla stabil 15-20Mbit üstü hayal. C6 ile çok doğru yoldasınız
 

Forum istatistikleri

Konular
9,324
Mesajlar
149,095
Üyeler
3,855
Son üye
bueno

Son kaynaklar

Back
Top