für erste Tests mit LoRa habe ich mir 2 Evaluationboards von Heltec besorgt. Lleider ist es mir bisher nicht gelungen ein erstes Programm mit diesen Modulen aufzubauen. Ich nutze VisualCode und PlatformIO. Gibt es hier eventuell erfahrene Entwickler die solch ein Modul in VisualCode mit PlatformIO in Betrieb genommen haben?
Bezeichnung Evaluationboard: Heltec Automation LoRa32
Lleider ist es mir bisher nicht gelungen ein erstes Programm mit diesen
Modulen aufzubauen.
Was hast du denn seither genau gemacht?
Zeig Mal.
Controller ist ja scheinbar ein ESP32.
Ich würde ein einfaches ESP32 Projekt mit PlatformIO aufsetzen und dann eine Library für den Funk Chip suchen.
Vielleicht sowas:
https://github.com/sandeepmistry/arduino-LoRa
Serial.println("Teste SPI-Register des LoRa-Chips...");
23
24
uint8_tversion=readRegister(0x01);
25
Serial.print("SX1276 Version: 0x");
26
Serial.println(version,HEX);
27
}
28
29
voidloop(){
30
delay(1000);
31
}
32
33
uint8_treadRegister(uint8_taddr){
34
digitalWrite(CS,LOW);
35
SPI.transfer(addr&0x7F);// Read-Befehl: MSB muss 0 sein
36
uint8_tvalue=SPI.transfer(0x00);// Dummy-Byte senden und Wert empfangen
37
digitalWrite(CS,HIGH);
38
returnvalue;
39
}
Hier ein kleine Beispielanwendung um mal vom Lora Modul was auszulesen. Ich erhalte immer den Wert 0x00 zurück auch wenn ich das SPI Kommando 0x042 benutze.
Anscheinend gibt es davon drei verschiedene Frequenzen. 433, 868 und 915 MHz.
In DE sind nur 433 und 868 zugelassen. Wenn man das falsche Board erwischt, bzw zwei Boards hat mit unterschiedlicher Frequenz, ist die Reichweite dreck
In DE sind nur 433 und 868 zugelassen. Wenn man das falsche Board
erwischt, bzw zwei Boards hat mit unterschiedlicher Frequenz, ist die
Reichweite dreck
das hat nichts damit zu tuen dass der TO keine SPI Kommunikation mit dem Radio Chip ans Laufen bekommt.
Ich habe nun die PINS bei mir angepasst. Nach wie vor funktioniert die SPI Kommunikation nicht. Ich kann auf dem Board und auch auf der Verpackung nicht sehen welche Heltec Version ich vor mir liegen habe.
Es ist doch ein fertiges Board. Warum muss alles so kompliziert sein.
Ich möchte nur mal das Board mit Lora testen.
das Gefuehl kenne ich. Ich wollte die Boards mit MicroPython zum laufen bringen. Hat bisher nicht geklappt. Bin danach zu Arduino zurueckgegangen und habe mich an die Instruktionen von Heltec gehalten. Selbst dann ware die Installation mit Fehlern behaftet. Ich musste eine Adafruit OLED Library manuell installieren, sonst kompilierten die Heltec Examples nicht. Dann hatte ich im Rahmen meiner MicroPython Experimente den ESP32S3 Flash geloescht. Damit war eine von Heltec in den Flash geschriebener Lizenz Key weg. Den musste ich dann ueber Heltec Webseite neu generieren und ueber Serial Monitor in das Board reinschreiben (liblorawan.a verweigert sonst Radi Chip init). Es war ein steiniger Weg ...
Ok. Muss ich für ein einfach Lora Kommunikation den Key auch nochmals reinschreiben? Damit habe ich mich auch noch nicht befasst. Gibt es eventuell einen genauen Fahrplann für VSCode und platformIO?
Wie binde ich die Lib in VSCode + PlatformIO ein, so dass ich die Lora.h
nutzen kann?
Du hast (mindestens ...) zwei Probleme:
die Heltec Boards irgendwie zum laufen zu bekommen
Einbindung in Deine bevorzugte Entwicklungs-Umgebung
Fuer Punkt 1 hast Du eine realistische Chance, wenn Du mit Arduino anfaengst. Wenn das klappt, wuerde ich versuchen, eines der Boards mit PlattformIO zum laufen zu bringen (ein Board bleibt auf Arduino und laeuft als LoRaSender).
Es kann doch nicht sein. Die SPI Kommunikation will einfach nicht. Das kann ich nicht verstehen. Ich habe auch den Schaltplan angeschaut. Die Pins sind soweit korrekt eingestellt.
Ich möchte nicht noch eine weitere IDE installieren.
Hat hier jemand das ganze in VSCode und platformio zum Laufen gebracht? Zumindest die SPI Kommunikation zum Lora Chip?
Es kann doch nicht sein. Die SPI Kommunikation will einfach nicht.
Schließ doch bitte mal ein Oszilloskop/Logic Analyzer an, so ist das doch reiner Blindflug. Wenn du keins hast schließ wenigstens mal LEDs an und setz die SPI-Frequenz auf Minimum. An den LEDs sollte man ein Flackern erkennen können, insbesondere beim MISO wäre das wichtig.
Muss das morgen erst machen. Hab hier leider kein Oszi.
Auf folgender Seite https://heltec.org/project/wifi-kit32-v3/
kann ich den Schaltplan sehen, allerdings ist der Lora Chip nicht zu sehen. Irgendwo anders hatte ich mal einen anderen Schaltplan. Da war auch der Lora Chip enthalten.
Es ist doch ein fertiges Board. Warum muss alles so kompliziert sein.
Ich möchte nur mal das Board mit Lora testen.
das Gefuehl kenne ich. Ich wollte die Boards mit MicroPython zum laufen
bringen. Hat bisher nicht geklappt.
Wenn man irgendwelche 3rd-Party Tools nutzt muss man immer basteln. Bei sehr billigen chinesischen Herstellern ist Bastelei auch meist garantiert. Die besten Chancen hat man normalerweise mit den Tools des Herstellers.
Beim ESP32 wäre das die eclipse-basierte Espressif-IDE, oder die ESP-IDF Extension for VS Code, wobei letzteres vermutlich noch nicht so ausgereift ist, und natürlich was anderes ist als PlatformIO, nämlich "nur" direkt ESP-IDF.
Das ist ja auch ein ganz anderes Produkt das gar kein LoRa hat... Auf der korrekten Produktseite sind die Schaltpläne für Version v3.1 und v3.2 verlinkt. Allerdings zeigen beide Links auf Version v.3.1. Mit etwas suchen findet man den für v3.2.
Board bestellt über amazon:
APKLVSR LoRa ESP32 Development Board, LoRa V3 Board with OLED Display and Antenna USB C Dual-Core IOT Board 240MHz Bluetooth WiFi Module 863 928MHz for Arduino (Pack of 2)
ESP32 V3 LoRa V3 SX1262 0.96 Inch OLED Display for Arduino Smart Home WiFi LoRa 32
0xAA ueber alle Register hatte ich auch schon und trotzdem laufen die Boards. Eines direkt bei Heltec gekauft, ein anderes ueber Amazon. Ich habe fast den Verdacht, dass Du irgendwo zwischen SPI.begin() und SPI.beginTransaction() bereits CS nach oben oder unten setzen musst
Höchst verdächtig. Offenbar tut sich doch was auf der MISO-Leitung. Irgendwas ist da vermutlich mit der Clock-Leitung überkreuz. Vielleicht ist auch der SPI-Mode falsch (CPHA, CPOL).
da sieht man gut wie der RESET Pin geschaltet wird, mit welchen Timings. Dort ist auch erkenntlich, dass vor SPI.begin() der CS Pin gesetzt werden muss.
Als Beispiel für ein Projekt, das mit PlatformIO funktioniert und viele Lora-Boards unterstützt (und die RadioLib benutzt), kannst du ja mal hier in die Sourcen schauen. Das ist die Anleitung für PlatformIO dazu: https://github.com/G4lile0/tinyGS/wiki/Platformio. Das Projekt findest du unter https://github.com/G4lile0/tinyGS. In den Sourcen unter ConfigManager sind auch die Pinbelegungen zu finden.