ESP32’de Gizli SDR Devrimi: ESPsoup, C5VRX ve ESP32-DATV ile Spektrum Analizi, 5.8 GHz Drone Kamerası İzleme ve DVB-S2 Dijital TV Yayını

Gömülü sistemler ve radyo frekansı (RF) dünyasında, yıllar önce sıradan bir DVB-T televizyon alıcı yongası olan RTL2832U içerisinde keşfedilen ham I/Q akış modunun başlattığı RTL-SDR devriminin birebir karşılığı bugün Espressif ESP32 ekosisteminde yaşanıyor. Milyonlarca IoT projesinde yalnızca paket tabanlı Wi-Fi ve Bluetooth bağlantısı için kullandığımız birkaç dolarlık ESP32 yongalarının, aslında üretim bandındaki kalibrasyon testleri için bırakılmış belgesiz (undocumented) bir Yazılım Tabanlı Radyo (SDR – Software-Defined Radio) sinyal yoluna sahip olduğu ortaya çıktı.

Sitemizde daha önce yayımladığımız ESP32 ve LR2021 LoRa Çiplerinde Keşfedilen Gizli SDR Modu: Mikrodenetleyicileri Yazılım Tabanlı Radyoya Dönüştürmek ve ESP32 Donanımında Gizli SDR Yeteneği ve 5 GHz Drone Video Alıcısı incelemelerimizde bu donanım keşfinin ilk adımlarını ele almıştık. Çok kısa bir süre içinde açık kaynak topluluğu bu çekirdek keşfi öyle bir noktaya taşıdı ki; artık tek bir ESP32 kartıyla çevredeki 2.4 GHz ve 5 GHz frekanslarını derinlemesine tarayıp kablosuz güvenlik/keşif (RF recon) analizi yapabiliyor (ESPsoup), sadece 7 adet direnç lehimleyerek 5.8 GHz FPV dronların kameralarına canlı bağlanabiliyor (C5VRX) ve hatta 2 dolarlık bir ESP32-C3 ile amatör uydular (QO-100) standartlarında DVB-S2 dijital televizyon yayını basabiliyoruz (ESP32-DATV).

Bu kapsamlı mühendislik rehberinde konuyu en alt silikon katmanından (çekirdekten) başlatarak son kullanıcı uygulamasına doğru adım adım inceleyeceğiz. Rehberi tamamladığınızda hem ESP32’nin Wi-Fi modemini baypas eden iç mimariyi tam olarak kavrayacak hem de her üç projeyi kendi atölyenizde sıfırdan kurup çalıştırabilecek konuma geleceksiniz.

Çekirdek Mimari: ESP32 Çiplerindeki Gizli SDR Yeteneği Bir Arka Kapı mı?

Toplulukta ilk duyulduğunda pek çok kişinin aklına “ESP32 çiplerinde donanımsal bir arka kapı (backdoor) mı var?” sorusu geldi. Konunun özünü anlamak için modern bir kablosuz mikrodenetleyicinin (SoC) radyo katmanına bakmamız gerekir. Normal çalışma modunda antenden giren 2.4 GHz veya 5 GHz radyo dalgaları şu zinciri takip eder:

  • RF Ön Katmanı (Analog Front-End): Antenden gelen zayıf sinyal Düşük Gürültülü Yükselteç (LNA) ile güçlendirilir, dahili Faz Kilitlemeli Döngü (PLL) sentezleyicisinin ürettiği yerel osilatör (LO) frekansıyla karıştırılarak (quadrature mixer) taban banda (baseband) indirilir ve analog alçak geçiren filtreden geçer.
  • Yüksek Hızlı Dahili ADC ve DAC: Taban banda indirilen analog I (In-Phase / Faz İçi) ve Q (Quadrature / Dik Fazlı) bileşenleri, çipin içindeki yüksek hızlı Analog-Dijital Dönüştürücü (ADC) tarafından saniyede 40 ila 80 milyon örnek (80 MSa/s) hızında sayısallaştırılır. Benzer şekilde verici (TX) modunda dijital örnekler 10-bitlik dahili Dijital-Analog Dönüştürücü (DAC) ile RF katmanına sürülür.
  • Sabit İşlevli Donanım Modemi (Wi-Fi / BLE PHY): Normal şartlarda geliştiriciler ADC’den çıkan bu ham I/Q sayısal örneklerini asla göremez. Sabit işlevli Wi-Fi (802.11) veya Bluetooth donanım modemi bu sinyalleri kendi içinde demodüle eder ve yazılıma yalnızca çözümlenmiş 802.11 çerçevelerini veya BLE paketlerini teslim eder.
ESP32 Wi-Fi Donanım Modemini Baypas Eden Ham I/Q SDR Sinyal Zinciri
ESP32’nin sabit işlevli Wi-Fi modemini baypas ederek dahili ADC/DAC katmanından doğrudan SRAM belleğe ham I/Q örnekleri aktaran tanı yolu ve SDR alıcı arayüzü (Kaynak: Hackaday / ESPARGOS)

ESPARGOS ekibi (ESP-SDR) ve bağımsız araştırmacı h0m3us3r (eSpDR), Espressif’in RF üretim testleri için sunduğu kapalı librftest kütüphanesindeki adctrig fonksiyonunu büyük dil modelleri (LLM) yardımıyla tersine mühendislikle analiz ettiğinde kritik bir gerçeği keşfetti: Yarı iletken fabrikasında (fab) silikon plaka (wafer) üzerindeki radyoların kalibrasyonunu yapmak amacıyla çipin içine özel tanı yazmaçları (diagnostic registers / MODEM_DIAG) yerleştirilmişti.

Bu tanı yazmaçları etkinleştirildiğinde, sabit işlevli Wi-Fi modemi tamamen baypas ediliyor (devre dışı bırakılıyor) ve ADC’den çıkan ham I/Q örnekleri doğrudan çipin dahili SRAM belleğine veya donanımsal çevre birimlerine (BitScrambler) akıtılıyor. Dolayısıyla bu yapı kötü niyetli bir “arka kapı” değil, çipin fiziksel radyo donanımını protokol kısıtlamalarından kurtarıp tamamen yazılımın emrine veren belgesiz bir donanım tanı arayüzüdür.

32-Bit Ham I/Q Bellek Formatı ve İki Bankalı Dairesel Tampon (Ring Buffer)

ESPARGOS/esp-sdr mimarisinde, modemin örnek döküm motoru (sample-dump engine) her karmaşık (complex) RF örneğini SRAM içerisine 32-bitlik tek bir kelime (word) olarak yazar:

  • Bit 0 – 9 (10-Bit İşaretli Q Örneği): Quadrature bileşeni (-512 ile +511 arası ikiye tümleyen tamsayı).
  • Bit 10 – 19 (10-Bit İşaretli I Örneği): In-Phase bileşeni (-512 ile +511 arası ikiye tümleyen tamsayı).
  • Bit 20 – 27 (8-Bit Kazanç İndeksi): Alıcı ön katmanının (LNA/VGA) o andaki kazanç tablosu (gain table) indeksini raporlar.
  • Bit 28 – 31 (4-Bit AGC Durumu): Donanımsal Otomatik Kazanç Kontrolü (AGC) sonlu durum makinesinin (FSM) iç durumunu gösterir.

Örneğin ESP32-C61 ve ESP32-C5 gibi yongalarda dahili SRAM bellek bankalara ayrılmıştır. Firmware, bu bankalardan ikisini sistem yığınından (heap) ayırarak bir dairesel tampon (ring buffer) kurar: Modem 1. bankaya 80 MSa/s hızında ham I/Q verisi yazarken, CPU 2. bankadaki tamamlanmış veriyi okuyup işler (FFT alır, demodüle eder veya USB üzerinden bilgisayara gönderir); ardından bankaların rolleri değiştirilir.

2.56 Gbps Veri Darboğazı Nasıl Aşılıyor?

Saniyede 80 milyon adet 32-bitlik örnek üretmek, SRAM içerisine 2.560 Mbit/s (2.56 Gbps) hızında veri yazılması demektir. Standart bir ESP32’nin USB Full-Speed (12 Mbit/s) veya SPI (80 Mbit/s) arayüzü bu veriyi olduğu gibi dışarı çıkaramaz. İşte inceleyeceğimiz üç proje bu mühendislik darboğazını üç farklı dahiyane yöntemle çözer:

  • ESPsoup Yaklaşımı (Akıllı Paket Yakalama ve Uçta Sinyal İşleme): Ham I/Q verisini sürekli USB’ye yığmak yerine, spektrum analizini (FFT), protokol çözümlemeyi (BLE, Wi-Fi, Remote ID, Zigbee) ve hatta analog video demodülasyonunu doğrudan ESP32-C5’in kendi üzerinde gerçekleştirir; telefona veya bilgisayara yalnızca işlenmiş sonuçları ve sıkıştırılmış akışı gönderir.
  • C5VRX Yaklaşımı (Sıfır-CPU Donanımsal Boru Hattı): Veriyi ne USB’ye çıkarır ne de CPU’ya yükler! MODEM_DIAG hattından gelen 40 MS/s akışı doğrudan çipin içindeki donanımsal BitScrambler birimine sokarak WBFM video demodülasyonunu donanımda yapar ve PARLIO üzerinden 6-bit direnç DAC pinlerine basar.
  • ESP32-DATV Yaklaşımı (Ters Yönde Doğrudan DAC Sentezi): Alıcı yerine verici (TX) yolunu kullanır; bilgisayardan USB üzerinden gelen sıkıştırılmış sembolleri (veya dahili Flash bellekteki videoyu) ESP32-C3 üzerinde Root-Raised-Cosine (RRC) filtresinden geçirip 8 MS/s hızında doğrudan 10-bit Wi-Fi DAC yazmaçlarına yazar.

Üç Büyük Projenin Karşılaştırması: ESPsoup, C5VRX ve ESP32-DATV

Aşağıdaki tablo, aynı çekirdek SDR keşfinden doğan ancak tamamen farklı mühendislik ihtiyaçlarına odaklanan bu üç açık kaynaklı projenin teknik yeteneklerini özetlemektedir:

Özellik / KriterESPsoup (espsoup.com)C5VRX (Twotoz/C5VRX)ESP32-DATV (SP8ESA/ESP32-DATV)
Temel Görev2.4 & 5 GHz Cep Tipi Spektrum Analizörü, Sinyal İstihbaratı (Recon) ve FPV TV AlıcısıUltra-Minimal, Sıfır-CPU 5.8 GHz Analog FPV Drone Video Alıcısı (VRX)2.4 GHz (13 cm) DVB-S / DVB-S2 Dijital Amatör Televizyon Vericisi (TX)
Gerekli MikrodenetleyiciESP32-C5 (Örn. Waveshare ESP32-C5-WROOM-1U veya Seeed XIAO ESP32-C5)Seeed Studio XIAO ESP32-C5ESP32-C3 (Örn. ESP32-C3 SuperMini, Rev 0.3+, 4 MB Flash)
RF Yönü (RX / TX)Yalnızca Alıcı (Receive-Only – Asla yayın yapmaz)Yalnızca Alıcı (Receive-Only)Yalnızca Verici (Transmit – RF Sinyal Üretir)
Frekans Kapsamı2.13 – 2.73 GHz ve 4.79 – 5.99 GHz (Çift Bant)5.362 – 5.945 GHz (48 Kanal 5.8 GHz Analog FPV Bandı)2.300 – 2.450 GHz (13 cm Amatör Bandı & QO-100 Uplink)
Ekstra Donanım İhtiyacıYok (Yalnızca USB-C veri kablosu ve telefon/PC)7 Adet Pasif Direnç (6-Bit DAC merdiveni + 200 Ω yük)Yok (Yalın ESP32-C3; harici kullanım için çıkış filtresi/PA önerilir)
Görüntü / Veri ÇıkışıWeb Tarayıcı (Web Serial) ve Android Uygulaması (USB OTG)Gerçek Zamanlı Analog CVBS (PAL/NTSC) Kompozit Video (FPV Gözlük/Monitör)RF Üzerinden DVB-S / DVB-S2 (QPSK, 8PSK, 16APSK, 32APSK) Yayını
Açık Kaynak LisansıFirmware: GPL-3.0 (ESP-SDR tabanlı)GPL-3.0-onlyPolyForm Noncommercial 1.0.0

ESPsoup: ESP32-C5 ile 2.4 ve 5 GHz Spektrum Analizörü, Kablosuz Keşif ve Cep TV’si

Almanya merkezli bağımsız geliştirici Peter Holzhauser (daha önce araçtan araca V2X iletişimini haritalayan V2X2MAP projesiyle tanınan araştırmacı) tarafından geliştirilen ESPsoup (GitHub: pit711/ESPsoup ve pit711/espsoup-firmware), yaklaşık 15–20 Euro değerindeki bir ESP32-C5 geliştirme kartını cebinizde taşıyabileceğiniz bir 2.4 GHz ve 5 GHz radyo tarayıcısına, protokol çözümleyiciye ve analog FPV televizyonuna dönüştürür.

ESPsoup ESP32-C5 Spektrum Analizörü ve Sinyal Tarama Arayüzü
ESPsoup uygulamasının Android telefon ve masaüstü tarayıcı üzerindeki canlı spektrum, şelale (waterfall) ve sinyal avcısı arayüzü (Kaynak: ESPsoup)

Neden özellikle ESP32-C5 kullanılıyor? Çünkü Espressif ekosisteminde hem 2.4 GHz hem de 5 GHz (Dual-Band Wi-Fi 6) radyosuna sahip ilk mikrodenetleyici ESP32-C5 modelidir. RTL-SDR.com incelemesinde de vurgulandığı üzere, klasik bir RTL-SDR (RTL2832U) dongle yalnızca 24 MHz ile 1.766 GHz arasını dinleyebilirken, ESPsoup tam da RTL-SDR’ın ulaşamadığı 2.13–2.73 GHz ve 4.79–5.99 GHz bantlarını kapsar.

Kablosuz Güvenlik, Sinyal İstihbaratı (RF Recon) ve Protokol Çözümleme Yetenekleri

Kullanıcıların ilk bakışta bir “pentest ve frekans analiz aracı” olarak nitelendirdiği ESPsoup, etik açıdan tamamen pasif dinleme (receive-only) prensibiyle çalışır; yani havaya hiçbir sinyal basmaz ve şifreli özel görüşmeleri değil, havada herkese açık yayınlanan (broadcast) protokol çerçevelerini ve spektral imzaları yakalar. Uygulamanın Scan (Tarama), Spectrum (Spektrum), Tools (Araçlar) ve Device (Cihaz) sekmelerinde sunduğu başlıca analiz yetenekleri şunlardır:

  • Drone Remote ID Çözümleme ve Pilot Konumu Haritalama: 2.4 GHz ve 5 GHz bantlarında Bluetooth LE, Wi-Fi Beacon ve Wi-Fi NAN üzerinden yayınlanan Drone Remote ID paketlerini gerçek zamanlı çözer; hem uçan dronun hem de kumandayı tutan pilotun GPS konumunu doğrudan harita üzerinde işaretler.
  • RC Kumanda ve Dijital FPV Link Sınıflandırma: Havadaki ExpressLRS (ELRS 2.4 GHz), FLRC, Ghost, Tracer, FrSky, FlySky, DSMX ve LoRa 2.4 GHz kumanda sinyallerini; ayrıca DJI OcuSync, HDZero ve Walksnail dijital video linklerini spektral dalga şekillerinden (burst classifier) otomatik tanır.
  • AirTag ve Fiziksel Takip Cihazı (Stalkerware) Avcısı: Saniyede 60 ila 120 BLE reklam paketini (BLE 2M ve Extended Advertising AUX dahil) yakalar; Apple AirTag, Samsung SmartTag, Tile ve Google takip cihazlarını tanır ve bir takip cihazı sürekli sizinle birlikte görünmeye devam ederse güvenlik uyarısı verir.
  • Wi-Fi Spektrum Denetimi ve Deauth Saldırı Tespiti: 2.4 GHz ve 5 GHz (5.75 GHz üstü kanallar dahil) 802.11b/g/a ağ adlarını (SSID), IEEE üretici MAC adreslerini (Vendor Lookup), ESP-NOW paketlerini, 24 saatlik gerçek kanal doluluk oranlarını ve ağ güvenliğini hedef alan Wi-Fi Deauthentication (ağdan düşürme) saldırılarını tespit eder.
  • Akıllı Ev, Endüstriyel IoT ve Otomotiv V2X Analizi: 2405–2480 MHz aralığındaki Zigbee, Zigbee Green Power ve Thread (IEEE 802.15.4) paketlerini, nRF24 modüllerini, Hoymiles güneş enerjisi mikro-inverterlerini, 2457 MHz ANT+ spor sensörlerini ve 5.855–5.925 GHz bandındaki ITS-G5 / 802.11p (Araçtan Araca V2X) trafik haberleşmesini çözümler.
  • Gizli Kamera / Böcek Bulucu ve GPS Isı Haritalı Yön Bulma (Find): “Cameras & bugs” modu, 2.4 GHz ve 5.8 GHz bantlarında hiç susmadan sürekli yayın yapan kablosuz vericileri tarar. Find (Bul) aracı, vericiye yaklaştığınızda alıcı kazancını 10 dB adımlarla otomatik kısarak doyumu (saturation) önler, sesli ton ipucu verir, “vücut gölgesi” (body shadow) pusula modu ve çevrimdışı OpenStreetMap arazi ısı haritasıyla (heatmap) sizi doğrudan vericinin bulunduğu noktaya götürür.
  • LTE / 5G NR Hücre Kimlikleri ve Kristal Kalibrasyonu: 2.11–2.17 GHz (Band 1) ve 2.62–2.69 GHz (Band 7) hücresel baz istasyonlarının fiziksel hücre kimliklerini (Cell ID) okur ve bu baz istasyonlarının yüksek doğruluklu frekansını referans alarak ESP32-C5 kartınızın kendi kristal osilatör hatasını otomatik kalibre eder.

ESPsoup TV ve Multi-TV: 52 Analog FPV Kanalını Canlı İzleme ve Kaydetme

ESPsoup 0.12.1 sürümüyle gelen Tools → TV özelliği, ESP32-C5 kartını hiçbir ek devre elemanı olmadan doğrudan bir analog video alıcısına çevirir. Raceband (R1–R8), Fatshark (F1–F8), Boscam A/B/E, Lowband (L1–L8) ve 2.4 GHz AV (AV1–AV4) tablolarındaki 52 alabilir kanalın tamamında (5362–5945 MHz ve 2414–2468 MHz) saniyede ~7.900 satır ve 24–28 fps hızında canlı görüntü verir.

ESPsoup TV ile 2.4 GHz ve 5.8 GHz Analog Kamera Görüntüsü Çözümleme
ESPsoup TV aracının canlı analog kamera ve FPV video sinyallerini doğrudan ESP32-C5 üzerinde demodüle ederek ekrana yansıtması (Kaynak: ESPsoup)

Video demodülasyonu tamamen ESP32-C5 üzerindeki ESPsoup firmware 0.7.1 içinde gerçekleşir; görüntü siyah-beyaz veya opsiyonel kaba PAL/NTSC renkli olarak izlenebilir, REC butonuyla kanal, frekans ve zaman damgası gömülü WebM video olarak kaydedilebilir ve son 30 saniye geriye dönük (replay) saklanabilir.

Multi-TV ve Multi-TT USB Hub Kuralı: Tek bir ESP32-C5 aynı anda tek bir analog kanalı dinler. Ancak bir yarışta Raceband R1–R8 kanallarının sekizini birden aynı ekranda izlemek isterseniz, bilgisayara veya tablete USB hub üzerinden 8 adet ESP32-C5 bağlayabilirsiniz! Burada çok kritik bir donanım detayı vardır: Her ESP32-C5 görüntüyü USB 2.0 Full-Speed (12 Mbit/s) hızında gönderir. Piyasadaki ucuz Single-TT (Tek Transaction Translator) USB hub’lar (örn. Terminus FE1.1s) tüm portları tek bir 12 Mbit/s (~1.1 MB/s) hattına sıkıştırdığı için görüntü çözünürlüğü düşer. Bu nedenle VIA VL817/VL822 veya Realtek RTS5411 gibi her porta ayrı 12 Mbit/s kanal açan Multi-TT çipli ve harici güç adaptörlü bir USB hub (örneğin StarTech ST4300USB3V2-UE veya TP-Link UH700) kullanılmalıdır.

ESPsoup Adım Adım Kurulum ve Uygulama Rehberi

  1. Donanım Seçimi ve Native USB Bağlantısı: Harici U.FL anten konnektörlü bir Waveshare ESP32-C5-WROOM-1U kiti veya Seeed Studio XIAO ESP32-C5 edinin. Kartın üzerinde iki adet USB-C portu varsa, CH340/CP2102 gibi yavaş UART köprü portunu değil, doğrudan çipe bağlı olan Native USB portunu veri aktarımı destekleyen bir kabloyla bilgisayarınıza veya USB OTG adaptörüyle Android telefonunuza takın.
  2. Tarayıcıdan Tek Tıkla Firmware Yükleme: Masaüstü Chrome, Edge veya Opera tarayıcınızda app.espsoup.com adresini açın (veya Android beta APK’sını kurun). Device → Firmware sekmesine gidin ve ESPsoup firmware 0.7.1 sürümünü yükleyin. Uygulama önce kartınızın mevcut flash yedeğini alır ve her yazma işlemini doğrular.
  3. Altın Ölçüm Kuralı (Uçak Modu): Telefonunuzla ölçüm yaparken telefonun kendi Wi-Fi ve Bluetooth vericileri ESP32-C5’e birkaç santimetre mesafede olduğu için spektrumu bastırır. Ölçüme başlamadan önce telefonunuzu Uçak Moduna (Airplane Mode) alın; USB OTG ve ısı haritası için GPS uçak modunda sorunsuz çalışmaya devam eder.
  4. Home Assistant Entegrasyonu: Tespit edilen AirTag uyarılarını, drone Remote ID verilerini veya spektrum olaylarını Device → MQTT menüsünden kendi MQTT broker’ınıza yönlendirerek Home Assistant Nedir? Açık Kaynak Akıllı Ev Otomasyonu altyapınızda anlık bildirim ve otomasyon tetikleyicisi olarak kullanabilirsiniz.

C5VRX: 7 Direnç ve Bir ESP32-C5 ile Sıfır-CPU 5.8 GHz Analog FPV Video Alıcısı

ESPsoup analog FPV videosunu USB üzerinden telefon veya bilgisayar ekranında gösterirken, FPV drone pilotlarının asıl ihtiyacı analog FPV gözlüklerin (Fat Shark, Skyzone vb.) veya saha monitörlerinin AV-In (RCA / 3.5 mm jak) girişine doğrudan sıfır gecikmeli CVBS kompozit video sinyali verebilen bağımsız bir alıcı modüldür (VRX). Geleneksel RX5808 modüllerinin stok sorunları ve yüksek fiyatlarına çözüm arayan geliştirici Leon (Twotoz), Twotoz/C5VRX (c5vrx.com) projesiyle bir Seeed Studio XIAO ESP32-C5 ve yalnızca 7 adet pasif direnç kullanarak tam donanımlı bir 5.8 GHz analog FPV video alıcısı inşa etti.

C5VRX Seeed Studio XIAO ESP32-C5 5.8 GHz Analog FPV Video Alıcısı
Seeed Studio XIAO ESP32-C5 ve pasif direnç DAC merdiveni ile oluşturulan 5.8 GHz analog FPV drone video alıcısı (Kaynak: Hackaday / C5VRX)

C5VRX-5 Sıfır-CPU (Zero-CPU) Sinyal İşleme Mimarisi

Hackaday ve CircuitDigest incelemelerinde büyük ses getiren C5VRX-5 mimarisinin en çarpıcı mühendislik başarısı, saniyede 40 milyon örneklik video akışını ana RISC-V işlemciyi (CPU) örnek yoluna hiç sokmadan tamamen donanım çevre birimleri arasında işlemesidir:

  • Wi-Fi 6 PHY MODEM_DIAG Yakalama (40 MS/s): ESP32-C5’in 5.8 GHz radyosu hedef FPV kanalına (48 kanal: Raceband, A, B, E, F, Lowband) kilitlenir. MODEM_DIAG tanı yolu üzerinden 40 MS/s hızında ADC örnekleri çekilir. Dahili I/Q yönlendirmesi dışarıdan kablo gerektirmeden çip içinde GPIO27 (kullanıcı LED’i hafifçe parlayabilir) ve GPIO2 üzerinden gerçekleşir.
  • Donanımsal BitScrambler Üzerinde WBFM Demodülasyonu: Ham örnekler GDMA üzerinden doğrudan ESP32-C5’in BitScrambler çevre birimine akar. Burada çalışan U80P64-R1 (veya izlemeli U85Q) geniş bant FM (WBFM) demodülatörü, dronun VTX vericisindeki frekans kaymalarını ve çoklu yol (multipath) parazitlerini telafi ederek PAL/NTSC kompozit video genlik değerlerini üretir.
  • PARLIO ve 6-Bit İkili Ağırlıklı Direnç DAC: Demodüle edilen 6-bitlik video örnekleri PARLIO (Paralel G/Ç) birimi tarafından 40 MHz saat hızında (TX40, 20 MS/s benzersiz kod çiftleri [D,D] olarak) D4–D9 GPIO pinlerine sürülür. Böylece orijinal renk patlaması (colour burst) korunur ve gözlük/monitör üzerinde ekran içi menü (OSD), otomatik kazanç kontrolü (LEVEL / KEEL / RSSI) ve 48 kanal tarayıcı çalışır.

C5VRX Donanım Kurulumu: 7 Dirençli 6-Bit DAC Bağlantı Şeması ve Değerleri

C5VRX DAC Kurulum ve Test Rehberi uyarınca devreyi delikli plaket (perfboard) üzerinde kurmak için yalnızca bir Seeed Studio XIAO ESP32-C5 ve 7 adet %1 toleranslı E24 metal film direnç (1/4 W veya daha küçük) yeterlidir. Altı direnç D4–D9 pinlerinden çıkıp tek bir ortak düğümde (VIDEO Çıkışı) birleşir; yedinci direnç (200 Ω) ise bu düğümden GND‘ye bağlanarak çıkış seviyesini belirler:

XIAO PiniESP32-C5 GPIODAC BitiDirenç Değeri (%1 E24)4 Bant Renk KoduMultimetre Test Voltajı (3.30V, Ekran Takılı Değilken)
D4GPIO23Bit 0 (LSB – En Düşük)8.2 kΩGri, Kırmızı, Kırmızı~31 mV
D5GPIO24Bit 13.9 kΩTuruncu, Beyaz, Kırmızı~64 mV
D6GPIO11Bit 22.0 kΩKırmızı, Siyah, Kırmızı~125 mV
D7GPIO12Bit 31.0 kΩKahverengi, Siyah, Kırmızı~251 mV
D8GPIO8Bit 4470 ΩSarı, Mor, Kahverengi~533 mV
D9GPIO9Bit 5 (MSB – En Yüksek)240 ΩKırmızı, Sarı, Kahverengi~1044 mV
GNDGNDYük Direnci (Load)200 Ω (VIDEO’dan GND’ye)Kırmızı, Siyah, KahverengiTümü Yüksek (ALL): ~2047 mV / Tümü Düşük: 0 mV
# Seeed Studio XIAO ESP32-C5 Üzerinde 6-Bit Pasif Direnç DAC Şeması
D4 (GPIO23) ──[ 8.2 kΩ ]──┐
D5 (GPIO24) ──[ 3.9 kΩ ]──┤
D6 (GPIO11) ──[ 2.0 kΩ ]──┤
D7 (GPIO12) ──[ 1.0 kΩ ]──┼───────────► CVBS VIDEO ÇIKIŞI (FPV Gözlük / Monitör AV-In Ucu)
D8 (GPIO8)  ──[ 470 Ω  ]──┤     │
D9 (GPIO9)  ──[ 240 Ω  ]──┘   [200 Ω]   (Yük direnci: VIDEO düğümünden GND'ye)
                                │
GND ────────────────────────────┴─────► GND (FPV Gözlük / Monitör AV-In Şase/Kalkan)

Kritik Lehimleme ve Kalibrasyon Adımları:

  1. Pin Sırasına Dikkat Edin: Direnç değerleri her adımda yaklaşık yarıya iner (8.2k → 3.9k → 2.0k → 1.0k → 470R → 240R). İki direncin yerinin karışması görüntüyü tamamen kesmez ancak şeritli ve bozuk kontrastlı bir görüntü üretir. D0–D3 ve D10 pinlerini boş bırakın.
  2. Web Flasher veya ESP-IDF 6.0.2 ile Yükleme: Masaüstü Chrome/Edge ile c5vrx.com üzerindeki Web Flasher’dan en güncel C5VRX-5 sürümünü doğrudan USB üzerinden yükleyin. Kaynak koddan derlemek isterseniz filtre ve DC düzeltme tablolarının çalışması için ESP-IDF 6.0.2 (tam libphy uyumu için) kullanın ve çalışan alıcıda kilitlenmeyi önlemek adına idf.py flash yerine deponun kendi aracını çalıştırın:
git clone https://github.com/Twotoz/C5VRX.git
cd C5VRX
idf.py build
python tools/flash.py /dev/ttyACM0 --check

# Multimetre ile DAC direnç merdivenini doğrulama (ekran takılı değilken mV ölçümleriyle):
python3 tools/dac_check.py --vdd 3310 --d4 30.8 --d5 64.3 --d6 125.4   --d7 250.9 --d8 529 --d9 1031 --all 2032 --none 0.2

Kontroller ve Uçuş Güvenliği Uyarısı: Kart üzerindeki BOOT butonuna kısa basmak kanalı değiştirir, 0.6 saniye basılı tutmak ise gözlük ekranındaki OSD Menüsünü (BAND, CHANNEL, SCAN, VIDEO, FILTER, CALIBRATE, OUTPUT 0.5x–5.0x, GAIN, DAC TEST) açar. İlk kurulumda drone VTX vericisi kapalıyken yerde CALIBRATE işlemini çalıştırın. C5VRX deneysel bir projedir; olası yazılım/sinyal kopmalarına karşı uçuş testlerini mutlaka pervaneler sökülüyken yerde doğruladıktan sonra ve görsel görüş hattı (VLOS) kuralları dahilinde gerçekleştirin.

ESP32-DATV ve ESP32-DATV-SA: Yalın ESP32-C3 ile 2.4 GHz DVB-S2 Dijital TV Vericisi

İlk iki projemiz ESP32’yi birer alıcı (RX) olarak kullanıyordu. Peki ya verici (TX) tarafı? Polonyalı radyo amatörü SP8ESA tarafından geliştirilen SP8ESA/ESP32-DATV (Hackaday İncelemesi ve FabScene Analizi), yalnızca 2 dolarlık yalın bir ESP32-C3 (örneğin ESP32-C3 SuperMini) kartını, harici hiçbir RF modülatör donanımı kullanmadan 13 cm amatör bandında (2300–2450 MHz) yayın yapan gerçek bir DVB-S ve DVB-S2 Dijital Amatör Televizyon (DATV) vericisine dönüştürdü!

ESP32-C3 Mikrodenetleyicisi ile 2.4 GHz DVB-S2 Dijital Amatör TV Yayını
ESP32-C3 yongasının dahili 10-bit Wi-Fi DAC birimine doğrudan I/Q sembolleri yazılarak gerçekleştirilen 2.4 GHz DVB-S / DVB-S2 dijital televizyon vericisi (Kaynak: Hackaday)

ESP32-C3 Üzerinde DVB-S / DVB-S2 Sinyal Sentezi Nasıl Çalışır?

Normalde uydudan televizyon yayınlarında kullanılan DVB-S ve DVB-S2 standartları, yüksek karmaşıklıkta İleri Hata Düzeltme (BCH + LDPC) ve çok seviyeli faz/genlik modülasyonu gerektirir. 13 cm amatör telsiz bandı (2.3–2.45 GHz), özellikle QO-100 (Es’hail-2) jeostasyoner amatör uydusunun Geniş Bant (Wideband) DATV Uplink (2400–2409.5 MHz) frekanslarını doğrudan barındırdığı için radyo amatörleri açısından altın değerindedir.

SP8ESA, ESP32-C3’ün ROM fonksiyonlarını ve Espressif radyo kütüphanelerini tersine mühendislikle inceleyerek çipin dahili 10-bit Wi-Fi DAC birimine yazılımdan doğrudan I/Q örnekleri yazmanın yolunu buldu:

  • PC Tarafı (FFmpeg + DVB-S/S2 Kodlama): Bilgisayar, bir video dosyasını veya canlı web kamerası görüntüsünü (/dev/video0) FFmpeg ile sabit bit hızlı (CBR) bir MPEG Transport Stream (TS) akışına dönüştürür, DVB-S veya DVB-S2 kodlamasını uygular ve oluşan sembolleri ESP32-C3’ün yerel USB (Native USB Serial/JTAG) portundan gönderir.
  • ESP32-C3 Tarafı (RRC Filtre + 8 MS/s Doğrudan DAC Yazımı): ESP32-C3 işlemcisi (%42 Assembly ile optimize edilmiş döngülerle) gelen sembollere 0.35 roll-off değerinde Root-Raised-Cosine (RRC) darbe şekillendirme filtresi uygular ve I/Q değerlerini 8 MS/s hızında doğrudan Wi-Fi DAC birimine yazar.
Modülasyon TürüDesteklenen StandartDesteklenen Sembol Hızları (kS/s)DAC Hızı ve Spektral Performans
QPSKDVB-S, DVB-S233, 66, 125, 250, 333, 500, 1000 kS/s (1 MS/s)Varsayılan genlik --amp 300; kesintisiz video ve ses çözümü.
8PSKDVB-S233, 66, 125, 250, 333, 500, 1000 kS/s (1 MS/s)Varsayılan genlik --amp 420; QO-100 WB varsayılan profili.
16APSKDVB-S233, 66, 125, 250, 333, 500, 1000 kS/s (1 MS/s)1 MS/s hızda 8 MS/s DAC (8 SPS); ilk imaj tepeleri ana sinyalin 27–28 dB altında.
32APSKDVB-S233, 66, 125, 250 kS/s250 kS/s hızda 8 MS/s DAC (32 SPS); ilk imaj tepeleri (±8 MHz) 39.8–40.3 dB altında, 0 TS hatası!

Türk Radyo Amatörü Katkısı: Bilgisayarsız Çalışan ESP32-DATV-SA (TA7W / Barış Dinç)

Orijinal SP8ESA/ESP32-DATV projesi yayın sırasında bir Linux bilgisayara bağlı olmayı gerektiriyordu. Türk radyo amatörü Barış Dinç (TA7W / OH2UDS) ve yATOLYE topluluğu tarafından geliştirilen barisdinc/ESP32-DATV-SA (Stand-Alone) (AMSAT-DL Forum Konusu) projesi, ESP32-C3’ü bilgisayara hiç ihtiyaç duymadan tek başına yayın yapan bağımsız bir DVB-S2 vericisine/beacon’ına dönüştürdü!

  • Dahili Flash Bellekten 35 Saniyelik Döngüsel Video Yayını (v0.3.0-sa): ESP32-C3’ün 4 MB dahili flash belleğinde 0x110000 adresinde 2.9 MB büyüklüğünde özel bir video bölümü ayrıldı. SPI1 birimi arka planda flash bellekten 64 baytlık bloklar okuyup 512 baytlık RAM dairesel tamponunu doldururken, verici döngüsü 330.579 kS/s sembol hızında (sembol başına 480 yerine 484 CPU çevrimi kullanarak flash okuma gecikmesini emerek) 22 dB MER kalitesinde canlı H.264 video ve MP2 ses yayını yapar!
  • Kurulumsuz Tarayıcı İçi Video Dönüştürücü: Bilgisayarınıza FFmpeg veya Python kurmanıza bile gerek kalmadan, barisdinc.github.io/ESP32-DATV-SA/converter/ sayfasındaki WebAssembly tabanlı dönüştürücü ile kendi MP4 videonuzu tarayıcıda video.bin formatına çevirip Espressif esptool-js üzerinden doğrudan 0x110000 adresine yazabilirsiniz.
  • OLED Ekran ve Enkoder Ön Paneli: ESP32-C3 SuperMini üzerine 128×64 I2C OLED ekran (SDA: GPIO0, SCL: GPIO1), EC11 döner enkoder (CLK: GPIO5, DT: GPIO6, SW: GPIO7) ve 3 adet buton (K1: GPIO10, K2: GPIO20, K3: GPIO21) bağlayarak frekansı (2300–2450 MHz), çıkış gücünü (-40..+4 dB), sembol hızını ve çağrı işaretinizi (Service Name) doğrudan cihaz üzerinden değiştirebilirsiniz.

ESP32-DATV Kurulumu ve Komut Satırı / GUI ile Canlı Yayın Adımları

Geliştirme ortamınızı sıfırdan hazırlıyorsanız temel sürücü ve kart yapılandırması için ESP32 Arduino Kurulumu Rehberi yazımıza göz atabilirsiniz. ESP32-DATV projesini Linux üzerinde ESP-IDF 6.2.0 ve Python 3 ile derleyip çalıştırmak için aşağıdaki komutları uygulayın:

# 1. Depoyu klonlayın ve ESP32-C3'e firmware yükleyin
git clone https://github.com/SP8ESA/ESP32-DATV.git
cd ESP32-DATV/firmware
idf.py set-target esp32c3
idf.py -p /dev/ttyACM0 build flash
cd ..

# 2. Python sanal ortamını ve masaüstü GUI bağımlılıklarını kurun
python3 -m venv .venv
. .venv/bin/activate
python3 -m pip install -r host/requirements.txt
python3 -m pip install -r host/requirements-gui.txt

# 3. Masaüstü kontrol arayüzünü (QO-100 kanal seçici ile) başlatın:
./uruchom_nadajnik.sh

# VEYA komut satırından 2370 MHz'de farklı modülasyonlarla yayın başlatın:
# Örnek A: DVB-S2, 16APSK, 1 MS/s, FEC 2/3, Pilot açık
python3 host/tx_dvbs.py --freq 2370 --baud 1000000 --dvbs2 --mod 16apsk --fec 2/3 --pilots

# Örnek B: Web kamerasından (/dev/video0) canlı DVB-S2 32APSK 250 kS/s yayını
python3 host/tx_dvbs.py --freq 2370 --baud 250000 --dvbs2 --mod 32apsk --fec 3/4   --pilots --apsk-pl unit --camera /dev/video0 --camera-size 640x480 --camera-fps 30 --camera-format mjpeg

Alıcı Tarafı (SDRangel) ve Spektrum Disiplini: Yayını bilgisayarda SDRangel veya PlutoSDR / USRP gibi bir alıcıyla çözerken merkez frekansı, modülasyonu, FEC değerini ve 0.35 roll-off oranını birebir eşleştirin; DVB-S2 için Soft LDPC decoding seçeneğini aktif edin. Unutmayın ki ESP32-C3’ün RF çıkışında donanımsal bir harmonik/imaj filtresi yoktur. Açık havada (on-air) yapılan yayınlar mutlaka geçerli bir amatör telsizcilik lisansı kapsamında, izin verilen 13 cm amatör bandı frekanslarında (2300–2450 MHz) ve çıkışa uygun bir bant geçiren filtre (bandpass filter) eklenerek gerçekleştirilmelidir.

Ekstra Ufuk: 2.4 GHz Oyuncak RC Araçların ve Dronların ESP32 SDR ile Kontrolü

Peki bu teknikle yalnızca video ve spektrum izlemekle kalmayıp, piyasadaki standart 2.4 GHz oyuncak RC arabaları, tekneleri veya mini dronları doğrudan kontrol edebilir miyiz? Yanıt: Kesinlikle evet!

Piyasadaki ucuz 2.4 GHz oyuncak araçlar Wi-Fi veya Bluetooth kullanmaz; bunun yerine nRF24L01 veya onun popüler Çin menşeli klonları olan XN297, XN297L, PanChip (PAN159) veya Beken (BK2461) çiplerini barındırır. Bu çipler 250 kbps veya 1 Mbps hızında basit GFSK (Gaussian Frequency Shift Keying) modülasyonuyla haberleşir. Klasik ESP32 projelerinde bu araçları sürmek için harici bir SPI nRF24L01 modülü takmak zorundaydık; çünkü Wi-Fi donanım modemi kendi katı paket formatı dışındaki sinyalleri reddediyordu.

Ancak esp32-sdr-trx ve ESP32-DATV projelerinde kanıtlandığı gibi çipin dahili DAC ve RF sentezleyicisine doğrudan erişebildiğimizde, ESP32 artık keyfi bir dalga formu üreticisine (arbitrary waveform transmitter) dönüşür. Açık kaynaklı DIY-Multiprotocol-TX-Module veritabanındaki XN297/nRF24 paket yapıları (Preamble, Sync Word, Gaz/Direksiyon baytları ve CRC) doğrudan I/Q faz vektörlerine dönüştürülerek havaya basılabilir. Üstelik oyuncak araçlar tek yönlü (simplex) çalıştığı için anlık RX/TX anahtarlamasına gerek kalmaz; ESP32’nin ~+19.5 dBm (~100 mW) gücündeki dahili Wi-Fi amfisi sayesinde oyuncağın orijinal kumanda menzili 2-3 katına çıkarılabilir!


Kaynaklar ve Referanslar

Bu makale hazırlanırken aşağıdaki kaynaklardan ve orijinal teknik dökümantasyonlardan faydalanılmıştır:

Yukarı Çık