logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[Si5351/AD9850] Jak zrobić syntezę CB z Arduino Nano

Hektar Zahle.r 19 Lip 2026 19:44 504 10
  • Pomocny post
    #1 21941482
    Hektar Zahle.r
    Poziom 30  
    Posty: 1347
    Pomógł: 143
    Ocena: 265
    Witam kolegów.

    Na początku chcę uprzedzić, że projekt który udostępniam chcę nazwać eksperymentalnym. A mianowicie z tego powodu, że generuje on przebieg zegarowy prostokątny, oraz żeby nie zakłócał innych częstotliwości, należy mu się pożądny filtr dolnoprzepustowy. Przedstawiam więc plik wsadowy hex do Arduino nano, który przy udziale modułu Si5350 stanowi niezbyt skomplikowaną syntezę do CB radia. Dostępne są dwa zasadnicze tryby: 1. Tryb kanałów o standardowej siatce częstotliwości i podstawowych funkcjach typowo dla trybu kanałów 2. Tryb VFO o minimalnym kroku 10 Hz z analogowo-cyfrowym i zaawansowanym programowo potencjometrem RIT. To już moje drugie VFO, które udostępniam tutaj z takiego względu, że bardzo trudno w internecie o coś podobnego. Wszyscy, albo kładą ograniczenia software-owe na swoje wsady, albo każą sobie bulić $$$ za nie. Ja udostępniam za darmo i liczę na podpowiedzi co jeszcze można by dodać lub poprawić, ponieważ projekt jest rozwojowy i docelowo będzie tu się znajdować moduł DDS AD9850. Ale jak już mówiłem, jak ktoś chce poeksperymentować, to biorę na klatę całą Waszą krytykę.

    Główne cechy/zalety syntezy, które chciałem osiągnąć:

    - przede wszystkim wygląd imitujący standardowy wyświetlacz 7-segmentowy LED, który pochłonął ogrom zasobów procesora, ale za to jest taki jak chciałem mieć
    - prostota konstrukcji i jak najniższe koszty za komplet części, tj.: Arduino nano + wyświetlacz SSD1306 + moduł Si5351 + encoder obrotowy (+ reszta elementów to części składowe CB-radia)
    - w związku z powyższym SSD1306 o przekątnej 0,96" fizycznie zastępuje wyświetlacz LED w radiu
    - standardowe funkcje syntezy typowo dla obu trybów (VFO i CH) stuprocentowo odworowują typowe CB radio/typowy TRX
    - jak najmniejsza liczba elementów składowaych przy jak największej funkcjonalności
    - automatyczny shift -100 Hz podczas gdy program wykryje częstotliwość przemienników amatorskich
    - zaawansowany RIT z filtrem wykładniczo-kroczącym (EMA), który usuwa szumy potencjometru oraz histerezą +/- 90 Hz dla zapewnienia "zatrzasku w zero Hz"
    - możliwość poszerzenia zakresu częstotliwości CB radii takich jak Alan 87, Jackson, itp.
    - programowa kalibracja częstotliwości kwarcu mudułu Si5351 z krokiem około 50 Hz
    - możliwość adaptacji do różnych częstotliwości p.cz. - zarówno na plus jak i na minus
    - możliwość adaptacji do różnych częstotliwości Tx - takich jak powielanie x2
    - pamięć podstawowych funkcji takich jak kanał, częstotliwość, krok strojenia po wyłączeniu zasilania
    - jest możliwość strojenia podczas wciśniętego PTT
    - wyjścia modułu Si: CLK0 -> Rx, CLK1 -> Tx

    Schemat.
    (celowo pomijam tu podłączenie modułu Si, który po prostu współdzieli piny A4, A5 z wyświetlaczem)

    [Si5351/AD9850] Jak zrobić syntezę CB z Arduino Nano

    Opis ikon na ekranie w formie obrazkowej.

    Tryb kanałów.

    [Si5351/AD9850] Jak zrobić syntezę CB z Arduino Nano

    Istotne tutaj, że RIT w tym trybie nie działa (celowo wyłączony), dostępny jest raster zarówno "zerowy" jak i "piątkowy", zaś wskaźnik +10 k (w odróżnieniu od trybu VFO) pokazuje aktualny (rzeczywisty) stan wyłącznika +10 kHz.

    [Si5351/AD9850] Jak zrobić syntezę CB z Arduino Nano

    Tryb VFO.

    [Si5351/AD9850] Jak zrobić syntezę CB z Arduino Nano

    Istotne tutaj, że potencjometr RIT działa tylko w tym trybie, przemienniki są ustawiane automatycznie, zaś +10 kHz (w odróżnieniu do trybu VFO) to tylko wkaźnik kanału o siatce standaryzowanej dla tzw. "zer kanałowych".

    [Si5351/AD9850] Jak zrobić syntezę CB z Arduino Nano


    Ustawienia.

    1. Kalibracja.

    [Si5351/AD9850] Jak zrobić syntezę CB z Arduino Nano

    W związku z moimi wcześniejszymi testami dwóch różnych modułów > Link < ustawiłem wartość Xtal domyślnie na najbliższą przewidywanej w rzeczywistości, tj. 100000.

    2. Wartość częstotliwości pośredniej.

    [Si5351/AD9850] Jak zrobić syntezę CB z Arduino Nano

    Dostępne następujące p.cz.:

    -10.695 MHz
    +10.695 MHz

    -7.800 MHz
    +7.800 MHz

    -0.450 MHz
    +0.450 MHz

    -0.455 MHz
    +0.455 MHz

    -0.465 MHz
    +0.465 MHz

    3. Częstotliwość Tx.

    [Si5351/AD9850] Jak zrobić syntezę CB z Arduino Nano

    Jest to częstotliwość podstawowego oscylatora VCO:

    Tx=f to częstotliwość równa częstotliwość podstawowej (jak np. w Unidenie 520)
    Tx=f/2 to częstotliwość podstawowa podzielona przez dwa dla podwajacza (jak np. w Alanie 100 plus)
    Tx=f-p.cz. to częstotliwość równa podstawowej minus p.cz. (opcja dla radii z SSB)

    I chyba najfajniejsze w tym wszystkim czyli "potrójna funkcja przycisku":

    1. Pojedynczy klik -> krok strojenia w trybie VFO oraz 0/+5 kHz w trybie kanałowym.
    2. Podwójny klik -> przejście pomiędzy CH->VFO i na odwrót.
    3. Przytrzymanie przycisku powyżej 1,5 sekundy -> ustawienia.

    Funkcja przycisku w ustawieniach:

    1. Pojedynczy klik -> numer pozycji.
    2. Przytrzymanie -> wejście, wyjście i zapis.

    Reszta elementów takich jak: PTT, wyłącznik RIT, wyłącznik +10k, potencjometr RIT to części składowe radia.

    W załączeniu:

    - wsad hex do procesora Atmega328 (który z uwagi na rozmiar należy wgrać programatorem)
    - plik symulacyjny programu SimulIDE do przetestowania syntezy wirtualnie na komputerze

    Program SimulIDE można pobrać ze strony:

    https://simulide.com/p/downloads/

    Zapraszam do testów.
    Załączniki:
    • Synteza_CB_Si5351.hex (89.67 KB) Musisz być zalogowany, aby pobrać ten załącznik.
    • Synteza CB.zip (1.41 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #2 21941624
    ORMO_PL
    Poziom 19  
    Posty: 774
    Pomógł: 16
    Ocena: 80
    Już druga interesująca mnie propozycja, dzięki za robotę!
    Wiem, że cenisz prywatność swoich programowych rozwiązań, jednak mam do Ciebie kilka pytań:

    1. Jak rozwiązałeś kwestię obsługi enkodera i "menu" z ustawieniami? Szukam rozwiązania, na którym mógłbym się oprzeć/wzorować.
    2. Różne radiotelefony mają różne konstrukcje mieszaczy - jaki ustawiasz poziom wyjścia z Si? Według moich doświadczeń Si5351 świetnie pracuje z mieszaczami diodowymi - ze scalonymi zaś lubi wprowadzić zamęt.

    Pozdróweczki!
  • #3 21941678
    ArturAVS
    Moderator
    Posty: 26376
    Pomógł: 2301
    Ocena: 7818
    Parę lat temu bawiłem się podobnie. Out0 heterodyna, Out1-pilot 10,695 oraz USB i LSB (dla SSB). Dopasowanie w.cz. poprzez trafka szerokopasmowe. Problemy miałem z detektorem SSB, nadajnika nie uruchamiałem. Próby na jakimś starym trx. Możesz pokazać kod źródłowy?

    Hektar Zahle.r napisał:
    bardzo trudno w internecie o coś podobnego

    Słabo szukałeś; https://zl2pd.com/
  • #4 21941696
    Hektar Zahle.r
    Poziom 30  
    Posty: 1347
    Pomógł: 143
    Ocena: 265
    Kolego Artur. Tę stronę ZL2PD to ja znam na pamięć. Nawet pisałem do autora o udostępnienie wsadu do generatora CTCSS i mi wysłał. Generator mi był potrzebny do Radmora FM-302, tzw. "Mors". Znam na pamięć inne strony takie jak JA2GQP, Andriej-Bierokon, Ashar Farhan, CesarSound, R2DBH, UR5FFR, itd., itd.

    Kolego ORMO_PL. Jeśli o to Ci chodziło, to przepisałem "potrójną" obsługę przycisku i zaadoptowałem ją do migania diodą "LED_BUILTIN" czyli diodą na płytce Arduino.

    #include <Arduino.h>
    
    
    // Konfiguracja
    
    constexpr uint8_t BUTTON_PIN = 4;
    constexpr uint8_t LED_PIN    = LED_BUILTIN;
    
    constexpr uint16_t DOUBLE_CLICK_TIME = 300;  // Czas na 2. kliknięcie [ms]
    constexpr uint16_t LONG_PRESS_TIME   = 1000; // Czas przytrzymania [ms]
    
    // Zmienne
    
    bool lastButtonState   = HIGH;
    bool isButtonPressed   = false;
    bool longPressExecuted = false;
    
    uint32_t pressStartTime = 0;
    uint32_t lastClickTime  = 0;
    uint8_t  clickCount     = 0;
    
    bool isLedOnPermanently = false;
    
    // Funkcje sygnalizacji mignięć
    
    void blinkSingleFast() {
      digitalWrite(LED_PIN, HIGH);
      delay(80);
      digitalWrite(LED_PIN, LOW);
    }
    
    void blinkDoubleSlow() {
      for (uint8_t i = 0; i < 2; i++) {
        digitalWrite(LED_PIN, HIGH);
        delay(300);
        digitalWrite(LED_PIN, LOW);
        if (i == 0) delay(200);
      }
    }
    
    // Setup
    
    void setup() {
      pinMode(BUTTON_PIN, INPUT_PULLUP);
      pinMode(LED_PIN, OUTPUT);
      digitalWrite(LED_PIN, LOW);
    }
    
    // Pętla główna
    
    void loop() {
      bool currentButtonState = digitalRead(BUTTON_PIN);
      uint32_t now = millis();
    
      // Odczytaj wciśnięcie i puszczenie
    
      if (lastButtonState == HIGH && currentButtonState == LOW) {
        isButtonPressed   = true;
        pressStartTime    = now;
        longPressExecuted = false;
      }
      else if (lastButtonState == LOW && currentButtonState == HIGH) {
        isButtonPressed = false;
    
        // Zliczaj kliknięcia tylko jeśli nie wykonano już long press
    
        if (!longPressExecuted) {
          clickCount++;
          lastClickTime = now;
        }
      }
    
      lastButtonState = currentButtonState;
    
      
      // Wykrycie przytrzymania
    
      if (isButtonPressed && !longPressExecuted && (now - pressStartTime >= LONG_PRESS_TIME)) {
        longPressExecuted  = true;
        clickCount         = 0; // Skasuj kliknięcia
    
        // Zmiana stanu diody na stałe
    
        isLedOnPermanently = !isLedOnPermanently;
        digitalWrite(LED_PIN, isLedOnPermanently ? HIGH : LOW);
      }
    
      // Pojedyncze czy podwójne kliknięcie ?
    
      if (clickCount > 0 && !isButtonPressed) {
        if ((now - lastClickTime >= DOUBLE_CLICK_TIME) || clickCount >= 2) {
          
          // Wyłącz diodę na czas błysków
    
          if (isLedOnPermanently) {
            digitalWrite(LED_PIN, LOW);
          }
    
          // Wykonaj odpowiednie mignięcie
    
          if (clickCount == 1) {
            blinkSingleFast();
          } else {
            blinkDoubleSlow();
          }
    
          // Przywróć stan świecenia diody na stałe
    
          if (isLedOnPermanently) {
            digitalWrite(LED_PIN, HIGH);
          }
    
          clickCount = 0; // Zresetuj licznik
        }
      }
    }
  • #5 21941982
    ORMO_PL
    Poziom 19  
    Posty: 774
    Pomógł: 16
    Ocena: 80
    Hektar Zahle.r napisał:
    Znam na pamięć inne strony takie jak JA2GQP, Andriej-Bierokon, Ashar Farhan, CesarSound, R2DBH, UR5FFR, itd., itd.

    Kopalnie wiedzy w tym temacie
  • #6 21942112
    Hektar Zahle.r
    Poziom 30  
    Posty: 1347
    Pomógł: 143
    Ocena: 265
    No zgadza się. Co ważne na tych stronach mamy głównie Arduino, czytaj: jest maksymalnie łatwo. Są jeszcze inne strony takie jak UT5QBC albo UV7QAE. Albo np. JF3HZB, PE0MGB. Ale tam jest trochę inaczej, bo to STM32 i ESP32.

    Koledzy tak posiedziałem nad odsłuchem tej syntezy w CW na zdudnienie i muszę dodać dwie pozycje w menu, bo mi się nie podoba RIT.

    1. Filtr kroczący (EMA). Zakres prędkości stabilizacji: 1 (x10, szybko) - 10 (x1, wolno). Wartość domyślna 5.

    [Si5351/AD9850] Jak zrobić syntezę CB z Arduino Nano

    2. Szerokość okna zerowej odchyłki potencjometru (czyt. zakres kąta wychylenia martwej strefy): 10 Hz - 150 Hz. Wartość domyślna 90 Hz.
    Zmieniłem też sposób wychodzenia z martwej strefy - teraz startuje od 0Hz.


    [Si5351/AD9850] Jak zrobić syntezę CB z Arduino Nano

    Teraz można sobie wyregulować RIT jak kto woli.

    Edycja postu.

    Dodaję funkcję CTCSS dla przemienników. Przebieg jest generowany na pinie D9. Możliwość wyboru subtonu z Menu 6. Subton CTCSS. Podczas nadawania wyświetla się ikona CTC.

    [Si5351/AD9850] Jak zrobić syntezę CB z Arduino Nano

    Schemat zaktualizowany o wyjście subtonów na pinie D9.

    [Si5351/AD9850] Jak zrobić syntezę CB z Arduino Nano

    Zmieniłem też wartość kondenatorów obciążających na 6pF, bo planuję wprowadzić do modułu Si modulację częstotliwości kwarcu. Bo jakby kto chciał przerobić CB z modulacją w bloku VCO, to wówczas modulacji FM będzie brak. Tylko nie mam pojęcia jak ja to zrobię na module DDS AD9850 z generatorem kwarcowym.

    Załączam hex do Atmegi (zaktualizowany o CTCSS).
    Załączniki:
    • Synteza_CB_Si5351.hex (89.97 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #7 21942383
    waltersalata
    Poziom 25  
    Posty: 727
    Pomógł: 66
    Ocena: 290
    AD9850 ma na wyjściu sygnał, który jest daleki od doskonałości, tutaj chodzi o czystość spektralną generowanego sygnału w odległości < 1 MHz od nośnej (Spurious Emissions) i tego nie usunie żaden filtr dolnoprzepustowy. Jeśli nie ma się dobrego analizatora widma, to w zasadzie tego nie widać, ale może być słychać. Poziom szumów i ich skład zależy od podzielnika częstotliwości i widać to na analizatorze widma, jak się zmienia dzielniki w AD9850.
  • #8 21943154
    robert123
    Poziom 16  
    Posty: 306
    Pomógł: 13
    Ocena: 25
    Tutaj link do analizatora - generatora - wobuloskopu na AD9851 AD9850 (0-60Mhz)
    i 35Mhz - 4000MHz (ADF4050/ADF4051).
    Współpracuje to z softem NWT pod win oraz może być urządzeniem - autonomicznym

    https://www.asobol.ru/moi-konstrukcii/nwt-7-ex

    Mam uruchomioną i przetestowaną wersję dla AD4051 - czeka na część KF-ową i obudowę.
    Wadą ADF4051 jest to, że generuje sygnał prostokątny.
    Jako heterodyna do analizatora widma (opcja softu NWT) świetnie się nadaje.
  • #9 21943206
    2N4427
    Poziom 20  
    Posty: 306
    Pomógł: 34
    Ocena: 144
    Hektar Zahle.r napisał:
    Tylko nie mam pojęcia, jak ja to zrobię na module DDS AD9850 z generatorem kwarcowym.
    AD9850 ma możliwość modulacji fazy (5-bitowe słowo), ale skokowo (najmniejsze przesunięcie o 11,25 stopnia lub wielokrotność), a nie sygnałem analogowym np. za pośrednictwem przetwornika A/C.

    Pozostaje metoda z FM-316 - modulator fazy i powielanie odpowiednią ilość razy (w FM-316 w torze nadawczym było 4-krotne), żeby osiągnąć właściwą dewiację częstotliwości. No chyba że na płytce AD9850 jest VC(TC)XO, można próbować doprowadzić sygnał modulujący na wejście napięcia korekcyjnego.
  • #10 21943209
    ArturAVS
    Moderator
    Posty: 26376
    Pomógł: 2301
    Ocena: 7818
    @2N4427 ewentualnie, cyfrowo. Ale tu Arduino nie da rady.
  • #11 21943529
    Hektar Zahle.r
    Poziom 30  
    Posty: 1347
    Pomógł: 143
    Ocena: 265
    Witam ponownie i dziękuję za podpowiedzi. Tymczasem nowa odłona syntezy. Przepisałem kod i teraz, tak jak mówiłem, w zamian za moduł PLL z Si, startuje moduł DDS z AD9850. Kod zyskał przez to na pojemności, bo zasoby Si5351 pożerały jakieś 25% pojemności pamięci. A że jest znacznie więcej do upchnięcia, to i zmieściło się parę fajnych i myślę przydatnych funkcji. A są to: (wcześniejszy CTCSS dla przemienników), połączenie CAT z menu wyboru prędkości, poszerzenie odbioru do pasma 12 metrów, poprawiona logika encodera, który jest teraz bardzo szybki (wcześniej działał powolnie) oraz akcelerator kroku encodera z menu wyboru prędkości. Poprawiłem też wiele więcecej, ale to mniej ważne.

    Podłączenie z modułem AD9850 symbolizuje oscyloskop, bo nie mam w programie takiego układu - rozkład pinów:

    A1 -> W_CLK
    A2 -> FQ_UD
    A3 -> DATA

    Konwerter UART/moduł bluetooth:

    D1 -> Tx
    D2 -> Rx

    D9 -> Wyjście CTCSS

    [Si5351/AD9850] Jak zrobić syntezę CB z Arduino Nano

    Ustawienia kalibracji zegara CLK wygląda teraz trochę inaczej, bo mamy częstotliwość 125 MHz z krokiem 50 Hz.

    [Si5351/AD9850] Jak zrobić syntezę CB z Arduino Nano

    Parametry połączenia:

    - protokół CAT Kenwood
    - model TS-140/TS-440/TS-480, itp.
    - prędkość domyślna 9600 bps
    - CTS koniecznie OFF
    - komunikacja przez fizyczny UART Arduino (piny D1, D2)

    Prędkość do wyboru w ustawieniach: 4800/9600/19200/38400/57600 bps

    [Si5351/AD9850] Jak zrobić syntezę CB z Arduino Nano

    Postanowiłem dodać poszerzenie pasma odbioru o pasmo 12m. Do wyboru: CB+10m, CB+10m/12m.

    [Si5351/AD9850] Jak zrobić syntezę CB z Arduino Nano

    Prędkość Dial speed-up jest to przyspieszenie encodera, które wykrywa szybki ruch obrotowy i wówczas przełącza w trakcie obrotu mnożnik prędkości na większy krok. Dzięki temu mamy strojenie zgrubne i precyzyjne w jednym pokrętle (tak jak w TRX-ach fabrycznych). Do wyboru: OFF(x1), x2, x4, x6.

    [Si5351/AD9850] Jak zrobić syntezę CB z Arduino Nano

    Na filmiku nagrałem jak mnożnik x6 reaguje na wykrycie przyspieszonego ruchu obrotowego w połączeniu z Ham Radio Deluxe. Mogę przemieszczać się po całym paśmie praktycznie praktycznie "z palca", tzn. dwa szybkie ruchy encodera i jestem na drugim końcu pasma zachowując przy tym dostrajanie precyzyjne. Są na filmiku nagrane dwa rodzaje ruchów obrotowych: przyspieszony x6 i normalny (OFF) x1 z krokiem 1 kHz.





    Kilka słów co do połączenia.

    Komunikaty zwrotne o stanie parametrów TRX-a takie jak s-metr, modulacja, przełączniki ustawiłem na 0x00 tak żeby Ham Radio Deluxe nie odpytywał o nie w nieskończoność i nie "zamulał" przez to połączenia. Dzięki temu komunikacja z HRD jest teraz mega szybka i można suwakami dostrajać się praktycznie płynnie. Można też dla odmiany dołożyć sobie na linie Tx/Rx prosty moduł z Bluetooth (taki jak np. HC06) i mieć połączenie z telefonem przez aplikację pRxTx Lite, która umożliwia zapamiętanie częstotliwości pod przyciskami pamięci i można w ten sposób zrobić sobie kilka kanałów takich jak 26,425, 27.180, 27,555, itp. Połączenie HRD przez protokół TS-140/TS-440 działa bezbłędnie, ale jest mały problem, bo nie wiem czemu zamula przez TS-480 - także nie polecam tego ostatniego. Jednakże połączenie z aplikacją pRxTx Lite przez TS-480 działa znośnie. Nie jest to demon prędkości. Jest wystaczające. Acha i jeszcze jedno - podczas gdy mamy ustawiony tryb kanałów i nawiązuje połączenie CAT wówczas zostaje automatycznie przełączony na tryb VFO. Niestety nie wiem jak zmusić syntezę do aktywacji Tx w programie HRD - prace w trakcie.

    Co do ikonek to nie będę zamieszczał tu obrazków, bo teraz ikonki są rozmieszczane dynamicznie i zmieniają położenie w zależności od tego co jest ustawione. Opiszę tylko ich znaczenie.

    Rx/Tx - odbiór/nadawanie
    0k/+5k - raster zerowy/piątkowy
    +10k - dziury kanałowe
    CH/VFO - tryb kanałów/tryb VFO
    RIT - analogowo-cyfrowy RIT z potencjometrem
    RPT - przemienniki 29 MHz
    CTC - aktywny subton CTCSS
    CAT - aktywne połączenie CAT z HRD, pRxTx Lite, itp.
    Gwiazdka - oczekiwanie na zapis eeprom

    Co do odbioru pasma 12 metrów to jest dostępne tylko w trybie VFO i przez CAT (nie działa w trybie kanałów).

    Reszta funkcji została przeniesiona z poprzedniej syntezy, więc nie będę ich opisywał - wystarczy wrócić do poprzednich postów.

    Załączam wsad do Atmegi oraz plik sim1 do symulacji w programie SimulIDE.

    Przypomnę, że program SimulIDE jest dostępny pod linkiem:

    https://simulide.com/p/download100

    Zapraszam do testów.

    P.S.

    Pod tym linkiem znajduje się program do wgrania wsadu hex przez USB (nie potrzeba już programatora) :

    https://github.com/arrsoft312/arduino-hex-loader/releases/tag/v2.1.0

    [Si5351/AD9850] Jak zrobić syntezę CB z Arduino Nano
    Załączniki:
    • Synteza_CB_AD9850_with_bootloader.hex (80.01 KB) Musisz być zalogowany, aby pobrać ten załącznik.
    • Synteza CB.zip (2.47 KB) Musisz być zalogowany, aby pobrać ten załącznik.

Podsumowanie tematu

✨ Przedstawiono eksperymentalny wsad HEX do Arduino Nano, który z modułem Si5350 tworzy prostą syntezę częstotliwości do radia CB. Układ generuje przebieg prostokątny, dlatego wymaga porządnego filtra dolnoprzepustowego, aby ograniczyć zakłócenia harmoniczne. Oprogramowanie oferuje dwa tryby pracy: tryb kanałowy ze standardową siatką częstotliwości i podstawowymi funkcjami oraz tryb VFO z krokiem 10 Hz i programowym RIT realizowanym z użyciem potencjometru analogowo-cyfrowego. Projekt jest udostępniony jako rozwijane VFO do CB i ma być dalej rozbudowywany o kolejne funkcje oraz poprawki.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA