Na wstępie znajduje się „tło historyczne” przybliżające przyczyny powstania projektu, jeżeli ktoś jest zainteresowany jedynie kwestiami technicznymi proszę przejść od razu do części poświęconej skróconemu opisowi konstrukcji sprzętowej.
Jak to się zaczęło
Odkąd sięgam pamięcią, zawsze byłem zafascynowany radiem. Gadające pudełka żywo rozbudzały wyobraźnię i ciekawość dziecka

Z biegiem czasu coraz bardziej docierało do mnie, że zrozumienie tego niesamowitego zjawiska, wymaga większego zaangażowania i cierpliwości. Poznanie praw fizyki i zasad rządzących tajemniczym światem połączonych drucików, kolorowych koralików, kapeluszy i lizaków okazało się nieuniknionym następstwem tej właśnie fascynacji.
O ile słuchanie I programu polskiego radia na falach długich nie należało do najciekawszych, o tyle nurkowanie w morzu krótkofalowych radiostacji, zwłaszcza po „zdekodowaniu” transmisji jednowstęgowych wspominam jako niezwykle fascynujące.
Całkiem niedawno dowiedziałem się dopiero, do czego służyły audycje z czytaniem ciągów cyfr i liter, jak również poznałem historię uporczywego stukotu dzięcioła zza wschodniej granicy

W niedługim czasie nastąpił rozkwit telefonów bezprzewodowych, przez rsła po pierwsze telefony komórkowe nmt. Równocześnie CB radio jak i krótkofalarstwo zapukało do drzwi wielu miłośników fal radiowych... Ale to już historia na inną okazję

Równocześnie z radiowymi technikami przekazu oraz elektroniką, moje zainteresowania objęły muzykę i jak się to teraz mówi sprzęt HiFi. Jednym z pierwszych bliższych kontaktów z radiofonią wysokiej jakości był sylwester roku 198? kiedy pod nieobecność mojego starszego brata postanowiłem podłączyć na zapałkach moje słuchawki do „amplitunera zodiak DSS402” w celu wysłuchania nocnej audycji w stereo

Około 10 lat później miałem już zbudowany swój pierwszy stereofoniczny nadajnik wraz z „infrastrukturą”. Emitowałem swoje własne, zwykle wieczorne audycje kilka razy w tygodniu. Trwało to ponad rok. Z powodu małej mocy i nieszczęśliwej lokalizacji radio było słyszalne jako tako w zasięgu około kilku kilometrów, ale nie przeszkadzało to by cieszyć się z osiągnięć techniki oraz swoich umiejętności

Mikser 4 kanałowy po przeróbkach umożliwiał podłączenie 8 źródeł, posiadał wyjścia podsłuchu miksu na słuchawki dla dwóch „operatorów” oraz wbudowany ogranicznik amplitudy z kilkusekundowym czasem powrotu. Na wyjściu miksera znajdował się mikser mikrofonowy z regulowaną automatyką wzmocnienia jak i wyciszania sygnału z miksera głównego. Posiadał też wyjście na sygnalizator włączonego mikrofonu „on air” w postaci wymontowanego oświetlacza led z czarno-białego skanera. Załączanie mikrofonu odbywało się dotykowo na specjalnym panelu, ponieważ wszelkie stuki i kliki podczas realizacji audycji uznawałem za wysoce nieprofesjonalne. Ogólnie bardzo dbałem o techniczną stronę radiostacji, zarówno w dziedzinie radiowej jak też realizacji fonicznej. Oczywiście na miarę ówczesnych możliwości technicznych, wiedzy i umiejętności. Nad jakością emisji pomagał czuwać, mój pierwszy amplituner technics sa-290

W tamtych latach (tu akurat pamiętam dokładnie przełom 1995 1996) telewizja jak i radio prezentowały jeszcze akceptowalny poziom merytoryczny jak i kulturalny. Jeśli miałem wtedy jakiś wzorzec do naśladowania to mógł to być program 3 polskiego radia. Rmf fm był dla mnie już nie do zniesienia, mimo iż wcześniej lubiłem niektóre ich audycje (ktoś pamięta konkurs „czułe ucho” i piosenkę „leti wrana”

Chciałbym, aby ten przydługi wstęp przybliżył nieco przyczyny realizacji poniższego projektu, powstałego zarówno z zamiłowania do radia jak również nostalgii do czasów, kiedy w ulubionym tunerze fm, można było posłuchać relaksującej muzyki, a nie tak jak teraz, ściśniętej kompresorem monotonnej sieczki z jedynie słusznymi wiadomościami. Wiem że ta patologia oszczędza nieco niektóre lokalne radiostacje, ale traktuję to jako wyjątki potwierdzające regułę. Jeżeli jest jakieś radio którego da się słuchać, najprędzej znajdę je dzisiaj jedynie w internecie.
Na marginesie zachęcam prześledzić historię powstania i rozwoju technik masowego przekazu w kontekście indoktrynacji i sterowania społeczeństwem. W dzisiejszych czasach totalnej wojny informacyjnej, cybernetyczne podstawy rzucą wiele światła na aktualną sytuację „polityczno sanitarną”.
Inspiracja motywacja
W końcowej fazie słuchania muzyki z radia fm, stałem się posiadaczem bardzo stylowego w moim odczuciu tunera firmy fisher mianowicie FM-915. Był to dla mnie w tamtym czasie szczyt marzeń jeżeli chodzi o design, funkcjonalność jak też jakość odtwarzanego dźwięku. Po upadku radiofonii i sygnałach że przyszłość radia FM rysuje się w kolorach DAB. Tuner znalazł się na długie lata w piwnicy, by w końcu zostać rozebranym na części w oczekiwaniu na zezłomowanie (postanowiłem, że jedynie obudowę użyję ponownie do jakiegoś projektu, płyta główna wraz z trafem wylądowały w pudle ze złomem elektronicznym).
Na nieszczęście jak i szczęście zarazem, nie znalazłem czasu by coś z tym tematem od tamtej pory zrobić i tak tuner w częściach przeleżał parę lat, o mało nie lądując nawet na śmietniku. Dzisiaj jestem przekonany, że do przywrócenia drugiego życia sprzętowi zainspirowały mnie filmy Krzysztofa Bielewicza oraz Adama Śmiałka. Dzięki nim przypomniałem sobie stare dobre czasy urządzeń z duszą, zbudowanych z pasją przez prawdziwych konstruktorów (nie księgowych). Motywacją do stworzenia „dream fm” była również możliwość przywrócenia życia innym tunerom, jeżeli ktoś zdecydował by się zaadaptować proponowaną przeróbkę w swoim sprzęcie. (Oczywiście pod warunkiem że tak samo jak ja nie trawi środków masowego ogłupiania, lecz nadal kocha radio i wspomnienia z nim związane).
Pomyślałem pewnego razu, że ową stylową obudowę można wykorzystać na radio internetowe wraz z dyskiem sieciowym gdyż w FM-915 znajduje się tyle miejsca, że można by tam umieścić małego peceta. Próbowałem nawet kilka razy wpasować w okienko jakiś wyświetlacz, jednak nie znalazłem nic co by mnie zadowalało.
Rozmyślałem również, jak by to było gdyby zbudowany nadajnik radiowy miał stylową obudowę i elegancki wyświetlacz, nie tak jak do tej pory pełna makaronu, plastikowa walizka

Czym właściwie jest „dream fm” ?
Dream-fm to projekt adaptacji tunera FM 77.5-108MHz przy współpracy z nadajnikiem, do odtwarzania dźwięku z raspberry pi, przy zachowaniu wszystkich funkcjonalności oryginalnego tunera. Oznacza to w praktyce że każda częstotliwość nastrojona tunerem jest odwzorowana numerem streamu/utworu na aktualnie załadowanej palyliście (w moim przypadku jest to MPD MPC player). Również opcja skanowania częstotliwości jest wspierana i naciśnięcie przycisku scan spowoduje zatrzymanie na niedalekiej częstotliwości oraz włączenie muzyki powiązanej z nią.
Z czego to jest zrobione
Całość projektu składa się z następujących elementów:
-Tuner FM jako baza urządzenia użyczająca zasilacza i obudowy w tym przypadku jest to FM-915 firmy fisher
-raspberry pi służący do odtwarzania muzyki z radia lub dysku, oraz kontrolowania urządzeń współpracujących
-przetwornik cyfra-analog na UDA1334
-filtr MPX w oparciu o wzmacniacz operacyjny i pasywne flitry LC ze starego amplitunera
-nadajnik FM mojej konstrukcji, jednak nie takie było jego pierwotne przeznaczenie

-koder stereo mojej konstrukcji
-preskalaer RF do pomiaru częstotliwości heterodyny
-przetwornica 20V/5V, prawie fabryczna konstrukcja

-sterownik zasilania wyświetlacza VFD oraz podświetlania LED (na dokładkę

Dokładniejszy opis elementów składowych systemu:
FM-915
Ponieważ do urządzenia jest dostępny schemat oraz kilka darmowych kartek serwisówki, nie będę się tu zbytnio rozpisywał. Wspomnę jedynie kilka ciekawostek jakie napotkałem podczas obcowania z tą japońską technologią

Tuner działa w oparciu o TMP47C441 - 4bitowy procesor w technologii cmos, dzięki czemu umożliwia zapamiętanie stacji w pamięci ram podtrzymywanej kondensatorem 2000uF.
Procesor steruje też syntezerem LM7000 (LML7000N jest niepełnosprawną szumowo wersją LM7000)
Podczas pracy na zakresie AM głowica FM jest cały czas zasilana, heterodyna działa.
Zasilanie tunera nie jest odłączane po stronie pierwotnej i urządzenie wyłączone pobiera 1.5W mocy

Blok zasilania VFD był projektowany na duże skoki napięcia chyba od 150-250V, bo równoległy zasilacz z diodą zenera, potrafił zmarnować prawie 2W mocy na rezystorze R416 470R który już dawno wymieniłem na 1k (co w zupełności wystarcza przy aktualnym stanie sieci zasilającej – stabilne 230-240V)
Tuner FM również posiada problem w postaci obwodu LC który podobno wymaga systematycznego dostrajania (raz do roku go stroiłem kiedyś), cewka L101 zaznaczona na schemacie czerwonym kolorem. Rozstrojenie objawia się odbiorem stacji na częstotliwości sąsiedniej, zamiast na 100MHz odbieramy na 100MHz oraz 100.05MHz.
Na czerwono również zaznaczyłem tranzystor Q405, to z powodu jego wysokiej temperatury, można było więcej mocy wytracać na rezystorze szeregowym, jednak nie jest tragicznie i jedyne co warto zrobić, to poprawić luty pod tranzystorem, bo jak widać na jednym ze zdjęć czasem może być nieciekawie.
Schemat dostępny w sieci zawiera błędnie poprowadzoną linię zasilania z emitera Q207. Na moim schemacie poprowadzona została zgodnie z tym co zastałem na PCB, zresztą od początku patrząc na schemat wdać było że wcześniejsze połączenie było bez sensu. Przypadek ?

Procesor posiada linię REM oraz AF do podłączenia z wzmacniaczem gdzie prawdopodobnie odbiornik IR w wzmacniaczu jest uwspólniony i jego sygnał jest kierowany na linię REM.
Niestety przeskanowałem to wejście wszystkimi kodami w standardzie NECa bez odzewu ze strony procesora. Jeśli ktoś wie jak działa komunikacja w tym zestawie proszę dać znać.







Przetwornik cyfra analog (DAC)
Wybór przetwornika jest wbrew pozorom dość istotnym elementem, ze względu na skończoną dobroć i nachylenie filtrów wejściowych. Składowe sygnału powyżej 19kHz w koderze stereo ulegają aliasingowi, najlepiej gdyby na wyjściu daca nie było nic powyżej 15kHz, jednak to nierealne...
W pierwszych próbach z nadajnikiem użyłem stary nos dac TDA1543 podłączony bezpośrednio przy samplowaniu 44.1kHz:) (spróbuję jakoś zamięścić próbki audio co się wtedy działo)

W pamięci miałem całkiem przyjemny chip znany z legendarnej serii kart sound blaster, jednak w wersji z wbudowaną pll któremu do działania wystarcza sygnał jedynie I2S. Tak więc zbudowałem w jeden wieczór przetwornik z użyciem tanich i łatwo dostępnych układów (10 sztuk kosztuje tyle co jedna płytka pcb z chin, więc wybór był prosty). Ponieważ sam sygnał i2s jak się okazało podczas testów potrafi narobić bajzlu w sygnale mpx, było dobrym pomysłem maksymalne skrócenie sygnałów sterujących, co też uczyniłem montując dac bezpośrednio na płycie raspberry. Jak widać płytka posiada wylutowane złącze na taśmę aby ułatwić podłączanie się do I2S wyprowadzonego na goldpiny kątowe. Bardzo ważne okazało się rozdzielenie masy analogowej i cyfrowej w tym przypadku jest tam rezystor 10R.




Filtr MPX
Płytka filtrów MPX zawiera pasywne obwody LC z tunera FM (przedpotopowego) wraz ze wzmacniaczem operacyjnym do regulacji poziomu sygnału. Typ wzmacniacza wynika z tego co posiadałem akurat na stanie i mogło być zasilane z 5V. Jak widać padło na OPA2228 z sampi od TI, którego potencjał w takiej aplikacji to marnotrawstwo










Nadajnik FM
Nadajnik został zbudowany w oparciu o pierwotną, kieszonkową wersję, powstałą w okolicach 2003 roku. Stąd użycie wypasionych kontrolerów 90S2313


W dawnej wersji nazwijmy ją „nadajnik mini” pętla pll była bardzo szybka (takie były też założenia), jednak ceną za tę prędkość było ograniczenie częstotliwości od dołu. Pochodną nierówności charakterystyki była następnie kiepska separacja kanałów dla niskich częstotliwości spowodowana osłabieniem tychże przez małą stałą czasową filtru. W ostatecznej wersji udało się uzyskać przyzwoite pasmo przenoszenia dla częstotliwości od 20Hz, jednak okupione zostało to czasem strojenia ze skrajów pasma wynoszącym kilka sekund. Również kondensator 470uF w filtrze nie wygląda zbyt elegancko, lecz na aktualnym pcb nie dało się tego zrobić inaczej. Wersja „nadajnik mini” posiadała pomiar napięcia zasilania z użyciem dzielników i komparatora. W wersji aktualnej, komparator nie jest już używany, a wyjścia z portów są używane do zadawania prądu dla stopni końcowych wzmacniacza mocy RF. Jak widać na schemacie były również przeprowadzane próby z użyciem powielacza częstotliwości dla napięcia strojenia syntezera. Po zdobyciu diod pojemnościowych BB202 do przestrajania w całym zakresie wystarczyło napięcie około 3V.
Na ten moment płytka nadajnika posiada firmware umożliwiający zmianę mocy nadajnika za pomocą rozkazu przesyłanego usartem, można też całkowicie wyłączyć nadajnik a nawet uśpić procesor. Jest też rozkaz wymuszający nadawanie na wybranej częstotliwości. Syntezer pracuje z referencją 100kHz co przekłada się na doskonałe parametry szumowe generatora. Jak wspominam, gdy „przesiadłem się” z TSA6057 na tego LMXa to była zupełnie nowa jakość sygnału. Na tamte czasy nie znałem syntezy o lepszych parametrach jaki można by użyć do przenośnego transmitera małej mocy który pobiera możliwie najmniej prądu. Część radiowa jest inspirowana trochę radiotelefonem yaesu vx1r a trochę icom icq7, jakie w tamtym czasie posiadałem.
Miłym akcentem była możliwość użycia kilku tanich tranzystorów w.cz jako stopnia końcowego o sumarycznie większej mocy – pomysł konstruktorów z icoma. Przy okazji nadmienię, że dla 5V maksymalna moc stopnia w całym paśmie wynosi od około 0.5 do 1W na 50R. Ze względu na ograniczone zaplecze laboratoryjne w tamtym czasie charakterystyka mocy w funkcji pasma FM nie jest najlepsza, ale w naszym zastosowaniu nie ma to większego znaczenia, gdyż 1mW wystarczy w zupełności do zasilenia głowicy tunera poprzez wpuszczaną w otwór obudowy miniaturową antenę




Koder Stereo
Płytka kodera to układ prostego modulatora matrycowego sterowanego mikrokontrolerem. Zawiera układ preemfazy oraz filtr wyjściowy o paśmie 50kHz. Sygnał pilota jest generowany przez procesor za pomocą drabinki r2r. 7 Bitowy sinus jest następnie filtrowany analogowo, bo jak wiadomo czystość tego sygnału jest kluczowa dla jakości sygnału wyjściowego. Faza pilota względem kluczy analogowych jest regulowana w sposób cyfrowy, można ją zmieniać również podczas pracy za pomocą rozkazów odbieranych usartem (Dokładny opis ramek sterujących znajduje się w kodzie źródłowym modułu). Niestety z braku wzorca sygnału MPX, jako odniesienia użyłem odbiornik SDR, a regulację fazy dokonałem na max separacji kanałów. Na koniec należy dokonać analogicznej regulacji dekodera stereo na płycie tunera FM.




Preskaler RF
Preskaler służy do podzielenia częstotliwości heterodyny odbiornika na zakres częstotliwości możliwych do zmierzenia przez 90S2313 w module nadajnika. Zbudowany jest na układzie MC12022, który w zakresie poniżej 100MHz jest niezbyt czuły, stąd na wejściu znajduje się dodatkowy wzmacniacz, zabezpieczający również przed przedostawaniem się śmieci w kierunku głowicy. Dla sygnału wejściowego o poziomie kilkuset mV układ działa stabilnie i dostarcza sygnału na poziomie 5Vpp dla licznika mikrokontrolera. Bufor wejściowy jest istotny również ze względu na zapewnienie możliwie dużej impedancji wejściowej, co przełoży się na pomijalny wpływ takiego "sniffera" na napięcie rf dostarczane do oryginalnego syntezera (jeżeli odbiornik taki posiada). Dla wartości elementów ze schematu, wyjściowy konwerter ecl/ttl działa już na skraju możliwości, stąd gdy preskaler pracuje w zakresie samowzbudzeń na wyjściu nie jest generowany prawidłowy sygnał (powyżej kilku MHz). Ograniczona prędkość narostu zboczy sygnału wyjściowego jest w tym przypadku celowa, biorąc pod uwagę, że sygnał wyjściowy jest dostarczany zwykłym przewodem taśmowym. MC12022 został wybrany ze względu na łatwą dostępność i niską cenę. Można użyć dowolnego modułu który zadowoli się sygnałem wejściowym na poziomie 100mV i da na wyjściu sygnał 5V.




VFD saver
Oszczędzacz dorobiłem jako bonus, ze względu na chęć oszczędzenia życia wyświetlacza VFD, oraz dodania możliwości sterowania jego jasnością. Równocześnie kontroler steruje jasnością podświetlania, które w tym przypadku zostało zamienione z żarówki na led. Podczas adaptacji podświetlania na diodę, zwróciłem uwagę na możliwie dużą jej jasność oraz kąt świecenia. W efekcie końcowym, podświetlanie jest równomierne i jasne przy minimalnym poborze mocy. Ponieważ oszczędzacz w odróżnieniu od nadajnika i kodera zbudowałem w „obecnej dziesięciolatce”, nie użyłem 90S2313 ani nawet TINY13



Zasilacz 5V
Głównym napięciem dostępnym w urządzeniu jest 20V, a większość dodatkowej elektroniki potrzebuje 5V. Konieczne było więc użycie zasilacza/przetwornicy. W pierwszych podejściach testowana była przetwornica na LM2576, niestety jej częstotliwość z okolic 40kHz indukowała się w linii z sygnałem MPX w tunerze, owocując pojawieniem się piszczenia w wyjściowym sygnale stereo. Kolejnym kandydatem stał się więc moduł z LM2596.
Jak powszechnie wiadomo, a może nie, chyba wszystkie chińskie moduły z tym układem, tak naprawdę zawierają stary układ w stylu LM2576 co łatwo sprawdzić podłączając oscyloskop. Tak więc należało zakupić oryginalny układ wymieniając przy okazji wątpliwej jakości elektrolity i trymer. Co ciekawe zastąpienie trymera rezystorem 1k, spowodowało uzyskanie idealnego napięcia 5V na wyjściu modułu.
Artykuły o podróbkach przetwornic:
http://hayperek.pl/2020/03/22/nie-wszystko-zl...o-sie-swieci-czyli-o-przygodach-z-podrobkami/
https://www.mrelectronics.net/single-post/2017/04/19/LM2596-switching-regulator-board


Raspberry Pi B2
Ponieważ procedura przygotowania minikomputera do pracy jako radio internetowe zajęła by sporo miejsca, a opisów w internecie jest mnogość, dodatkowo rozrzut urządzeń na dzień dzisiejszy jest równie duży, stąd zamieszczę jedynie screeny z instalacji dietpi, bo na takim os ostatecznie stara malina skończyła, wspominając kilka słów o skrypcie sterującym.
Jak widać komputer musi mieć uruchomioną szynę I2S (jeżeli użyjemy zewnętrznego daca) oraz port szeregowy. W moim przypadku został uruchomiony serwer smb i plik radio.py znalazł się na dysku sieciowym wraz z przestrzenią na lokalne pliki muzyczne (co ułatwiało rekonfigurację).
Dietpi daje szybką możliwość ustawienia samplerate sygnału i2s z czego należy koniecznie skorzystać, jeżeli chcemy aby końcowa jakość audio była na możliwie wysokim poziomie. W moim przypadku użyłem SR 88.2kHz oraz ustawień dla hifiberry-dac. Na zakończenie należało włączyć autostart i dopisać w pliku '/var/lib/dietpi/dietpi-autostart/custom.sh' ścieżkę do swojego skryptu obsługi radia, w moim przypadku było to '/./mnt/dietpi_userdata/Radio/radio.py'. Nie obeszło się również bez 'apt install python-serial ' oraz ' apt install python-rpi.gpio'. Instalacja mpd mpc oraz uruchomienie alsa, również może okazać się niezbędna. Byłbym zapomniał, szalony dietpi po każdym reboocie postanawia dokonać procedury updejtowania, co w przypadku wyłączenia zasilania podczas updateu może przysporzyć kłopotów. Ponieważ nie znalazłem opcji wyłączenia tego z poziomu okienek, więc zrobiłem to z poziomu pliku 'boot/dietpi.txt' pisząc CONFIG_CHECK_DIETPI_UPDATES=0.







Takim sposobem dotarliśmy do skryptu obsługującego. Zgłębiających źródło, poproszę o wyrozumiałość, bo ten skrawek kodu to właściwie mój pierwszy kontakt z pytonem, więc miejscami może być co najmniej śmiesznie

Głównym zadaniem skryptu jest komunikacja z modułem nadajnika, kodera oraz oszczędzacza fvd. O ile dwa ostatnie nigdy nie wysyłają danych nie proszone, o tyle moduł nadajnika po wykryciu zmiany częstotliwości tunera sam z siebie wysyła na usart ramkę z informacją o aktualnej częstotliwości. Z tego powodu pytonowy skrypt czeka z niecierpliwością na pojawienie się takich danych, po czym przechodzi do ich przetwarzania.
Skrypt sam z siebie po zadanym czasie zmienia jasność vfd oraz led, steruje odtwarzaczem mpd nadzorując jednocześnie czy stream się nie zawiesił (restartuje w razie problemów). Po odebraniu na gpio23 przerwania wywołanego stanem niskim (włączenie AM band) uruchamia procedurę wyłączania wszystkiego, pozostaje jedynie aktywny vfd saver z ostatnio zadaną jasnością led i wyświetlacza.
Okablowanie, moduły i masa
Na zakończenie pozostały informacje na temat połączenia tego wszystkiego w jedną całość. Dokumentację „makaronu” czyniłem niechętnie, acz ze świadomością iż w razie awarii będzie stanowić nieocenione źródło pomocy w poszukiwaniach ewentualnych niedomagań systemu



Obudowa i złącza zewnętrzne
Zgodnie z założeniami obudowa nie została zmodyfikowana, za wyjątkiem pozbycia się mało użytecznej anteny pętlowej. W miejscu jej mocowania zamontowane zostały dwa gniazda. Jedno RF_H z dostępnym sygnałem radiowym, gdyby ktoś chciał używać odbiornika jako nadajnika


W załącznikach znajdują się min źródła kodu do poszczególnych modułów (za wyjątkiem radio.py niestety w asemblerze

Cool! Ranking DIY