Polski radioamator Kacper Kidała, SP8ESA, opublikowano dn GitHub experimentálny SSB/CW vysielač pre pásmo 2,4 GHz postavený na module SX1280 (LoRa1280F27-TCXO) w połączeniu z mikrokontrolerem Raspberry Pi Pico 2. Projekt jest zaprojektowany przede wszystkim do pracy z transponderem wąskopasmowym satelita geostacjonarny QO-100 (Es'hail 2), no funguje aj vo všeobecnom pásme 2,4 GHz. Kód a firmware są dostępne bezpłatnie w serwisie GitHub na podstawie licencji CC BY-NC 4.0 (do użytku niekomercyjnego, w tym dla amatorów radia).
W artykule przeczytasz
Rozwiązanie nadajnika firmy Kacper Kidał SP8ESA
Sercem rozwiązania jest moduł LoRa1280F27-TCXO, pierwotnie zaprojektowany dla technologii LoRa w paśmie 2,4 GHz. Jest to niewielki (16 × 32 mm) i niedrogi układ nadawczo-odbiorczy z wbudowanym wzmacniaczem mocy o mocy wyjściowej do +27 dBm (około 500 mW) oraz oscylatorem z kompensacją temperaturową i dokładnością ±0,5 ppm. Zamiast wykorzystywać moduł do jego pierwotnego przeznaczenia – transmisji cyfrowych pakietów LoRa – SP8ESA zaprogramował go jako uniwersalny nadajnik SSB/CW (a później także FM).

Zdjęcie: Elektronika SparkFun /
Wikimedia Commons,
CC BY 2.0.
Elementem sterującym jest Raspberry Pi Pico 2 z dwurdzeniowym procesorem RP2350 (ARM Cortex-M33). Architektura oprogramowania układowego wykorzystuje oba rdzenie równolegle: Core0 odpowiada za odbiór dźwięku (przez USB lub z mikrofonowego przetwornika analogowo-cyfrowego) oraz przetwarzanie sygnału w czasie rzeczywistym (filtr pasmowy, korektor, kompresor), natomiast Core1 realizuje transformatę Hilberta, modulację I/Q i wysyła dane do SX1280 przez SPI z częstotliwością 8 kHz. Autor w repozytorium informuje, że podczas tworzenia kodu korzystał z modeli językowych Claude Opus 4 i GPT 5.2.
Rozwiązanie SP8ESA wyróżnia się właśnie tym, że wykorzystuje tani, komercyjny moduł LoRa poza swoim pierwotnym przeznaczeniem - jako uniwersalny sterownik SSB/CW dla pasma 2,4 GHz.
Wymagane komponenty
| Część | Opis |
|---|---|
| Raspberry Pi Pico 2 | Mikrokontroler RP2350, dwurdzeniowy Cortex-M33 |
| LoRa1280F27-TCXO | Moduł SX1280 z PA (+27 dBm) i oscylatorem TCXO (0,5 ppm) |
| Moduł mikrofonu MAX4466 | Mikrofon elektretowy ze wzmacniaczem, zasilanie 3,3 V |
| Wyświetlacz OLED SSD1306 128×64 | Wyświetlacz I2C, 0,96″ |
| Enkoder obrotowy z przyciskiem | Typ KY-040 lub podobny (3-pinowy + SW) |
| Przycisk PTT / przycisk CW | Przycisk normalny (normalnie otwarty) |
| Antena na 2,4 GHz | Złącze SMA lub u.FL |
Przy zamawianiu modułu LoRa należy wybrać wariant z atrybutem TCXO (tj. o dokładności 0,5 ppm), ponieważ dostępny jest również tańszy wariant ze standardowym oscylatorem 10 ppm, który nie nadaje się do zapewnienia stabilności częstotliwości w paśmie 2,4 GHz. Połączenie Raspberry Pi Pico 2 z modułem LoRa jest proste – magistrala SPI (MISO, NSS, SCK, MOSI), sygnały sterujące RESET, BUSY, TCXO_EN oraz przełączanie RX/TX. Autor publikuje pełny schemat połączeń w pliku WIRING.txt w repozytorium.
Wideo: test TX SSB
Cechy
Oprogramowanie sprzętowe obsługuje wejście audio na dwa sposoby – Raspberry Pi Pico 2 jest widoczny dla komputera jako standardowa karta dźwiękowa USB (dźwięk 48 kHz, downsampling do 8 kHz dla toru DSP) lub moduł mikrofonu elektretowego można podłączyć bezpośrednio do wejścia ADC, aby pracować autonomicznie, bez komputera. Przełączanie między źródłami dźwięku jest możliwe za pomocą menu enkodera lub interfejsu graficznego. Gałąź mikrofonowa obejmuje przetwarzanie sprzętowe z usuwaniem składowej stałej i automatyczną regulacją wzmocnienia (AGC) z bramką szumów.
Łańcuch DSP działający w czasie rzeczywistym obejmuje filtr pasmowy, korektor i kompresor, których parametry można zmieniać za pomocą szeregowych poleceń CDC lub za pomocą interfejsu graficznego. Oprogramowanie układowe obsługuje również tryb FM z regulowaną dewiacją (200 Hz – 100 kHz) i CTCSS tónmi – tento mód je však autorom výslovne označený ako nevhodný pre transponder QO-100, który akceptuje tylko SSB i CW; transmisja FM na tym transponderze powoduje zakłócenia i jest zabroniona. Zakres częstotliwości urządzenia obejmuje całe pasmo 2300–2450 MHz, w tym zakres QO-100 (2400 000–2400 500 MHz).
Urządzenie osiąga dokładność strojenia subhercowego dzięki połączeniu kroków PLL (rozdzielczość około 198 Hz) i precyzyjnego strojenia DSP. Wyświetlacz SSD1306 pokazuje w czasie rzeczywistym częstotliwość, tryb, status transmisji, źródło dźwięku i aktualny parametr. Sterowanie bez użycia komputera odbywa się za pomocą enkodera obrotowego (krok ±100 Hz). Krótkie naciśnięcie przełącza na strojenie nośnej (TUNE), a długie naciśnięcie uruchamia tryb edycji parametrów. Urządzenie może być zasilane z powerbanku – jeśli host USB nie zostanie wykryty w ciągu trzech sekund, automatycznie przełącza się na wejście mikrofonowe.
| Parametry | Wartość |
|---|---|
| Zakres częstotliwości | 2300,000 – 2450,000 MHz (QO-100: 2400,000 – 2400,500 MHz) |
| Moc wyjściowa | do +27 dBm (regulacja od -18 do +13 dBm bezpośrednio na chipie) |
| Modulacja | SSB (USB), CW, FM (z CTCSS) |
| Wejście audio | USB 48 kHz (PC) lub ADC 8 kHz (mikrofon MAX4466) |
| Sygnał zegara SPI | 18MHz |
| Stabilność TCXO | ±0,5 ppm |
| Rozdzielczość częstotliwości | sub-Hz (kroki PLL + dokładne przesunięcie DSP) |
Praktyczne doświadczenie z nadajnikiem
Praktyczna weryfikacja projektu opublikowanego przez Mirek, SP5GNI, z klubu HF5LPomiar mocy wyjściowej miernikiem opartym na układzie AD8318 z tłumikiem 30 dB wykazał następujące wartości: pobór prądu w stanie spoczynku z portu USB wynosi około 110 mA. Przy ustawieniu „TX Power” na -6 dBm pobór prądu wynosi około 140 mA, a rzeczywista moc wyjściowa wynosi 12 dBm (około 16 mW). Przy 0 dBm pobór prądu wynosi 200 mA, a moc 18 dBm (około 63 mW). Przy 6 dBm pobór prądu wynosi 290 mA, a moc 23 dBm (około 200 mW). Przy 10 dBm pobór prądu wynosi 360 mA, a moc 25 dBm (około 300 mW). Przy maksymalnym ustawieniu 13 dBm pobór prądu wynosi około 400 mA, a moc wyjściowa 26 dBm (około 400 mW). Autor testu zwraca uwagę, że wartości „TX Power” w interfejsie graficznym (w zakresie od -18 do +13 dBm) nie odpowiadają bezpośrednio rzeczywistej mocy wyjściowej modułu, a drugi testowany egzemplarz modułu SX1280 osiągnął maksymalną moc zaledwie 24 dBm (około 200 mW) – występuje więc rozbieżność pomiędzy poszczególnymi egzemplarzami modułów.
W teście z własnym systemem na QO-100 (kabel 13 m, wzmacniacz 30 dB, antena helisowa) ustawienie „mocy TX” na -3 dBm wystarczyło, aby uzyskać sygnał WebSDR akceptowane na poziomie S9. SP5GNI przetestowano również zasilanie i sterowanie nadajnika poprzez 20-metrowy przedłużacz USB-RJ45 z anteną zdalną bez wzmacniacza - w tym połączeniu napięcie zasilania na module spadało wraz ze wzrostem mocy wyjściowej (przy ustawieniu 13 dBm napięcie na wejściu Raspberry spadło do 3,2 V, co jest wartością poza dopuszczalnymi granicami i występowały awarie komunikacji), ale nawet przy tym skromnym połączeniu sygnał na WebSDR był słyszalny na poziomie S6 - wystarczająco, aby nawiązać połączenie.
Tester zaleca oddzielne zasilanie modułu LoRa do pracy w terenie (na przykład standardowe 13,8 V z obniżonym napięciem do 5 V dla modułu i dodatkowego wzmacniacza 2–5 W), co eliminuje problem spadków napięcia przy dłuższych kablach. Do oprogramowania zaleca wersję 1.5.1 autorstwa Adama SP9ACQ, który przyczynił się do rozwoju oprogramowania, tworząc własną wersję repozytorium z dołączonymi plikami gui.kopia.3.py, SX1280SDR.uf2 i konfiguracją sx1280_profile.json.
Wniosek
Rozwiązanie SP8ESA dowodzi, że uruchomienie za pomocą QO-100 w trybie SSB niekoniecznie wymaga drogiego konwertera i transceivera dużej mocy – tani moduł LoRa z wbudowanym PA w połączeniu z Raspberry Pi Pico 2 wystarczy, aby uzyskać funkcjonalny sygnał o mocy rzędu setek miliwatów, co jest w pełni wystarczające dla transpondera satelitarnego z czułym odbiornikiem. Projekt jest otwarty, aktywnie rozwijany (aktualna wersja v2.2.0 dodaje wygładzanie przejść TX, aby wyeliminować trzaski podczas przełączania) i udokumentowany na GitHubie wraz ze schematami okablowania. Każdy, kto zdecyduje się na budowę projektu, znajdzie szczegółowe instrukcje, schematy i praktyczne uwagi na stronie internetowej SP8ESA. SP8NTPoraz w teście praktycznym klubu HF5L.
