Forum: Mikrocontroller und Digitale Elektronik nrf24l01+-Funkmodul wird in OpenDTU nicht gefunden


von Scorpi (scorpi)


Angehängte Dateien:

Lesenswert?

Hi,

ich mache gerade meine allerersten Schritte mit einem ESP32 NodeMCU und 
einem Funkmodul NRF24L01+. Ich habe die Variante mit Antenne. Es soll 
mit der OpenDTU-Firmware ein Hoymiles-Wechselrichter für eine 
Solar-Anlage abgefragt werden.

Hier die Komponenten:

https://www.komputer.de/zen/index.php?main_page=product_info&products_id=464


https://www.komputer.de/zen/index.php?main_page=product_info&products_id=528

Ein Bild meines Aufbaus habe ich angehangen.

In OpenDTU wird das Funkmodul nicht gefunden, und nun suche ich den 
Fehler und habe dazu Fragen.

1. Im OpenDTU-Projekt wird die IRQ-Leitung des Funkmoduls mit GPIO16 
verbunden. Mein NodeMCU-Modul hat statt GIO16 einen "RX2"-Eingang. Kann 
ich den verwenden, oder muss ich auf eine andere GPIO-Leitung 
ausweichen?

2. Wenn ich das richtig verstanden habe, sind die Abbildungen für das 
Pinout des Funkmoduls immer von der Oberseite (d.h. von der Seite mit 
den Bauteilen). Die Anschlusspins sind aber auf der Unterseite, d.h. ich 
muss spiegelverkehrt anschließen. Stimmt das so?

Hier ein Beispiel: 
https://www.makershop.de/download/Pinout-nRF24L01-PA-LNA-External-Antenna-Wireless-Transceiver-Module.png

3. Hier im Forum gibt es einige Berichte über Probleme mit der 
Stromversorgung im Zusammenhang mit diesem Funkmodul. Empfohlen wird an 
einigen Stellen ein 10 µF-Kondensator, wenn die Stromversorgung direkt 
vom µC kommt. Wie äußern sich solche Probleme? Geht das Modul dann gar 
nicht, oder wird lediglich die Funk-Kommunikation unzuverlässig?

4. Gibt es weitere Möglichkeiten, wie ich mich dem Problem nähern 
könnte? Da ich blutiger Anfänger bin, habe ich bisher keine weitere 
Hardware wie Oszi o.ä.

: Bearbeitet durch User
von Εrnst B. (ernst)


Angehängte Dateien:

Lesenswert?

zuallererst: Hast du die Pin-Leisten gelötet, oder sind die nur 
gesteckt?

von Scorpi (scorpi)


Lesenswert?

Hallo,

es ist alles nur zusammengesteckt, auch die Stiftleisten.

von Εrnst B. (ernst)


Lesenswert?

Scorpi schrieb:
> es ist alles nur zusammengesteckt, auch die Stiftleisten.

Solltest du als erstes beheben. Fehlersuche macht keinen Spaß, wenn dir 
ständig Wackelkontakte dazwischenfunken.

von Scorpi (scorpi)


Lesenswert?

Okay, danke.

Hat noch jemand Anmerkungen zu Frage 1 und 2? Dann würde ich das ganze 
gleich komplett zusammenlöten.

: Bearbeitet durch User
von planlos (Gast)


Lesenswert?

Scorpi schrieb:
> Dann würde ich das ganze
> gleich komplett zusammenlöten.

Nein, das machst Du nicht!

Löte erst einmal vernünftig und gerade die Leisten fertig.
Wie soll das sonst funktionieren?!

Dann konzentrierst Du dich auf die Dokumentation und verkabelst das NRF 
richtig.
Wenn alles funktionierts, darfst Du löten.
OK?!

von Εrnst B. (ernst)


Angehängte Dateien:

Lesenswert?

Scorpi schrieb:
> Hat noch jemand Anmerkungen zu Frage 1 und 2? Dann würde ich das ganze
> gleich komplett zusammenlöten.

Zu Frage 1:
Da ist das Problem, dass ESP8266, Arduino, NodeMCU abweichende 
Nummern-Schemata für ihre IOs verwenden.
In meinem letzten Projekt mit ESP+NRF steht das als Kommentar im Source:
1
// Name   NRF THT   NRF SMD    12F    NodeMCU
2
// VCC     2          1
3
// CE      3          3        GP2      D4
4
// CSN     4          4        GP15     D8
5
// SCK     5          5        GP14     D5
6
// MOSI    6          6        GP13     D7
7
// MISO    7          7        GP12     D6
8
// IRQ     8          8
9
// GND     1          2
Hilft dir aber überhaupt nicht weiter, ist ein ESP8266 statt ESP32 und 
ich hab keine IRQ-Leitung verwendet.


Edit: Beim ESP32 ist das Pin-Nummern-Chaos ähnlich...

: Bearbeitet durch User
von J. S. (jojos)


Lesenswert?

Die Pinbelegung ist auf die Oberseite bezogen, das ist richtig.

Die tatsächlich verwendeten Pins werden ja in der Konfiguration in der 
Weboberfläche eingetragen. Da kann man auch eine Debugausgabe 
einschalten die auch hilfreich ist.

Anfangs stimmten die Fritzing Bilder nicht mit den Voreinstellungen in 
der Software überein, das war zumindest für den ESP8266 so und sollte 
jetzt mittlerweile behoben sein. Deshalb trotzdem in der Konfigseite 
kontrollieren.

von Scorpi (scorpi)


Lesenswert?

Ich habe zum Thema ESP32-Pinout das hier gefunden, das entspricht meinem 
Modul und liest sich recht informativ.

https://lastminuteengineers.com/esp32-pinout-reference/

von Scorpi (scorpi)


Lesenswert?

J. S. schrieb:
> Die tatsächlich verwendeten Pins werden ja in der Konfiguration in der
> Weboberfläche eingetragen. Da kann man auch eine Debugausgabe
> einschalten die auch hilfreich ist.

Hi,

in der Weboberfläche finde ich nichts dazu. In der platformio.ini-Datei 
kann man aber die Pin-Zuweisung ändern und dann die Firmware neu bauen. 
Welche Debug-Ausgabe meinst Du? Oder beziehst Du Dich auf andere 
Software als OpenDTU?

von J. S. (jojos)


Angehängte Dateien:

Lesenswert?

ich habe die Ahoy DTU 0.5.17, ist OpenDTU für ESP32 eine andere Version?
da gibt es unter <ip>/setup jedenfalls die Seite für die Einstellungen. 
In der Pio.ini sind nur die defaults die überschrieben werden können.

edit:
ok, OpenDTU ist ein 'Schwesterprojekt' von dem Ahoy, sieht um einiges 
umfangreicher aus. Nur die Einstellungen für die Pinbelegung ist fix im 
Code, nicht online konfigurierbar.
RX2 ist D16, siehe Pinbelegung die Ernst gepostet hat.

: Bearbeitet durch User
von Scorpi (scorpi)


Lesenswert?

OpenDTU macht ungefähr das gleiche wie Ahoy, ist aber ein eigenständiges 
Projekt. Es benötigt einen ESP32, aber man kann es sehr einfach in VS 
Code bauen und hochladen.

Ahoy habe ich gerade mal ausprobiert, es sagt ebenfalls "W: WARNING! 
your NRF24 module can't be reached, check the wiring".

von J. S. (jojos)


Lesenswert?

Die SW kann afaik nicht das Fehlen der IRQ Leitung feststellen, der 
Fehler muss dann in der Verdrahtung der anderen Leitungen liegen.

von M. P. (matze7779)


Lesenswert?

Häufiger Fehler:
Viele glauben das "Plus" ist die externe Antenne. Auch so mancher 
Händler glaubt das.
Bitte mal direkt auf den Chip gucken (Lupe). Da muss auch das Plus drauf 
sein.

von Scorpi (scorpi)


Lesenswert?

Vielen Dank erst mal für die schnelle und konstruktive Hilfe trotz 
meiner ganzen Anfängerfragen.

Ich werde von meinem "Projektpartner" dann die Lötausrüstung nutzen und 
zunächst die Pin-Leisten verlöten.

von Scorpi (scorpi)


Angehängte Dateien:

Lesenswert?

M. P. schrieb:
> Häufiger Fehler:
> Viele glauben das "Plus" ist die externe Antenne. Auch so mancher
> Händler glaubt das.
> Bitte mal direkt auf den Chip gucken (Lupe). Da muss auch das Plus drauf
> sein.

Auf dem Chip steht auch das +, siehe Foto.

von M. P. (matze7779)


Lesenswert?

M. P. schrieb:
> Häufiger Fehler:
> Viele glauben das "Plus" ist die externe Antenne. Auch so mancher
> Händler glaubt das.

Nachtrag: Das Datenblatt in dem Shop ist vom normalen (nicht Plus).
Also mal genau gucken.
Wenn der Chip nicht der NRF24L01+ ist sondern der normale brauchst gar 
nicht weiter machen.

von M. P. (matze7779)


Lesenswert?

Ich hab nur Erfahrung mit dem ESP8266 und AhoyDTU.
Ohne Kondensator wird das Funkmodul zwar gefunden aber die 
Funkübertragung zum Wechselrichter funktioniert nicht.
Direkt am Funkmodul einen 100uF. Dann ist auch die Verbindung stabil 
aber nur auf Sendeleistung "Low".

Aber mit OpenDTU hab ich keine Erfahrungen. Daher halt ich mich mal 
zurück.

von NRFTestGuy (Gast)


Lesenswert?

J. S. schrieb:
> Die SW kann afaik nicht das Fehlen der IRQ Leitung feststellen,

Könnte sie schon wenn sie entsprechend intelligent wäre.
Man kann beim NRF24 verschiedene IRQs auslösen, auch
einen solchen ohne einen Funk-Gesprächspartner zu haben.
Nur, welche Quick-Hack-Software tut sich so etwas auch an?
Meine schon .....

Beitrag "NRF24L01+ test program for Arduino Uno"
Beitrag "NRF24L01+ test program for Arduino Mega"
Beitrag "NRF24L01 - Testprogramm für Windows PC"

Scorpi schrieb:
> Empfohlen wird an einigen Stellen ein 10 µF-Kondensator,
> wenn die Stromversorgung direkt vom µC kommt.

Nein, es wird ein keramischer Kondensator und ein Elko
empfohlen. Wer meint das nicht zu brauchen dem ist halt
nicht zu helfen. Und die Kondensatoren müssen an der
richtigen Stelle sitzen, nicht irgendwo an den 3.3V. Bei
deinen Stromfresser ESP darf der Elko ruhig noch etwas
grösser ausfallen. Wenn der Spannungsregler überhaupt
soviel Stromaufnahme erlaubt.

von NRFTestGuy (Gast)


Lesenswert?

Scorpi schrieb:
> Ich habe die Variante mit Antenne.

Nein, du hast die Variante mit Verstärker. Alle NRF24 Module
haben eine Antenne. Die Variante mit Verstärker braucht
besonders viel Strom. Ich würde eine getrennnte 3.3V-
Stabilisierung aufbauen die aus den 5V USB gespeist wird.

von NRFTestGuy (Gast)


Lesenswert?


von J. S. (jojos)


Lesenswert?

NRFTestGuy schrieb:
> Meine schon .....

Schön, dazu müsste die SPI Kommunikation aber funktioneren, und an der 
fehlt es noch. Da nützen auch noch so viele Kondensatoren nichts, das 
SPI muss laufen, dann ist die SW erstmal zufrieden. Und dann zeigt die 
auch an ob eine Verbindung gut oder schlecht ist, zumindest die Ahoy 
macht das.

von Scorpi (scorpi)


Lesenswert?

Inzwischen habe ich den Aufbau auf dem Breadboard so hinbekommen, dass 
das Funkmodul in OpenDTU erkannt wird. Allerdings ist nun keine Sonne 
mehr und daher gibts keine Infos vom Wechselrichter.

Danke für die vielen Tipps und Infos. Ich werde dann bei der nächsten 
Gelegenheit den Lötkolben schwingen.

von Scorpi (scorpi)


Lesenswert?

Nun ist die Sonne da und ich kann erfolgreich und zuverlässig Daten von 
2 Wechselrichtern empfangen.

von Waschbär (Gast)


Lesenswert?

Hi Scorpi,
was war jetzt der Grund oder was hast du gemacht das es jetzt geht?

Ich stehe gerade vor dem gleichen Problem und komme gerade nicht weiter.

Scorpi schrieb:
> Inzwischen habe ich den Aufbau auf dem Breadboard so hinbekommen, dass
> das Funkmodul in OpenDTU erkannt wird

von Scorpi (scorpi)


Lesenswert?

Der Testaufbau wird mit nur angestecktem Pin-Header einfach zu wackelig 
sein.

von NRFTestGuy (Gast)


Lesenswert?

Waschbär schrieb:
> was war jetzt der Grund oder was hast du gemacht das es jetzt geht?

Wenn's funktioniert dann kann man ja unverrichteter Dinge so
weiterwurschteln als ob nichts gewesen wäre. Hauptsache man
ist zufrieden, die Infos zur Lösung des Problems bleiben dem
interessierten Leser gerne vorenthalten. Immer schön Infos
für lau abgreifen und bloss nichts dafür geben. Danke.

Scorpi schrieb:
> Nun ist die Sonne da und ich kann erfolgreich und zuverlässig Daten von
> 2 Wechselrichtern empfangen.

von J. S. (jojos)


Lesenswert?

Scorpi schrieb:
> Der Testaufbau wird mit nur angestecktem Pin-Header einfach zu wackelig
> sein.

vor allem sind die billigen Dupont Kabel nur für die Tonne oder maximal 
als Blumenbindedraht zu gebrauchen. Die scheinen aus Metallschrot 
hergestellt zu sein: die Kontake sind aus Eisen (kann man mit Magneten 
testen) und leiern nach kürzester Zeit aus. Selbst die Drähte lassen 
sich kaum löten.
Einen Kabelbruch in so einem Kabel hatte ich auch schon, da sucht man 
sich einen Wolf.
Ich habe ein Set von Crimpkontakten und verschiedenen Gehäusen von 
Aliexpress, die sind ok. Die paar Minuten für selbstgefertige Kabel sind 
nichts gegen lange und frustrierende Fehlersuche.

von Dietrich J. (sprotte24)


Lesenswert?

J. S. schrieb:
> vor allem sind die billigen Dupont Kabel nur für die Tonne oder maximal
> als Blumenbindedraht zu gebrauchen. Die scheinen aus Metallschrot
> hergestellt zu sein: die Kontake sind aus Eisen (kann man mit Magneten
> testen) und leiern nach kürzester Zeit aus. Selbst die Drähte lassen
> sich kaum löten.

Kan es sein, das das Kontaktmaterial NICHT aus Eisen besteht?

Es gibt durchaus Kontaktmateriealien, deren Oberfläche vernickelt ist,
z.B. einen Elektrolytkondensator mit offenbar vernickelten 
Zuleitungsdrährten.
Auch vernickelte Leiterlitzen sind durchaus handelsüblich.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.