Sef Yazılım Proje konuşalım

TickerEye

Masanızda duran, takip ettiğiniz fiyatları gösteren küçük bir ekran. Yazılımın tarayıcıda değil, otuz iki bitlik bir işlemcide çalıştığı iş.

DONANIM
ESP32-S3 · PSRAM · HUB75 RGB matris panel
FIRMWARE
ESP-IDF · PlatformIO · Arduino uyumluluk katmanı
UYGULAMA
Flutter eşlik uygulaması (iOS + Android)
DURUM
Geliştirme — çalışan prototip mevcut

Ekrandaki kayma

Prototipte can sıkıcı bir kusur vardı: görüntü ara ara yatay olarak atlıyor, satırlar kısa süreliğine kayıyordu. Düzensizdi, bu yüzden tekrar üretmesi de zordu.

RGB matris panellerin ekranı yoktur — her an bir satır aydınlatılır ve göz bunu bütün bir görüntü olarak birleştirir. Bunu yapan kesme rutini mikrosaniye düzeyinde gecikmeye duyarlıdır. Rutin zamanında çalışamazsa görüntü kayar.

Sebep koddaki bir mantık hatası değildi. İşlemcinin komutları ve salt okunur verisi harici bellekten (PSRAM) okunuyordu; bu erişim yeterince öngörülebilir değil. Kesme rutini kendi erişimini beklerken zamanlamayı kaçırıyordu.

Çözüm koda değil, derleme yapılandırmasına yazıldı

Proje Arduino IDE'den PlatformIO + ESP-IDF'e taşındı. Kodun kendisi neredeyse aynı kaldı — Arduino API'leri korundu — ama artık ESP-IDF kaynaktan derlendiği için kritik seçenekler açıkça belirtilebiliyor: komutların ve salt okunur verinin dahili bellekten çalışması ve kesme rutininin IRAM'de kalması sdkconfig.defaults dosyasına yazıldı. Arduino IDE bu ayarları değiştirmeye izin vermiyordu.

Kayma bir daha görünmedi.

Ara yol da vardı: ekranı yavaşlatmak veya parlaklığı düşürmek kaymayı seyrekleştiriyordu. Bu, sorunu çözmek değil görünmez kılmaktı — ve ilk sıcak günde geri gelirdi.

Kutudan çıkınca ne oluyor

Cihazın kullanıcısı geliştirici değil. Bu yüzden ilk açılışta cihaz kendi geçici Wi-Fi ağını kuruyor; telefondaki eşlik uygulaması bağlanıp ev ağının bilgisini veriyor. Kablo yok, seri port yok, terminal yok.

Uzaktan güncelleme ilk günden içeride. Sahaya çıkmış bir cihaza sonradan güncelleme yolu eklemek, kutuları geri toplamak demektir.

Cihaz yazılımı mı gerekiyor?

Prototipiniz varsa ona bakarız, yoksa neyin mümkün olduğunu konuşarak başlarız.