BeeCAN: CAN Bus Kablosuz Köprü Cihazı
Merhaba! Ben Feyzullah Baha SOYDABAŞ. Konya Teknik Üniversitesi’nde Bilgisayar Mühendisliği bölümünde okuyorum. Bu blog yazısında Elfatek ARGE bünyesinde stajyer olarak gelişimine katkı sunduğum BeeCan cihazından bahsedeceğim.
BeeCAN Nedir?
BeeCAN, birbirinden fiziksel olarak ayrı CAN Bus hatlarını araya kablo çekmeden birbirine bağlayan kablosuz bir köprü. Proje ilk etapta belirli bir hedefe veri aktaran oldukça sade bir çözüm olarak başladı. Bugün ise tek tuşla kablosuz eşleşebilen, çoklu cihazları gruplayabilen, şifreli ve paket kayıp toleransı özellikleri olan bir çözüme haline geldi.
Bu yazıda projenin ilk versiyonunu, karşılaştığımız teknik sorunları, mimariyi nasıl yenilediğimizi ve sahada aldığımız test sonuçlarını paylaşıyoruz.
İlk Sürüm Neydi?
BeeCAN’in ilk versiyonu, 8 sabit CAN ID’si üzerinden veri aktarımı yapan göreve özel bir yapıydı. Arduino çatısı üzerinde, dönemin popüler CAN Bus kütüphanelerinden biriyle çalışıyordu. Fakat ölçeklenmesi ve farklı sahalara uyarlanamazdı.
Karşılaştığımız temel kısıtlar şunlardı:
Tek hedefe bağımlılık: Sistem yalnızca sabit tek bir karşı cihazla konuşabiliyordu; birden fazla cihazı aynı hatta toplamak mümkün değildi.
Kablolu eşleşme zorunluluğu: İki cihazın birbirini tanıması için aynı fiziksel CAN hattına bağlanıp özel bir prosedürden geçmesi gerekiyordu.
Tolerans eksikliği: Kablosuz tarafta paket anında iletilemezse doğrudan düşüyor, tekrar deneme yapılmıyordu.
Eski altyapı: Kullanılan CAN kütüphanesi güncel ESP-IDF sürümleriyle uyumsuzdu ve mimarinin önünü tıkıyordu.
Güvenlik açığı: Veri hattında herhangi bir şifreleme veya imzalama bulunmuyordu.
Sistemi Güncelledik: Neler Değişti?
Bu kısıtları aşmak için sistemi donanımdan yazılım mimarisine kadar yapılandırdık:
ESP-IDF TWAI ve PlatformIO Geçişi: Eski kütüphaneleri geride bırakıp, doğrudan donanım katmanını yöneten güncel ESP-IDF TWAI (Two-Wire Automotive Interface) sürücüsüne geçtik. Projeyi bütünüyle PlatformIO ortamına taşıdık.
Kuyruk Tabanlı ESP-NOW: ESP-NOW gönderimlerine kuyruk mimarisi ve otomatik yeniden deneme mantığı ekledik. Kablosuz taraftaki anlık yoğunluk kaynaklı paket kayıplarını minimuma indirdik.
Kablosuz Eşleşme: Kart üzerindeki butona 10 saniye basılı tutulduğunda cihaz eşleşme moduna geçiyor ve etraftaki eşini kablosuz olarak otomatik buluyor.
Grup (Çoklu Cihaz) Desteği: Eşleşme mekanizması ortamdaki cihaz sayısına göre dinamik davranıyor. İki cihaz varsa doğrudan birebir hat kuruluyor; ikiden fazla cihaz varsa otomatik grup oluşturuluyor. Butona 5 saniyede 5 kez basılarak hangi cihazın toplayıcı (alıcı) olacağı belirlenebiliyor. Böylece tek bir ekrana birden fazla sensör modülünü bağlamak kolaylaştı.
Temiz Üyelik Yönetimi: Gruptan çıkarılan veya yeni bir eşleşmede dışarıda kalan cihaza özel bir onay paketi gönderilerek hattı kirletmesi önleniyor. Ağ dışındaki yabancı paketler ise doğrudan filtreleniyor.
Şifreleme ve İmzalama: Tüm veri trafiği şifreli akıyor ve her paket BeeCAN’e ait olduğunu doğrulayan bir imza taşıyor.
Kalıcı Hafıza (NVS) & Durum LED’leri: Eşleşmeler NVS üzerinde saklanıyor; sistem durumu, hata ve modlar LED göstergelerden anlık izlenebiliyor.
Saha Testleri
Sistemin sınırlarını görmek için hem açık alanda menzil hem de 1 metrede yoğun veri yükü altında stres testleri yaptık.
Menzil Testleri:
| Senaryo | Gönderim Aralığı | Ulaşılan Mesafe | Gözlem |
| Açık Görüş Hattı | 100 ms | 250 m | Fiziksel üst sınır. Paket kaybı sıklaşıyor ama iletişim sürüyor. Görüş kesilirse hat düşüyor. |
| Engelli Ortam | 100 ms | 100 m | İletişim var ancak kayıp oranı yüksek. |
| Optimum Alan | 5 ms | 50 m | En kararlı aralık. Engel olsa dahi kayıp oranı %1 – %2 bandında. |
Performans ve Stres Testleri:
| Gönderim Aralığı | Eşzamanlı ID | Toplam Paket | Kayıp / Durum | Sonuç Özeti |
| 100 ms | 6 | 5.000 × 6 | 0 | Sıfır Kayıp |
| 15 ms | 6 | 40.000 × 6 | ID başı 0 – 5 | İhmal Edilebilir (~%0,01) |
| 10 ms | 4 | 20.000 × 4 | 0 | Sıfır Kayıp |
| 5 ms | 2 | 40.000+ | 0 | Sıfır Kayıp |
| 2 ms | 1 | 400.000 | 135 | İhmal Edilebilir (~%0,03) |
| 10 ms (Karşılıklı) | 2×2 | 40.000 × 4 | 0 | Sıfır Kayıp |
| 10 ms | 6 | 40.000 × 6 | ID başı ~800 | Kritik Eşik (%2 Kayıp) |
| 5 ms | 4 | 40.000 × 4 | ID başı ~1.000 | Kritik Eşik (%2,5 Kayıp) |
| 5 ms (Karşılıklı) | 2×2 | 100.000 × 4 | ID başı ~10.000 | Yüksek Kayıp (%10 Kayıp) |
Kapanış
BeeCAN, tek bir sabit bağlantıya hizmet eden basit bir dönüştürücüden, kablosuz olarak eşleşen, çoklu cihaz desteği sunan ve saha testleriyle doğrulanmış güvenilirlik seviyesine sahip bir sisteme dönüştü. Menzil ve performans testleri, sistemin hem fiziksel mesafe hem de veri yükü açısından çalışma sınırlarını netleştirdi ve pratikte hangi ayarların en stabil sonucu verdiğini ortaya koydu.
Elde ettiğimiz bu saha verileri, BeeCAN’i yalnızca mevcut kısıtlarından kurtarmakla kalmadı; endüstriyel ortamlarda kablo karmaşasını bitirecek güvenilir ve ölçeklenebilir bir köprüye dönüştürdü. Sınırları netleşen mimarimizi, yeni optimizasyonlar ve saha geri bildirimleriyle geliştirmeye devam ediyoruz.