Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
MW-Sender mit ESP32
#1
Ich wollte hier mal mein "Projekt" vorstellen und hoffe, dass ihr mich nicht gleich "zerreißt"...

Das Problem: Ich fahre einen Oldtimer (AMC Pacer X), Bj. 1975, und der hat ein AM-Radio. Bekanntlicherweise hört man in D da nicht gerade viel. Aber ich will was hören !
Also gab und gibt es viele Ideen, vom Einbau eines moderneren Radios, eines Retro-Radios oder eines (kabelgebundenen) Adapters.
Ich wollte es aber besser und OHNE Modifikation des Original-Radios.

Hier nun mein Projekt.

Ich benutze einen ESP32-WROOM für (mindestens) zwei Zwecke: einerseits für die Bluetooth-Verbindung mit dem SmartPhone um Audio zu übertragen, andererseits um den Träger (ja, ich weiss: Rechteck, Oberwellen usw.) zu erzeugen.
Die NF kommt vom ESP32 über I2S (nicht I2C) zum PCM5102 und von dort auf eine recht simple Schaltung aus ein paar Widerständen und Kondensatoren. Die Idee habe ich über einen Artikel von B.Kainka gefunden. Der Träger wird vom ESP32 über PWM ("LEDC") mit einem Tastverhältnis von 1:1 erzeugt und geht auf einen GPIO. Der "Trick" ist, diesen GPIO-Pin OpenDrain zu betreiben.
Alles weitere ist ein wenig Software...

Zur Zeit sind - nach einem ersten Versuchsaufbau - die ersten Prototypen in der Produktion und sollten noch in dieser Woche hier eintreffen...

Das HF-Signal wird dann direkt über die Antennenbuchse eingespeist, so dass sich das Problem der Abstrahlung (und auch der Oberwellen - who cares ?) nicht ergibt.

Hier der Modulator:

[Bild: schematic.png]

Und so soll das Board  (59 * 33 mm) dann ausehen:

[Bild: board.png]


Ich habe mich entschlossen, das PCM5102 Modul und den Step-Down-Wandler als fertige Module einzukaufen, weil das bedeutend günstiger ist: der PCM5102-IC kostet schon ca 5-7€ (wenn man ihn bekommt) , das fertige Modul (bei Ali*ex) nur  3.74€ und 10 Stück (!) vom DC-DC-Wandler unter 6 €. Da spielt der Versand kaum eine Rolle, wenn man etwas Geduld hat.

Kommentare und Verbesserungen willkommen !
Think different ! 

Viele Grüße aus Berlin 
Frank 
Zitieren
#2
Hallo Frank.

Zerreißen wird Dich sicher hier niemand, allerhöchstens das Projekt, wenn es Zweifel gibt, dass es so gut funktioniert.

Danke für Deinen Beitrag, bin gespannt auf die Diskussion dazu.
~~~Es gibt nichts Gutes, außer man tut es (Erich Kästner)~~~
Die einzige, falsche Entscheidung die du treffen kannst ist, keine Entscheidung zu treffen.
Ich bin nicht DICK, ich bin nur zu KLEIN für mein Gewicht  Big Grin
Zitieren
#3
Danke Anton - das meinte ich ja mit „zerreißen“ …
Think different ! 

Viele Grüße aus Berlin 
Frank 
Zitieren
#4
So, hier noch mal, der Vollständigkeit halber, das Projekt mit Schaltplan:

[Bild: esp32_bt_am_sch.png]

Als ESP32-Modul eignet sich zum ausprobieren eines mit BT (versteht sich), ich benutzte dieses:

[Bild: esp32.jpg]

und für den DAC PCM5102 dieses:

[Bild: pcm5102a.jpg]

Wichtig ist, dass das Solder-Pad (grün markiert) verbunden wird !

Und hier der Code zum ausprobieren (PlatformIO):

main.cpp

Code:
#include <Arduino.h>
#include "BluetoothA2DPSink.h"

BluetoothA2DPSink a2dp_sink;

const char * dev_name = "ESP32.AM";  // Bluetooth ID
int freq_khz = 990;                   //Carrier-frequency == 990 kHz

const byte carrier_gpio = 16;         // Carrier-Output-Pin
int bits = 2;                         // 2^2 == 4
int duty = 2^bits / 2;                // 50%      

gpio_num_t carrier_ = gpio_num_t(carrier_gpio);


void setup() {

Serial.begin(115200);

// Setup Carrier (PWM aka LEDC)
ledcAttachPin(carrier_gpio, 0);
ledcSetup(0, freq_khz * 1000, bits);
pinMode(carrier_gpio, OUTPUT_OPEN_DRAIN);      // THIS DOES THE TRICK !!
ledcWrite(0, duty);

// Start BT
  a2dp_sink.set_mono_downmix(true);
  a2dp_sink.start(dev_name, true);

}

void loop() {
}


und die dazugehörige PlatformIO.ini

Code:
[platformio]
description = ESP32_BT_AM
default_envs = esp32dev

[env:esp32dev]
platform = espressif32
board = esp32dev
framework = arduino

;edit this line for your port
monitor_port = /dev/cu.usbserial-0001
monitor_speed = 115200
lib_deps =
    https://github.com/pschatzmann/ESP32-A2DP.git
;build_flags = -DCORE_DEBUG_LEVEL=5
Think different ! 

Viele Grüße aus Berlin 
Frank 
Zitieren
#5
Big Grin 
Die gute Nachricht: die Boards sind angekommen !

Gleich ausgepackt und eins bestückt 

[Bild: img_4974.jpeg]

[Bild: img_4965.jpeg]


Die schlechte Nachricht: es funktioniert, aber da sind doch deutliche Verzerrungen zu hören. Blöd ist, dass ich momentan keinen vernünftigen Oszi habe - nur so eine kleines TFT-Dingens :-( 
Und da muss ich mich auf mein Gehör und den Empfänger (RFT R2130 - "Garant") verlassen ...

Aber - und das ist das gute - es funktioniert; prinzipiell jedenfalls ..
Think different ! 

Viele Grüße aus Berlin 
Frank 
Zitieren
#6
Hallo Frank,

das ist ein schönes Projekt.
Benutzt Du die "Standard" I2S-Pins für Dein Projekt?
Hier wird ein ähnliches Problem diskutiert.
Ich kann nur empfehlen auch die gelösten Fehler dort im Forum zu lesen.
Meist sind zusätzliche wertvolle Informationen zu finden.
Grüße aus Wassenberg,
Norbert.
Zitieren
#7
Danke Norbert - ich hatte das auch zuerst im Verdacht ...
Da ich aber einerseits die Standard-Pins für I2S benutze und andererseits auch den Output des PCM5102 beobachten konnte - keine Verzerrungen.
Trotzdem habe ich aber den Fehler gefunden : C4 (in der Schaltung oben) hat die Verzerrungen verursacht  Irgendwie hatte ich den vorgesehen, weil ich irgendwo diese Art der Auskoppeln gesehen hatte ... Wird im nächsten Layout berücksichtigt.

Jetzt hört es sich - trotz der Oberwellen - ganz "ordentlich" nach Mittelwelle an !

Hier nochmal zum Größenvergleich:

[Bild: img_4981-e1641816199512.jpeg]
Think different ! 

Viele Grüße aus Berlin 
Frank 
Zitieren
#8
Hallo Frank,
schön zu hören, dass es so funktioniert wie es soll.
Optimieren kann man fast immer....
Grüße aus Wassenberg,
Norbert.
Zitieren
#9
Danke Norbert - klar kann man optimieren, mal sehen ... als nächstes gehts ins Auto und dann lasse ich vielleicht noch ein paar Stück produzieren (für Oldtimer-Kumpels)
Think different ! 

Viele Grüße aus Berlin 
Frank 
Zitieren
#10
sehr cooles Projekt, in Idee und in Ausführung! Und die Raumkapsel ist auch mega hübsch!
Gruß,
Jupp
-----------------------------

was du baust ist immer mit dir verbunden
(Lego)

Einsamkeit ist nur ein Mangel an Technologie
(@beetlebum)
Zitieren
#11
Danke Jupp - ja, der wird gerade überarbeitet, damit der Sommer kommen kann :-)
Mal sehen, ob ich zu dem Transmitter noch etwas "hinzufügen" kann (Oberwellen-Filter oder so).
Think different ! 

Viele Grüße aus Berlin 
Frank 
Zitieren
#12
Während ich mich mit einem teilweise Neu-Design des Boards beschäftigte, kam die Idee, das ganze mit einem ESP32-Devkit zu bauen - leichter zum Selbstbau und testen, weil keine SMD Bauelemente.
Und das ist dabei herausgekommen:

[Bild: img_4997.jpeg]

Das Board (oben Bestückungsseite), es ist exakt so groß wie das ESP32-Devkit (38-Pin)

[Bild: img_4998.jpeg]

... als erstes habe ich die passiven Bauelemente bestückt ..

[Bild: img_4999.jpeg]

... dann die Pin-Header für das PCM5102A-Modul aufgelötet ...

[Bild: img_5001.jpeg]

... dann das PCM5102A-Modul auf die Pin-Hader "gestülpt" und angelötet ..
... und die "weiblichen" Header für das ESP32-Modul

[Bild: img_5002.jpeg]

[Bild: img_5004.jpeg]

... und zum Schluss das Antennenkabel angelötet und das ESP32-Modul aufgesteckt.
Versorgt wird diese Variante über den Mini-USB.
Zusätzlich habe ich - man sieht das auf der Board-Rückseite - 4 GPIOs, 5V, 3.3V und GND verfügbar gemacht: da könnte man z.B. ein Display (I2C oder SPI) anschliessen.
Schön kompakt - finde ich.

Die Software ist die gleiche geblieben und durch des USB kann die Software sehr schnell modifiziert werden ..

ach so: ich habe verschiedene Frequenzen ausprobiert - außer MW ist auch LW und KW möglich, 6MHz waren kein Problem !
Think different ! 

Viele Grüße aus Berlin 
Frank 
Zitieren
#13
Hallo Frank,

Du hast wirklich den bei vielen Platinen verschenkten Bauraum geschickt genutzt.
Natürlich auf Kosten des nicht (ohne erhöhten Aufwand) austauschbaren PCM5102A.

Alles in Allem ein cooles Projekt!
Grüße aus Wassenberg,
Norbert.
Zitieren
#14
Danke Norbert für deine positive Rückmeldung !

Beim nächsten Aufbau werde ich für das PCM5102A-Modul diese gedrehten Pin-Header einsetzen (hatte gerade keine da), die sind nicht so hoch und dann könnte man das Modul auch aufsteckbar machen.
Leider bekommt man die PCM-Module nur fertig mit aufgelöteter Kopfhörerbuchse - die macht das unnötig hoch ...
Think different ! 

Viele Grüße aus Berlin 
Frank 
Zitieren
#15
Die Kopfhörerbuchse abzulösen dürfte eigentlich kein Problem sein, Frank.
Bei Header-Leisten hebel ich erst den Kunststoff-Halter der Pins hoch, so dass die Stifte einzeln stehen.
Dann können sie Stück für Stück ausgelötet werden.
Grüße aus Wassenberg,
Norbert.
Zitieren
#16
Ja, so geht das auch ... mal sehen, was ich beim nächsten Modul mache....
Jetzt bin ich erstmal (nebenbei) dabei, noch ein OLED-Display anzuschliessen: dann kann man z.B. anzeigen, was gerade so "läuft" (Titel, Interpret usw.)
Think different ! 

Viele Grüße aus Berlin 
Frank 
Zitieren
#17
(25.01.2022, 12:56)DrNeurosurg schrieb: Ja, so geht das auch ... mal sehen, was ich beim nächsten Modul mache....
Jetzt bin ich erstmal (nebenbei) dabei, noch ein OLED-Display anzuschliessen: dann kann man z.B. anzeigen, was gerade so "läuft" (Titel, Interpret usw.)

Hallo gibt es zu dem Projekt neuigkeiten ?
Würde das gerne nachbauen und eine Version mit Display wäre der absolute hit ?

Grüße Helmut
Zitieren
#18
(16.01.2024, 15:30)goggo schrieb:
(25.01.2022, 12:56)DrNeurosurg schrieb: Ja, so geht das auch ... mal sehen, was ich beim nächsten Modul mache....
Jetzt bin ich erstmal (nebenbei) dabei, noch ein OLED-Display anzuschliessen: dann kann man z.B. anzeigen, was gerade so "läuft" (Titel, Interpret usw.)

Hallo gibt es zu dem Projekt neuigkeiten ?
Würde das gerne nachbauen und eine Version mit Display wäre der absolute hit ?

Grüße Helmut

Hallo Helmut,

leider habe ich in der letzten Zeit ein paar andere Projekte verfolgt :-(, so dass ich diese erst einmal auf Eis gelegt habe - aber ich denke darüber nach, ob ich die Idee mit dem hier vorgestellten Modul realisiere ... mehr gibts dann hier
Think different ! 

Viele Grüße aus Berlin 
Frank 
Zitieren
#19
(17.01.2024, 11:00)DrNeurosurg schrieb:
(16.01.2024, 15:30)goggo schrieb:
(25.01.2022, 12:56)DrNeurosurg schrieb: Ja, so geht das auch ... mal sehen, was ich beim nächsten Modul mache....
Jetzt bin ich erstmal (nebenbei) dabei, noch ein OLED-Display anzuschliessen: dann kann man z.B. anzeigen, was gerade so "läuft" (Titel, Interpret usw.)

Hallo gibt es zu dem Projekt neuigkeiten ?
Würde das gerne nachbauen und eine Version mit Display wäre der absolute hit ?

Grüße Helmut

Hallo Helmut,

leider habe ich in der letzten Zeit ein paar andere Projekte verfolgt :-(, so dass ich diese erst einmal auf Eis gelegt habe - aber ich denke darüber nach, ob ich die Idee mit dem hier vorgestellten Modul realisiere ... mehr gibts dann hier


Ja Super , ich bin gerne dabei und kann passende Hardware dazu machen ;-)
Zitieren
#20
doppelpost
Zitieren


Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Universeller Sender für AM, FM, DAB(+), DVB-x, GPS für 20 Euro. Bernhard45 219 67.419 19.03.2024, 09:34
Letzter Beitrag: Recv24
  iRadioMini für ESP32 Bernhard45 17 11.090 09.03.2024, 22:29
Letzter Beitrag: OttoBerger
  Software Installer für den ESP32 pintel 18 940 29.12.2023, 18:29
Letzter Beitrag: Siegfried55
  Karadio für ESP8266/ESP32 saarfranzose 21 7.407 13.11.2023, 13:25
Letzter Beitrag: wmnbg
  Huth E72 Internetradio mit ESP32 saarfranzose 10 1.785 12.05.2023, 14:49
Letzter Beitrag: saarfranzose

Gehe zu: