RF24 und Ethernetshield am Arduino Uno

Hallo,
ich versuche verzweifelt ein RF24 an einem Uno mit Ethernetshield zum Laufen zu bringen. Ich möchte damit eine Verbindung diverser Nanos mit RF24 zu einem MQTT Broker herstellen. Das Uno mit dem Ethernetshield soll also als Brücke zwischen den Funkmodulen zum LAN dienen.
Leider scheint das etwas kompliziert zu sein, weil beide den SPI verwenden.
Ich habe nun diverse Beispiele mit SoftSPI durchprobiert, aber leider alles ohne Erfolg.
Wenn ich das Shield runter nehme dann, funktioniert die Verbindung zwischen dem Nano und dem Uno per RF24.
Hat vielleicht jemand eine einfach zu verstehende Anleitung, wie man das realisieren kann?

Ich kenne den RF24 zwar nicht, aber du musst darauf achten, dass jedes Modul seinen eigenen CS bekommt.

SPI ist ein Bus, muss also gehen. Poste mal den Anschlussplan und die Pinverwendung. Siehe Post 1

Sorry, für die späte Rückmeldung. Ich hatte die letzten Tage viel um die Ohren.
Habe mich auch mit den RF24 Teilen gespielt, komme aber zu keinem brauchbaren Ergebnis.
Egal an welchen Arduino ich die Teile anschließe und egal, welchen Beispiel sketch ich drauf lade, es funktioniert nicht.

Dabei hatte ich das vor ca. 2 Monaten schon mal getestet und da hat es eigentlich geklappt.

Ich habe insgesamt 3 RF24 and insgesamt 2 Nanos und 2 Unos ausprobiert. Alle Kombinationen bringen die gleichen Probleme.

Aktuell versuche ich gerade den Scanner Sketch, der vor ein paar Wochen auch noch funktioniert hat. Auch der funktioniert nicht wie er soll.

Es bringt auch nichts, wenn ich das RF24 mit einer externen Spannung versorge. Verhält sich gleich wie mit der 3.3V vom Arduino.

Ich weiß nicht mehr weiter. Werde die Teile in die Tonne schmeißen und versuchen die drahtlose Kommunikation anders zu lösen. Entweder mit Bluetooth oder 433MHz Sender und Empfängern. Die habe ich schon erfolgreich im Einsatz.

So sieht der Output des Scanner sketches aus:

RF24/examples/scanner/
STATUS		 = 0xff RX_DR=1 TX_DS=1 MAX_RT=1 RX_P_NO=7 TX_FULL=1
RX_ADDR_P0-1	 = 0xffffffffff 0xffffffffff
RX_ADDR_P2-5	 = 0xff 0xff 0xff 0xff
TX_ADDR		 = 0xffffffffff
RX_PW_P0-6	 = 0xff 0xff 0xff 0xff 0xff 0xff
EN_AA		 = 0xff
EN_RXADDR	 = 0xff
RF_CH		 = 0xff
RF_SETUP	 = 0xff
CONFIG		 = 0xff
DYNPD/FEATURE	 = 0xff 0xff
Data Rate	 = 1MBPS
Model		 = nRF24L01
CRC Length	 = 16 bits
PA Power	 = PA_MAX
000000000000000011111111111111112222222222222222333333333333333344444444444444445555555555555555666666666666666677777777777777
0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcd
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff

Falls wer eine Idee hat, was bei mir verkehrt läuft, wäre ich für Tipps dankbar. Ansonsten breche ich die Versuche damit ab. Hat mich schon genug Zeit gekostet.

Welches Ethernetshield verwendest du? Das Original?
Es soll auch "egoistische" Billigversionen geben die sich am SPI Bus nicht an die Regeln halten und keine weiteren Busteilnehmer, z.B. den nRF24, neben sich dulden.

Gruß Peter

Ich habe insgesamt 3 RF24 and insgesamt 2 Nanos und 2 Unos ausprobiert. Alle Kombinationen bringen die gleichen Probleme.

Das Ethernetshield passt doch überhaupt nicht auf den NANO.
Hast Du evtl. kein Shield, sondern ein Ehternet-Modul? Da gibt es welche, die ohne Umbau keinen weiteren SPI-Teilnehmer zulassen, weil sie (seit Jahren) einen Designfehler haben.

Gruß Tommy

Sorry, ich hatte vergessen zu erwähnen, dass ich das Ethernetshield für meine Tests mal runter genommen habe, um die möglichen Fehlerquellen einzugrenzen.
Also Uno ohne shield und Nano natürlich auch ganz ohne. Also nur nackte Arduino Boards mit diversen RF24 Modulen. Und das mit den üblichen Beispielsketches.
Deshalb versteh ich auch nicht, warum das jetzt so gar nicht mehr funktioniert.

Bei einem Sketch, wo einfach alles 1000ms was gesendet werden sollte, und das über die serielle Schnittstelle mitgeteilt wird, wird gar nichts angezeigt, bis ich mit dem Finger den A2 pin berühre oder daran ein kurzes Stück Kabel anschließe. Dann läuft die Loop mit Senden runter. Gesendet wird vermutlich nichts, aber wenn ich das Kabel weg nehme und auch nicht mit dem Finger dran gehe, dann steckt die Loop fest.
Alles irgendwie sehr merkwürdig.
Defekten Arduino schließe ich aus, da ich insgesamt 2 Unos und 2 Nanos probiert habe, die ansonsten ohne NF24 ganz normal funktionieren. Und von den NF24 habe ich insgesamt 3 probiert, eines davon mit Stabantenne, also auch unterschiedliche Typen.

Jetzt ist es an der Zeit dass du uns den Sketch und ein Schaltbild postest.
In deiner Schaltung ist sicher ein Eingangspin ohne Pullup oder Pulldown Widerstand.
Der offen Eingang empfängt allerlei Störungen.

Die sketches die ich ausprobiert habe sind allesamt entweder Beispielsketches der RF24 Library oder z.B. die hier:
http://arduino-info.wikispaces.com/Nrf24L01-2.4GHz-ExampleSketches#bm1
habe auf einen das Sendesketch geladen und auf den anderen das Empfangssketch.
Verkabelt habe ich genau so, wie im Sketch am Anfang beschrieben.

Der Sendesketch sollte laufend die Daten, die er sendet über den seriellen Monitor ausgeben. Tut er bei nicht. Lediglich, wenn ich A2 berühre oder ein Stück Draht anhänge, dann gibt er was aus, sendet aber vermutlich nicht.

Der Arduino mit dem Empfangssketch Wirft in ms Abständen alle möglichen Werte aus, die er angeblich empfängt.

Ich habe, wie man im Sketch sehen kann, keinerlei Input Pins gesetzt, weder mit noch ohne pullup.

Wenn ich das GettingStarted Beispiel von der RF24 Library verwende, dann macht weder der Sender noch der Empfänger irgendwas und es wird auch nicht auf Eingabe von T oder R reagiert. wenn ich aber wieder A2 berühre, dann wird angezeigt, das irgendwas gesendet wird, und das obwohl er eigentlich im Empfangsmodus sein sollte.

Auch beim Gettingstarted Sketch werden keine Eingangspins verwendet.

Während ich das schreibe, kommt mir ein Gedanke. Es hat ja zu Beginn funktioniert. Dann der Versuch mit dem Ethernetshield und SoftSPI. Dann ist mir jetzt eingefallen, dass ich da in der RF24_config.h die // vor #define SOFTSPI weggenommen habe, um es mit SoftSPI zu versuchen. Hat dann nicht geklappt, und ich habe vergessen das wieder auszukommentieren.

Habs jetzt gerade gemacht und es funktioniert wieder.

Also kann ich mich jetzt, nachdem es mit den nackten Boards klappt, wieder dem Ethernetshield zuwenden.
Sorry, dass ich eure Zeit mit so einem blöden Fehler beansprucht habe.
Man soll halt sowas nicht machen, wenn man sonst noch viel um die Ohren hat und nach der Arbeit kaum mehr einen klaren Gedanken fassen kann.

Jetzt kommen die Daten sogar an, wenn das Ethernetshield drauf ist.
Komisch, kaum macht man es richtig, funktionierts auch schon.

Jetzt muss ich noch Ethernetfunktionalität einbauen und hoffen, dass es dann auch noch funktioniert. Dann frage ich mich, warum ich mich überhaupt mit SoftSPI rum geschlagen habe.

Falls es interessiert.
Erfolgsmeldung.

Das Uno funktioniert nun mit dem Ethernetshield und dem RF24 zusammen, verbindet sich ins LAN und auf den MQTT Broker und sendet MQTT Messages an den Broker, die es per RF24 von einem anderen Uno mit RF24 aber ohne Ethernet empfangen hat. Genau das, was ich von Anfang an wollte.
Ich habe mich unnötigerweise mit SoftSPI rum geschlagen und das hat mich völlig vom richtigen Weg abgebracht.

Jetzt funktioniert mal der Test und das brauche ich jetzt nur noch in den Realbetrieb umsetzen.

Danke für die Geduld und auch die Antworten, die mich zumindest dazu gebracht haben, alles nochmal durchzugehen und zu überdenken, was mich dann dazu geführt hat, dass mir eingefallen ist, dass ich SoftSPI aktiviert hatte.