15 Kartlık Dev Karşılaştırma: Arduino Pi Performans Testi

Hobi elektroniği ve kodlama tutkunları olarak yıllardır Uno ve Nano başta olmak üzere birbirinden farklı Arduino board’larla çalıştık ve projelerimizi gerçekleştirdik. Ben de projelerimde çok çeşitli Arduino board’lar kullandım ve zaman içinde elimde bolca board birikti.

Çinli Atmel Atmega328 kopyası mikrokontrolcü LGT8F328P‘nin 32 MHz’de çalışabildiğini duyunca dergicilik zamanlarımdan gelen dürtülerim bana elimdeki Arduino uyumlu board’larla karşılaştırmalı performans testi yapmam gerektiğini söyledi!

Yukarıdaki fotoğrafta poz veren farklı Arduino modelleri bu testte kozlarını paylaşacaklar.

Teste katılan kartları saymak gerekirse;

  • Arduino Uno (1 orijinal, 1 DIP klon ve 2 SMD CH340 klon)
  • Arduino Uno Mini Limited Edition (orijinal)
  • Arduino Mega 2560 (1 orijinal ve 1 klon)
  • Arduino Nano R3 (klon)
  • Arduino Nano Every (orijinal)
  • Arduino Nano 33 BLE (orijinal)
  • Arduino Leonardo (klon)
  • LGT8F328P Nano (klonun klonu!)
  • Deneyap Kart (ESP32-WROVER-E)
  • Deneyap Mini (ESP32-S2)
  • ESP32 Dev Kit (ESP32-WROOM-32, 4 farklı kart)
  • NodeMCU V3 (ESP8266)
  • Raspberry Pi Pico (1 orijinal B1, 1 tane de 4 MB B2 klon)
  • STM32 Blue Pill (STM32F103C8)
  • Adafruit Trinket M0 (Atmel ATSAMD21E18)

Bu test için geçmişte bilgisayar işlemcilerinin performanslarını ölçme yöntemlerimizden biri olan Pi hesaplama testinin Arduino versiyonunu buldum. 10 yıl kadar önce Steve Curd tarafından hazırlanmış sketch kodunu epey elden geçirdim ve ESP32 gibi farklı kartlarda da sorunsuz çalışabilecek hale getirdim. Kullandığım sketch kodunu makalenin en sonunda inceleyebilir ve indirebilirsiniz.

ESP32’nin 80 MHz’deki testinden bir an

Tüm kartları bu sketch kodu ile 1 milyon adım ile test ettim ve farklı frekanslarda çalışabilenleri de ayrı ayrı ölçtüm. Böylece yoğun iş yükü ihtiyaçları için hangi kartları seçebileceğimiz ortaya çıkmış oldu.

Arduino Uno ve Mega klonları orijinalleri ile birebir aynı performans verdiği için ayrı ayrı listelenmediler.

Aşağıdaki grafikte kartların 1 milyon yaklaşımı tamamlama sürelerini görüyoruz. Süreler saniye cinsinden ve düşük olan daha iyi sonuç.

Çalışma frekansının yanında yıldız (*) olan ölçümler kartın varsayılan frekansı dışındaki hızlardaki ölçümleri. Böylece ESP8266 ve ESP32’yi aynı frekansta karşılaştırma fırsatımız oluyor.

Pi Performans Testi Sonuçları (Düşük olan daha iyi) (*=varsayılan dışı frekans)

EK TESTLER:
– ESP32-S3 240 MHz: 3461!
– ESP32-C3 160 MHz: 5203
– Arduino UNO R4 Minima 48 MHz: 22250
– Arduino UNO R4 WiFi 48 MHz: 22293

Grafikten anlaşılacağı üzere Pi performans testi mikrokontrolcünün çalışma frekansına doğrudan bağlı. ESP32 kartlar 240 MHz’lik canavar işlemcileri ile doğal olarak testte çok baskınlar. Espressif’in ilk mikrokontrolcüsü ESP8266 bile 160 MHz’de oldukça iyi sonuç elde edebiliyor.

133 MHz’lik Pi Pico ve 48 MHz’lik Trinket M0’ın daha düşük frekanslı rakiplerinden bile geride kalmalarının nedeninin genelde MicroPython veya CircuitPython için iyileştirilmiş UF2 altyapısına sahip olmalarından kaynaklandığını tahmin ediyorum.

Arduino Nano ve Uno’lara gelecek olursak, grafiğin altlarında kalmaları çok doğal. 16 MHz frekansındaki Atmega328 işlemcilerinin artık ilkel kalmış mimarileri nedeniyle daha fazlasını beklemek yanlış olurdu. Nano Every’deki Atmega4809 işlemcisi küçük bir farkla da olsa yeni mimarinin avantajını bize gösteriyor.

Arduino Mega 2560’ın Uno’ya göre biraz yavaş kaldığını görmek ilginç oldu. Belki de o kadar fazla sayıda pini yönetmeye çalışırken yoruluyordur 🙂

Testin en dikkat çeken kartı ise Çinlilerin Atmel kopyası LGT8F328P oldu. 32 MHz hızında çalışan bu mikrokontrolcü boyundan büyük işler başarıyor. Üstelik 16 MHz’deki performansı bile Nano Every’den çok daha iyi.

Arduino’ların performanslarının temelde çalışma frekanslarına bağlı olduğunu görmüştük. Peki bu kartların birim frekanstaki saf performansları nasıl? Tüm kartları 16 MHz’e indirip test etme şansımız yok, ancak ilk grafikteki verileri yeniden hesaplayabiliriz.

Aşağıdaki grafikte ilk grafikteki sonuçların testteki en düşük frekans olan 16 MHz’e göre yeniden düzenlenmiş değerlerini görüyoruz.

16 MHz’e göre yeniden hesaplanmış sonuçlar (düşük olan daha iyi)

EK TESTLER:
– ESP32-S3 240 MHz: 51915!
– ESP32-C3 160 MHz: 52030
– Arduino UNO R4 Minima 48 MHz: 66750
– Arduino UNO R4 WiFi 48 MHz: 66879

Çinli kopyamız LGT8F328P bizi burada da şaşırtıyor. 16 MHz’e göre dengelenmiş sonuçlarda ESP32’ler ve Uno/Nano gibi kartlar birbirlerinden küçük farklarla ayrılırken her fırsatta hor gördüğümüz Çinli dostumuz bariz bir farkla liderliği ele geçirmiş durumda.

Deneyap Mini’deki ESP32-S2 daha yeni bir çip olsa da aslında standart ESP32’nin biraz kırpılmış versiyonu. Zaten eski olan ESP8266 ile birlikte gerilerde kalmaları normal. STM32 Blue Pill de farklı altyapısıyla aşağılarda kalmış görünüyor.

Pi Pico ve Trinket M0 hakkında daha önce dikkat çektiğim durum bu tabloda kendisini açıkça gösteriyor. Bu olağanüstü yetenekli iki kart evrensel olma çabaları nedeniyle yavaş kalıyor gibi görünüyor ve saf performans bakımından Arduino yazılım altyapısında yavaş kaldıkları açık.

Donanım yetenekliliği ve performansı düşünülecek olursa ESP32 her alanda rakipsiz. Sahip olduğu Wi-Fi ve Bluetooth bağlantı özellikleri nedeniyle IoT projelerinin en uygun fiyatlı ve en yetenekli seçeneği Espressif çipleri.

Raspberry Pi Pico ise Arduino’nun ‘basit’ ihtiyaçlarını karşılamak için fazla yetenekli bir kart. Onun yeteneklerini PIO’larında ve çift çekirdekli yapısını kullanan projelerde açıkça görebilmek mümkün.

Temel hobi projeleri için ise Arduino Uno ve Nano kartları hala çok yeterli. Rakiplerine göre yavaşlar, hafızaları küçük ve ek özellikleri yok. Ancak kullanıldıkları çoğu proje için fazlasıyla yeterliler. Üstelik dökümantasyon bolluğu, donanım sorunsuzluğu, yazılım uyumluluğu ve örnek kod bulma kolaylıkları dikkate alındığında Atmega328’den kurtuluşumuz pek yok gibi görünüyor.

Makaleyi LGT8F328P’yi geliştiren Çinli mühendislere tebrikler diyerek sonlandıralım.

Arduino’da iyi olmak için öncelikle elektronikte iyi olmak gerekir. Türkiye’nin en iyi temel elektronik eğitim seti ARDUINO ÖNCESİ TEMEL ELEKTRONİK EĞİTİM VE DENEY SETİ‘ni keşfedin. Gereksiz bilgilerden arındırılmış basit ve eğlenceli anlatımla ELEKTRONİK öğrenin ve Arduino’ya METE HOCA farkıyla güçlü başlayın!

ÖZGÜN ve KULLANIŞLI projeler yapabilmek için ARDUINO’yu doğru öğrenmek gerekir. Arduino’ya güçlü başlamanın en iyi yolu ARDUINO’YA GÜÇLÜ BAŞLANGIÇ EĞİTİM VE PROJE SETİ‘dir. Arduino Uno üzerine kurulu olan set ile bu müthiş geliştirme platformunu tüm detaylarıyla anlayacak, başka hiçbir yerde bulamayacağınız inceliklerini öğrenecek ve en sık kullanılan Arduino sensör ve modüllerine aşina olacaksınız.

Arduino Pi Performans Testi sketch kodunu kopyalamak için pencerenin sağ üst köşesindeki butona tıklayabilir veya buraya tıklayarak ZIP dosyası olarak indirebilirsiniz.