Forum: HF, Funk und Felder Frust mit LoRa SX1262/SX1268


von gpsklaus (Gast)


Angehängte Dateien:

Lesenswert?

Frust mit LoRa SX1262/SX1268

Nachdem ich die LoRa-Bausteine der Serie RFM9x seit etwa 5 Jahren 
erfolgreich nutze,  wollte ich auch einmal die neueren LoRa-Typen der 
Serien SX1262/SX1268 und SX1280 ausprobieren. Die Steuerung sollte dabei 
vorerst jeweils via SPI-Bus ausgehend von einem Arduino Pro-Mini in der 
3V-Version erfolgen ( siehe Schaltbild ). Erste Versuche sollten dabei 
mithilfe von Beispiel-Sketches durchgeführt werden, so wie sie Stuart 
Robinson unter "loratracker.uk" in den von ihm für genannte Typen 
bereitgestellten Libraries bereitstellt.

Um es kurz zu machen, trotz längerer Versuche und auch mehrfachem Aufbau 
der Hardwareanordnung, ist es mir bisher noch nicht gelungen, z.B. 
Sendebetrieb zu erreichen.

Die angeschlossenen LoRa-Bausteine werden bei Verwendung der verfügbaren 
Mustersketches jeweils erfolgreich erkannt. Problemlos arbeitet dabei 
auch ein Sketch, der das Einschreiben und Auslesen des internen 
Speicherbereiches bewirkt. Dagegen verlaufen Programmanweisungen, die 
z.B. den LoRa-Sendebeginn starten sollen, entweder wirkungslos oder 
führen zum Programmstop.

Durchgeführt wurden die Versuche im 2.4 GHz-Bereich mit mehreren 
Exemplaren SX1280 ( NiceRF ) und im 868 MHz-Bereich mit mehreren 
DRF1262G ( Dorji ). Dabei kam mir schon der Gedanke, dass die Probleme 
ggf. mit den Bausteinen selbst zusammenhängen könnten, aber auf der 
anderen Seite kann ich mir kaum vorstellen, dass alle ( aus China 
bezogenen ) Exemplare fehlerhaft sein könnten.

Bin für jeden konstruktiven Tipp dankbar.

von Mitlesa (Gast)


Lesenswert?

gpsklaus schrieb:
> Bin für jeden konstruktiven Tipp dankbar.

Das Problem sitzt vor deinem Bildschirm.

Du wirst - wie viele andere auch - deine Infos nur scheibchenweise
preisgeben, das ist die berühmte und von vielen Personen hier gerne
ausgeübte Salamitaktik.

Eines ist für mich jedoch sicher: die FunkModule, wer auch immer sie
sind, sind HF-Schaltungen. Diese brauchen viel Strom und daher
"verbietet" es sich eigentlich sie von einem ärmliche Spannungsregler
eines Arduinos zu versorgen. Die Module bedürfen bei der Versorgung
einer besonderen "Liebe".

Wenn du mir jetzt sagst dass der Spannungsregler doch eigentlich
xxxx mA kann und das für die Module doch voll ausreichen müsste
dann ist hier für mich Ende der Diskussion. Abblock- und
Stabilisierungsmassnahmen sind das A und O bei diesen Schaltungen.

Und im Internet gibt es sicherlich genug Steckbrettaufbauten zu
sehen die genau so aufgebaut sind und angeblich funktionieren. Mag
sein, kann aber auch nicht sein.

von TR.0LL (Gast)


Lesenswert?

Wenn du ein Oscilloscope hast, dann klemm das mal an die Stromversorgung 
und schau das einmal mit dem gehenden Beispiel an und einmal mit deinem 
Code.

Und lade hier bitte deinen Code hoch, weil da könnte ja auch der Fehler 
liegen.

von Klaus H. (gpsklaus)


Lesenswert?

Hallo,
das Argument hinsichtlich der möglicherweise nicht ausreichenden 
Belastbarkeit des Atmega-3,3V-Ausgangs schien mir durchaus logisch zu 
sein, so dass ich erst einmal wieder Hoffnung schöpfte und zur 
LoRa-Chipversorgung schnell noch einen bis 1A belastbaren 
Spannungsregler einbaute.
Leider brachte das aber auch nicht DEN Erfolg.

Zum Programm:
Dafür habe ich eine absolute Minimalversion angehängt, mit der sich 
schon im SETUP ( und ohne LoRa-Mode ) mithilfe des Befehls: 
LT.setupDirect(Frequency, Offset);  zumindest schon einmal ein HF-Träger 
( hier auf 868.0 MHz ) einschalten lassen sollte ( was aber leider nicht 
passiert ).

#include <SPI.h>   //the lora device is SPI based so load the SPI 
library
#include <SX126XLT.h>        //include the appropriate library

SX126XLT LT;       //create a library class instance called LT

#define NSS 10     //select pin on LoRa device
#define NRESET 9   //reset pin on LoRa device
#define LED1 8     //on board LED, high for on
#define RFBUSY 7   //SX126X busy pin
#define DIO1 3     //DIO1 pin on LoRa device, used for RX and TX done
#define DIO2 -1    //DIO2 pin on LoRa device, normally not used so set 
to -1
#define DIO3 -1    //DIO3 pin on LoRa device, normally not used so set 
to -1
#define SW -1      //SW pin on Dorji devices is used to turn
                   // RF switch on\off, set to -1 if not used
#define LORA_DEVICE DEVICE_SX1262  //we need to define the
                                   //device we are using

//*******  Setup Direct Modem Parameters Here ! ***************
const uint32_t Frequency = 868000000;    //frequency of TX in hertz
const uint32_t Offset = 0;        //offset frequency for calibration
const int8_t TXpower = 10;        //LoRa transmit power in dBm

/////////////////////////////////////////////////////////////////
void setup()
{
  pinMode(LED1, OUTPUT);     //setup pin as output for indicator LED
  Serial.begin(9600);
  SPI.begin();
  if (LT.begin(NSS, NRESET, RFBUSY, DIO1, SW, LORA_DEVICE))
  {
   Serial.println(F("LoRa Device found"));
   delay(1000);
  }
  else
  {
   Serial.println(F("No device responding"));
   while (1);
  }
  LT.setupDirect(Frequency, Offset);
  Serial.println(F("Transmitter ready"));
  Serial.println();
}

//////////////////////////////////////////////////////////////////////// 
//
void loop() {
}

von Mitlesa (Gast)


Lesenswert?

Klaus H. schrieb:
> so dass ich erst einmal wieder Hoffnung schöpfte und zur
> LoRa-Chipversorgung schnell noch einen bis 1A belastbaren
> Spannungsregler einbaute.

Hier ist sie wieder, die Salamitaktik.

Wenn du schon Arduino Code verwendest liegt es nahe dass du
an der Versorgung grossen Mist baust. Fast alle Arduidioten
machen da beliebige Fehler.

Will heissen dass es nicht genügt einen Regler vorzusehen, man
muss es auch noch richtig machen.

Nachdem du so hemdsärmelig und in Salamitaktik daher kommst (dein
erster Schaltplan stimmt nicht mit dem überein was du als "Prosa-
Schaltplan" nachgeliefert hast), bin ich dann mal weg.

Wie gewohnt, muss man hier den Leuten immer die Popel einzeln aus
der Nase ziehen.

von TR.0LL (Gast)


Lesenswert?

Warum verwendest du eigentlich nicht die HM-TRP-Module?
https://www.ebay.de/itm/HM-TRP-Wireless-Transceiver-UART-Program-RS232-Remote-control-868Mhz/172272168758?hash=item281c38af36:g:Hk8AAOSwRJ9XhOWE

Die sind viel einfacher zu verwenden.

von Mic R. (microller)


Lesenswert?

Hallo GpsKlaus,
kannst du mir evtl. 2 deiner 868MHz Module abgeben/verkaufen?
Ich bin gerade dabei das Semtech Beispielprojekt auf meine MCU/PSoC 
Plattform zu portieren, kann es aber bisher nicht testen, da ich noch 
auf Module warte.
Evtl können wir uns dann hinsichtlich der Inbetriebnahme gegenseitig 
austauschen.
Grüße Mic Roller

von wendelsberg (Gast)


Lesenswert?

gpsklaus schrieb:
> Dagegen verlaufen Programmanweisungen, die
> z.B. den LoRa-Sendebeginn starten sollen, entweder ... oder
> führen zum Programmstop.

Was heisst das konkret?

wendelsberg

von Klaus H. (gpsklaus)


Angehängte Dateien:

Lesenswert?

@ Mitlesa
Polemische Kommentare und nebulöse Andeutungen hinsichtlich möglicher 
Verbesserungen rund um die Versorgung des Funkbausteins und angeblich 
nicht zum Schaltbild passendem Quellcode helfen hier überhaupt nicht 
weiter. Auch kann ich die Bemerkung hinsichtlich der SALAMITAKTIK nicht 
verstehen.

Das Problem besteht doch zuerst einmal darin, dass nicht klar ist, ob es 
sich in diesem Fall um ein Hard- oder ein Softwareproblem handelt.

Zur Hardware:
Nach dem Hinweis von Mitlesa wurden beide vorhandenen Exemplare 
gegenüber der Ursprungsversion noch einmal verändert ( siehe dazu neues 
Schaltbild ). Die Bestückung der Leiterplatten wurde inzwischen 
unzählige Male kontrolliert.

Zur Software:
Erste Versuche sollten mit den Beispielen durchgeführt werden, die mit 
der von Stuart Robinson unter https://github.com/LoRaTracker/SX12XX-LoRa 
bereitgestellten SX12XX-Library verfügbar sind. Dazu ist anzumerken, 
dass ich die von ihm zur Verfügung gestellte Libraries und 
Beispielsketches erfolgreich schon seit vielen Jahren in Verbindung mit 
LoRa-Bausteinen der Serie RFM9x verwende. Somit vertraue ich ihm, wenn 
er bekundet, dass auch die von ihm bereitgestellte SX12XX-Library 
inclusiv der mitgelieferten Beispiele geprüft wurde und somit auch 
lauffähig ist.

Ich will die besagten Beispielsketches hier nun nicht in ihrer Menge 
einstellen, hatte allerdings bereits schon einmal geschrieben dass z.B. 
der unter "SX12XX-LoRa/examples/SX126x_examples/Basics/"
zu findende "2_Register-Test" bei mir problemlos ausführbar ist, womit 
der Funkbaustein als solcher grundsätzlich schon einmal erkannt wird.
Probleme gibt es dagegen z.B. bei Ausführung von: "3_LoRa_Transmitter".
Innerhalb der LOOP gibt es dabei die Anweisung:
if (LT.transmit(buff, TXPacketL, 10000, TXpower, WAIT_TX))   //will 
return packet length sent if OK, otherwise 0 if transmit error
bei deren Aufruf die Programmausführung jeweils abbricht.

@microller
Aus China hatte ich 4 Exemplare der DRF1262G bezogen und davon 2 Stück 
bereits verbaut. Nachdem sich die Lieferung seinerzeit fast 2 Monate 
hinzog, würde ich die restlichen Exemplare allerdings gern behalten. 
Parallel dazu hatte ich auch noch nach einer inländischen Bezugsquelle 
gesucht und war dabei auf "https://de.grandado.com/search?q=loRa"; 
gestossen. Zum Testen habe ich dort noch einmal 2 ähnliche Exemplare 
bestellt, auf deren Lieferung ich derzeit allerdings noch warte.
Ansonsten bin ich zum gegenseitigen Erfahrungsaustausch jederzeit gern 
bereit.

von Mic R. (microller)


Lesenswert?

Danke für den Tipp mit Grandado, aber das kommt ja auch aus China, mit 
üblicher unbestimmter Lieferzeit.
Ich habe noch zwei Lieferanten in Europa gefunden,
https://www.rfsolutions.co.uk/search/radio-modules-c10/lora-c239/sx1262
mit horenten Lieferkosten
www.schmidiger.ch -> TRXnnn-70, die aber die Module noch nicht fertig 
haben.

> if (LT.transmit(buff, TXPacketL, 10000, TXpower, WAIT_TX))   //will
> return packet length sent if OK, otherwise 0 if transmit error
> bei deren Aufruf die Programmausführung jeweils abbricht.

Ich bin weder Arduino erfahren, noch keinne ich die von dir verwendete 
Library (die will ich mir die Tage aber mal im Vergleich ansehen), wie 
gesagt, ich nehme die Software von Semtech ...

Hast Du ein Oszi zur Hand?
Schau dir doch mal das Signal an DIO1/ProMini#3 sobald du das Kommando 
LT.transmit(buff, TXPacketL, 10000, TXpower, WAIT_TX) schickst.
Es müsste eine High Flanke geben (TX-Done)

Woraufhin ich hinaus möchte, bist Du sicher, dass deine Interrupt 
Erkennung am #3 richtig funktioniert?

von Klaus H. (gpsklaus)


Angehängte Dateien:

Lesenswert?

Mallo Microller,
beim Testen hat der Sender heute einmal kurz gearbeitet. Plötzlich waren 
Signale auf der Sendefrequenz hörbar, wobei diese allerdings sehr 
schwach waren !  Nachdem ich das Programm dann mit der Resettaste noch 
einmal neu startete, war der "Spuk" schon wieder vorbei und bisher auch 
nicht wiederholbar. Es ist schon sehr merkwürdig.

Das Signal am DIO1/#3 werde ich einmal kontrollieren, komme allerdings 
erst am Donnerstag dazu und werde mich dann noch einmal melden.

Eine Besonderheit des DRF1262 ist sein integrierter RX/TX-Umschalter, 
der mit einem Chip PE4259 ( siehe beigefügten Plan ) bestückt ist. Nach 
dessen Datenblatt sollte es dabei genügen, sowohl den DRF-Pin "SW" als 
auch "DIO2" auf +3,3V zu legen, um das Sendesignal zum 
DRF-Antennenausgang durchzuschalten. So habe ich es jedenfalls versucht, 
aber auch nach dem kurzzeitig empfangenen schwachen Signal möchte ich 
nicht ausschließen, dass die Ursache für mein Problem in diesem Bereich 
liegen könnte.

von Klaus H. (gpsklaus)


Lesenswert?

Hallo Microller,
im Programmablauf konnte ich an besagter Stelle keinen Puls feststellen.

Jetzt lege ich die Aufbauten mit den DRF1262 erst einmal in die Ecke und 
möchte das Ganze noch einmal mit bei de.rs-online.com bestellten "RF 
Solutions LAMBDA62-8S" probieren ( 
https://docs.rs-online.com/4f24/0900766b816cf9c4.pdf ).
Bei den bestellten 6 Stück fallen keine Versandkosten an, so dass man 
dabei auf einen Stückpreis von ca. Euro 11.50 kommt. Die Dinger sollten 
schon in ein paar Tagen eintreffen und wenn Du möchtest, dann kann ich 
Dir davon gern 2 Exemplare abtreten.

von Mic R. (microller)


Lesenswert?

> Nach dessen Datenblatt sollte es dabei genügen, sowohl den DRF-Pin "SW" als
> auch "DIO2" auf +3,3V zu legen, um das Sendesignal zum
> DRF-Antennenausgang durchzuschalten. So habe ich es jedenfalls versucht

Hast Du +3V an DIO2 gelegt???
Das wäre nicht gut ... DIOx sind Ausgänge ... und DIO2 wird oft (in der 
Software) verwendet, um zwischen RX/TX umzuschalten.
d.h. SX-DIO2 ist mit PE4259 verbunden, so wie es im Schalplan auch 
gezeichnet ist. Du darfst da nichts von aussen anlegen.

Es müsste in deiner also eine Funktion ähnlich dieser geben, wenn du 
deinen SX initialisierst, und du müsstest es logischerweise mit '1' 
aufrufen ;-)

void SX126xSetDio2AsRfSwitchCtrl( uint8_t enable )
{
    SX126xWriteCommand( RADIO_SET_RFSWITCHMODE, &enable, 1 );
}

Siehe auch SX162x Datat Sheet: -> SetDIO2AsRfSwitchCtrl

#MicRoller

P.S.: Meine Software läuft mitlerweile :-)
Aber cool, dass Du die Module bei RS gesichtet hast. Das sind ja die aus 
England, die im Direktvertrieb 65€ Versandkosten haben wollten. Wenn der 
Versand bei dir günstiger ist, würde ich die zwei Module nehmen.

von Mic R. (microller)


Lesenswert?

Hi Klaus,
ich habe mir gerade nochmal dein Projekt angeschaut, insbesondere deinen 
Schaltplan. Was hast Du denn mit dem Pin 3 (SW) gemacht? Ist der offen 
(so wie in deinem Plan gezeigt)?
Wenn ich das Datenblatt vom DRF1262G bzw den darin verbauten PE4259 
richtig verstehe, dann müsstes Du dort 3.3V anlegen? ohne Gewähr .. prüf 
das mal.
Schau mal hier:
http://www.dorji.com/docs/data/DRF1262G.pdf
bzw. hier
https://www.psemi.com/pdf/datasheets/pe4259ds.pdf
Grüße, Mic Roller

von Klaus H. (gpsklaus)


Lesenswert?

Hi Mic,
ja, den SW-Pin hatte ich an 3,3V gelegt. Irgendwie haben sich aber alle 
versuchsweise getesteten Pegeländerungen sowohl am SW-Pin, als auch an 
DIO2 jemals in irgendeiner Weise ausgewirkt.

Hattest Du übrigens meine Benutzernachrichten ( betr. Chipbestellung ) 
erhalten?

Gruß Klaus

: Bearbeitet durch User
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.