Komisches Problem mit RFM69HCW Funkmodul mit RadioHead

Hi,

Ich hab da nen Problem mit dem RFM69HCW und der RadioHead Bibliothek.

Ich habe das Funkmodul richtig verbunden und alles Andere überprüft, an der Hardware liegt es nicht.

Das Modul läuft über SPI an einem Arduino Mega Pro.
Pinbelegung wie folgt:
Slave-/ChipSelect Pin ist 4
Interrupt bzw G0 ist 3
RST ist 2
MOSI 51
MISO 50
SCK 52

Es ist das Modul von Adafruit für 5V und hat bereits erfolgreich funktioniert.

Der Fehler sieht wie folgt aus:

Der rf69.init(); Befehl stoppt sowohl im Beispiel als auch im eigenen Code das Programm, es hängt sich total auf.

Es liegt an keinem Anderen Punkt, vor und hinter diesem Befehl sind Serial.println();'s.

Ich habe keinen Plan oder Ansatzt, woran es liegen könnte, also falls Jemand irgendeine Idee hat...

Der Code:

#include <SPI.h>
#include <RH_RF69.h>

RH_RF69 rf69(4,3);

void setup() 
{
  pinMode(8, OUTPUT);
  Serial.begin(9600);
  Serial.println("HELLO");
  rf69.init();
  Serial.println("Init successfully");
  if (!rf69.setFrequency(868.0))
    Serial.println("setFrequency failed");

  // If you are using a high power RF69 eg RFM69HW, you *must* set a Tx power with the
  // ishighpowermodule flag set like this:
  //rf69.setTxPower(14, true);

  // The encryption key has to be the same as the one in the server
  uint8_t key[] = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
                    0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08};
  rf69.setEncryptionKey(key);
  digitalWrite(8, HIGH);
}

"HELLO" wird noch gedruckt

Bisher habe ich deine Kombination noch nicht verwendet, mit fällt nur auf, dass die Initialisierung im Beispiel der Lib anders aussieht.

Welche Library verwendest du ?
Bitte einen Hyperlink posten.

Wie gesagt die RadioHead.h

RadioHead.h auf Github

Natürlich die RH_RF69

ColF:
Wie gesagt die RadioHead.h

Ist schon klar, es gibt aber nicht nur eine.

Hast du in der Initialisierung mal andere Pins genommen ?
Im Beispiel steht Pin 4 und 2.
KA ob es daran liegt.

Ich benutze die Verlinkte, davon die RH_RF69.h!
Ich weiß nicht, was du meinst, sry.

Die Pins sind so korrekt, das Modul konnte nicht wie im Beispiel verbunden werden, aber die Pins stellen laut datasheet des Arduino kein Problem dar.

Du schreibst aber, das Modul hat schon funktioniert.
Was hast du denn seit dem geändert ?

Da kommt das Komische ins Spiel: Kaum etwas

Ich habe lediglich kleinere Veränderungen im Programm vorgenommen, die den Funk aber in keinster Weise betreffen.

Ein SD-Shield ist über SoftSPI dazu gekommen, aber auch da ist der Fehler nicht aufgetreten. Erst seit heute

Mein Tipp, die Verdrahtung komplett auseinander nehmen und mit neuen Kabeln neu verdrahten.
Evtl. auch das Funkmodul tauschen.

Leider fällt mir nichts anderes dazu ein, da ich wie schon erwähnt, mit dem Modul bisher noch nicht gearbeitet habe.

Die Kabel sind bereits gegen hochwertigere ausgetauscht und ich habe es mit meinem Ersatzteil probiert....

Also keine Ahnung, ob da vlt. irgendein Bug in der Bibliothek ist?

Hallo,
Versuche die Bibliothek mit dem direkten Link herunterzuladen.

Hi

Mir ist schleierhaft, wie in jedem zweiten Thread die Bibliothek als Fehlerquelle in den Mittelpunkt gerückt werden soll.

Angenommen, Du bist nicht der Einzige, Der diese Bibliothek benutzt - wie wahrscheinlich ist Es, daß Du aber der Einzige bist, Der darin Fehler offen legst?
... ok, immer noch möglich ...
Aber, wie wahrscheinlich ist Es, daß Das von einem - sorry - Noob aufgedeckt wird und nicht von einem Crack, Der den ganzen Tag nichts Anderes macht, als fremder Leute Librarys zu zerpflücken?
... nun kommen wir gegen Null ...

Wie immer bewahrheitet sich der Satz, daß der Fehler zu >99% vor dem Bildschirm sitzt.
(genau genommen zu ziemlich genau 100%, da so ziemlich jeder Entwickler wohl vor genau Solchem gesessen haben wird ... ich schweife ab)

Wir können also getrost davon ausgehen, daß Du irgendwo etwas falsch machst oder nicht so benutzt, wie sich Das der Entwickler gedacht hat - Letzteres ist allerdings auch eher Fehler des Entwickler, Sein System nicht 'DAU-fähig' zu gestallten.
... netter wird's, wenn man DAU gegen Noob tauscht :wink:

MfG

Da muss ich mal einen alten Spruch dagegen halten:

Idiotensicher geht nicht. Die Idioten sind zu erfinderisch.

Gruß Tommy

postmaster-ino:
Mir ist schleierhaft, wie in jedem zweiten Thread die Bibliothek als Fehlerquelle in den Mittelpunkt gerückt werden soll.

Ich stimme dir zu. :roll_eyes: Aber, (ja, es kommt wie immer ein ABER)....

...ich habe alle Verbindungen 10 fach überprüft und mehrfach erneuert
...ich habe die Pins vertauscht und nachrecherchiert
...nur weil ich noch nicht so viele Beiträge in diesem Forum gepostet habe heißt das nicht, das ich ein Noob bin, ich würde mich selbst schon als Anfänger bezeichnen
...ich habe die mehrfach Bibliothek sauber deinstalliert und auf verschiedener Art und Weise installiert
...ich habe eine andere Bibliothek benutzt (die RFM69.h) und da funktioniert es. Ich möchte nur die RadioHead benutzen um es einfach zu halten, weil diese sehr übersichtlich ist.

Also falls wer noch ne Idee hat, was der Anfänger machen kann: Der Anfänger lauscht. Er lässt sich nur nicht so gerne erniedrigen. :wink:

Was mich immer noch irritiert, ist der Punkt deiner genutzten Pins. Hatte ich schon angemerkt.

An mehreren Stellen habe ich gelesen, es soll Pin D4 und D2 genommen werden.
Du verwendest D4 und D3.
Warum ?
Du solltest es einfach mal mit D2 probieren.

Naja, ich habe in der Bibliothek nachgelesen und da wurde nichts bezüglich diesen Pins gesagt, es ist nur bei speziellen Boards empfohlen, entsprechende Pins zu benutzen.

Und da beim Pinout des Arduinos keine besonderen Merkmale für diese Pins angegeben sind, naja.

ColF:
Naja, ich habe in der Bibliothek nachgelesen und da wurde nichts bezüglich diesen Pins gesagt, es ist nur bei speziellen Boards empfohlen, entsprechende Pins zu benutzen.

Und da beim Pinout des Arduinos keine besonderen Merkmale für diese Pins angegeben sind, naja.

Das stimmt nur bedingt.
Beim Uno ist der Pin D2 der Interrupt 0 und der Pin D3 Interrupt 1.
Und soweit ich das gelesen habe ist es auch für den Interrupt im Funkmodul.
Grad gelesen, beim Mega sind die beiden identisch.

Tja, also daran liegt es wohl nicht...

ColF:
Tja, also daran liegt es wohl nicht...

Und das soll heißen ?

Dann mach es mit der funktionierenden Library
Ich habe keine Idee mehr.

Tja, jetzt kommt der springende Punkt: :frowning:

Die "funktionierende Bibliothek", die RFM69 von LowPowerLab, läuft zwar durch das init, aber es scheitert und anschließend hängt sich das Programm wieder am send auf.

Könnte es daran liegen, dass send auf eine Antwort wartet?

Übrigens das Beisiel für Struct_send, bzw. der gleiche Fehler bei Struct_receive