Forum HomeMade

Pełna wersja: Joker SDR - Simple SDR HF transceiver project
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Stron: 1 2 3 4
Piotr znalazł błędy w wersji 0.7, które zostały naprawione. Pierwszy polegał na tym,
że w szczególnych sytuacjach ton odsłuchu nie był emitowany przy nadawaniu telegrafią.
Drugi prowadził do braku możliwości zmiany kroku VFO przy aktywnej funkcji BIT lub RIT.
Trzeci źle wizualizował wstęgi w pasmach WARC dla TX i wymagał ponownej konsultacji
w celu dokładnego prześledzenia kroków programu oraz omówienia procesu przejścia sygnału
przez cały blok toru nadawczego. Tam dzieje się więcej fajnych rzeczy niż tylko wybór wstęgi.
Ze względu na to, że zegary CLK nie zmieniają częstotliwości, przetwornik DAC musi poprawnie
przygotować dodatkowe informacje o sygnale. Oprócz właściwości IQ decydujących o tym, 
która wstęga po Tayoe będzie wytłumiona, trzeba jeszcze ułożyć wstęgi w taki sposób,
żeby te właściwe zawsze trafiały na szczycie filtra kwarcowego pośredniej częstotliwości.
Zupełnie inną ścieżką przetwarzania jest właśnie wizualizacja tego co dzieje się na DAC.

[attachment=16238]

[attachment=16239]

[attachment=16240]
[attachment=16246]

Ze względu na częste aktualizacje programu, które na pewno będą publikowane, przygotowana została aplikacja
ułatwiająca przywrócenie ustawień po wgraniu nowej wersji. Nie będzie trzeba już wszystkiego ustawiać ręcznie,
wystarczy ściągnąć konfigurację z Jokera, zapisać gdzieś na komputerze, a w razie potrzeby odtworzyć ustawienia.
Aplikacja nazywa się JokerConfigurator, jest intuicyjna i łatwa w użyciu, umożliwia także wygodne ładowanie ustawień
podczas normalnej pracy Jokera. Nie trzeba więc przechodzić przyciskami przez menu serwisowe lub submenu podręczne,
przyspiesza to ustawianie tekstów CW, znaku wywoławczego itd. Podczas edycji parametru, zostaną wyświetlone
możliwe do wpisania wartości tak jak na poniższym przykładzie.  Dla płytki RF jaka została wcześniej przedstawiona,
poprawnym ustawieniem jest 3, jeśli ktoś zbuduje własną płytkę RF opartą o sprzętowe dzielniki CLK, wybierze wartość 2.
Konfigurator będzie współpracował z programem Joker od wersji 0.9. W dokumencie tekstowym znajduje się link do programu.
JokerConfigurator będzie uruchamiał się na komputerach z systemem 64 bitowym.

[attachment=16247]

Dodam jeszcze opis formatu automatycznej odpowiedzi w zawodach CW. Poniżej widok ekranu z ustawieniem submenu.
Dwie pierwsze litery NN można zmienić na 99 i podczas zawodów transmitowany będzie raport rozpoczynający się
od 599 lub 5NN. Cyfrę 3 można zmienić na 4 i to będzie ilość cyfr w liczbie łączności przykładowo 001 lub 0001.
Literę T można zmienić na 0 dla zera wiodącego, przy wysyłaniu liczby łączności będzie nadawane 001 lub TT1.
Cztery znaki XXXX to znak kontrolny, który może mieć długość od 0 do 4 i wpisane dowolne litery lub cyfry.
Przykładowo format NN40AB wyśle pierwszy raport 5NN0001AB, format 993TA1 wyśle pierwszy raport 599TT1A1.
Podczas zawodów numer łączności zostaje automatycznie powiększony, ale jest możliwość jego szybkiej edycji.

[attachment=16248]
Do programu Jokera wprowadzone zostały istotne zmiany, najważniejsza to wsparcie pracy w trybie SPLIT.
Od wersji 1.0 włączenie tego trybu rysuje linię na widmie, która będzie sygnalizować miejsce nadawania.
Dzięki temu możliwe będzie wzrokowe określnie odpowiedniego miejsca, w którym ustawiony jest nadajnik.
Więcej szczegółów dotyczących użycia i sposobów sterowania tą funkcją przedstawi Piotr na filmie.

[attachment=16262]

Dużą zmianą jest również działanie AGC. Niedawno przyszedł mi do głowy nowy pomysł na inny rodzaj regulacji
poziomu przetwarzanego sygnału, zastępując ten, który działał do tej pory. Testowałem to już kilka dni,
uważam, że działa znacznie płynniej i jego działanie jest praktycznie niezauważalne mimo dużej dynamiki.
Kolejną rzeczą jest prędkość wodospadu. Analizując wszystkie operacje i ograniczając je do niezbędnego minimum,
udało mi się zejść z czasem 37ms odświeżania jednej linii do 27ms. Wodospad ma wysokość połowy ekranu
czyli 170 / 2 = 85 pikseli. Wcześniej było 85 * 37ms = 3 sekundy całkowitego przewinięcia z góry na dół.
Teraz jest 85 * 27ms = 2 sekundy pełnego przejścia, wzrokowo można łatwo zauważyć takie przyspieszenie.
Walka o każdą milisekundę była dla mnie świetną zabawą w optymalizację kodu i oprócz tego ćwiczenia,
została naturalnie zwiększona rozdzielczość wizualizacji znaków podczas odbioru szybkiej telegrafii.

[attachment=16263]

Program JokerConfigurator otrzymał przycisk ponownego uruchomienia na życzenie. Istnieje grupa parametrów,
których zmiana zostanie wprowadzona przy następnym uruchomieniu. Należą do nich źródło SI5351 (25MHz lub 27MHz)
oraz adresy I2C modułów BPF, LPF, ATT. Po wprowadzonej zmianie tych ustawień możemy wykonać restart sprzętowy
wyłączając i włączając zasilanie, za pomocą pozycji na końcu listy menu serwisowego albo właśnie używając
programu JokerConfigurator od wersji 0.2, który teraz posiada taki przycisk. Grupa czterech parametrów
wymagających ponownego uruchomienia zaznaczona jest kolorem czerwonym, podobnie jak przycisk restartu.

[attachment=16264]

Program LogBook na ekranie klastra posiada teraz możliwość dodatkowego filtrowania wyników z modulacją.
Dane pobierane są z serwisu dxsummit i nowy wpis na liście w trybie cyklicznego sprawdzania będzie sygnalizowany
komunikatem dźwiękowym lub głosowym literowaniem znaku w języku polskim – przy zaznaczonym polu Speech.
Jeśli Joker jest podłączony do komputera, można od razu przejść na częstotliwość wybraną z wpisu na liście klastra.
Wszystkie dostępne funkcje opisane są w przygotowanym dokumencie dołączonym do programu LogBook.

[attachment=16265]

Joker v1.0, JokerConfigurator v0.2 oraz LogBook v0.2 dostępne są pod linkiem dołączonym do załącznika w pliku tekstowym.
Dołączone tam są również wszystkie publikowane wcześniej projekty KiCad, schematy, gerbery i dokumenty z opisami płytek.
Zostały znalezione nowe błędy, nie zawsze były zapamiętywane ustawienia VFO po powrocie z innego pasma,
nie było wyświetlane widmo w trybie przybliżenia wodospadu do +/- 6kHz, nie była poprawnie wskazywana
wartość konturu audio chociaż sama funkcja działała poprawnie, wszystko naprawione w wersji 1.1.
Link do pobrania taki sam jak w poprzednim wpisie, prowadzi on do katalogu z wszystkimi materiałami.
Zakończyłem wyścig z czasem na drugim rdzeniu, ostateczny wynik obsługi ekranu to około 21 ms.
Przy takim odświeżaniu (1000ms / 21ms = 47 FPS) osiągamy technicznie najszybsze widmo.
To jest granica możliwości dla drugiego rdzenia, poniżej której nie da się już więcej zejść.
Każda próba przyspieszenia spowoduje oczekiwanie drugiego rdzenia na napływ nowych danych.
Joker na pierwszym rdzeniu próbkuje sygnał z szybkością 48kHz i przetwarza bloki po 1024 próbki.
Wymuszony czas, który potrzebny jest na zebranie takiej paczki próbek to 1024 / 48000 = 21ms.
Dzięki buforom DMA działającym w tle, przetwarzanie audio mieści się w tym oknie czasowym.
Mamy więc nowe informacje o dźwięku co każde 21 ms przygotowywane na pierwszym rdzeniu.
Drugi rdzeń obsługujący wyświetlacz nie może pokazać niczego wcześniej, jego maksymalna prędkość
ograniczona jest czasem pierwszego rdzenia. Dlatego można powiedzieć, że wyścig dobiegł końca.
Oba rdzenie poruszają się tak samo, gdzie drugi dotrzymuje kroku pierwszemu, nie gubimy ramek.
Program jest już prawie kompletny, brakuje tylko sterowania modułem PA, ale to nie będzie wpływać
na prędkość przewijania wodospadu. Osiągnięte obecnie tempo widma zostanie zachowane.
Wersja 1.2 znajduje się w katalogu, do którego prowadzi ten sam link z pliku tekstowego.

[attachment=16268]
Zrobiłem porównanie różnych typów płytek ESP32-S3-TTGO i różnych wyświetlaczy jakie są montowane na tych płytkach.
Na płytce LILYGO montowany jest dyskretny układ ESP32-S3 wraz z pamięcią 25Q128. Na płytkach bez nazwy znajdują się
układy w metalowej obudowie ESP32-S3-WROOM-1 N16R8. Obie płytki mają taką samą ilość pamięci flash 16MB oraz posiadają
małe układy AL64, które odpowiedzialne są za 8MB PSRAM. Płytki są więc kompatybilne i można je używać zamiennie.
W wersji z metalową obudową otrzymujemy ekranowanie mikrokontrolera zabezpieczające przed zakłóceniami radiowymi.
[attachment=16269] [attachment=16270]
[attachment=16271] [attachment=16272]

Kupując inny wyświetlacz mamy możliwość wyboru metalowej lub plastikowej tylnej ścianki. Jeśli wybierzemy plastikową,
wtedy białe podświetlanie będzie widoczne na spodzie wyświetlacza. Tworzy to bardzo ciekawy efekt wizualny.
[attachment=16273] [attachment=16274]
[attachment=16275] [attachment=16276]

Oprócz materiału, z którego wykonana jest tylna ścianka ekranu, istnieją różne rodzaje matryc, które różnią się
jasnością i odcieniem kolorów. Na poniższych zdjęciach pokazane są dwa wyświetlacze z metalową tylną ścianką.
Na jednym z nich kolory są wyraźnie jaśniejsze, różnicę widać też na odcieniach, szczególnie koloru żółtego.
Aparat w telefonie nie oddaje dobrze tego co widać na żywo, w rzeczywistości menu ciemniejszego wyświetlacza
jest w kolorze blisko pomarańczowego. Tak samo widać różnicę odcieni w napisie JOKER SDR na ekranie powitalnym.
[attachment=16277] [attachment=16279]
[attachment=16280] [attachment=16281] [attachment=16282]

Grafika interfejsu rysowana jest kontrastowymi kolorami, dlatego mimo różnic w odcieniach nie zmienia się czytelność.
Przyglądając się uważnie całej treści na ekranie podczas sprawdzania opisanych typów ekranów, znalazłem kilka miejsc,
gdzie elementy nie były dobrze pozycjonowane, brakowało drobnej korekty w lewo, w prawo, w górę lub w dół.
Wszystkie takie drobnostki jakie znalazłem, poprawiłem w wersji 1.3. Przy okazji Wojtek SP1NQR znalazł słaby punkt
podczas działania AGC i zostały wprowadzone kolejne zmiany w tej funkcji, mam nadzieję, że już ostatnie.
Kończąc ten wpis pokażę jeszcze zdjęcie raportu w konsoli, gdzie podawana była prędkość z jaką oba rdzenie
wykonują w pętli swoje zadania. Osiągnięty wynik przekłada się na dobrą czytelność telegrafii na wodospadzie.
[attachment=16284]

Na poniższym zdjęciu udało mi się uchwycić widok przesyłanego pozdrowienia 73.
[attachment=16285]

Dziś śmingus-dyngus, w paśmie 40m telegrafia zalała wodospad sygnałami w zawodach jak wiosenny deszcz.
[attachment=16286]

Wersja 1.3 znajduje się tam gdzie wszystkie inne materiały Jokera, pod linkiem podanym wcześniej w pliku tekstowym.
Stron: 1 2 3 4