LoRaWAN Node auf Basis des STM32F103C8


#1

Ich möchte für den STM32F1xx eine Code Basis in der Segger IDE erstellen um daraus LoRaWAN/TTN Nodes zu erstellen.
Die vorhandenen Code Schnipsel sind meiner Meinung nach nicht gut zu warten, die Programmierung ist nicht wirklich sauber und die Pflege wird auf lange Sicht kaum möglich sein.

Warum Segger, weil es eine professionelle Umgebung ist.

Ziel ist es einen #citizensensor zu erstellen der günstig von vielen Usern nutzbar ist.
Der Code soll die notwendigen Konfigurationen aus einer Init Datei einlesen die man sich auf einer Webseite erstellen kann. Das ist aber erst der zweite Schritt.

Ziel 1 ist es den Basis Code zu erstellen um die Kommunikation STM32 mit dem RFM95W und der I2C Schnittstelle zu ermöglichen.

Wer kann dabei helfen?


#2

Moin.

Na ja, den “Bürgersensor” als solches gibt es schon. Komplett mit Platine und zugehöriger Firmware. Allerdings basiert die Firmwareentwicklung und deren Bearbeitung auf einem Konzept, welches mit der Arduino-IDE umgesetzt wurde.

Ob deren Pflege aufgrund einer IDE sich schwieriger gestaltet, vermag ich mangels Wissen nicht zu sagen.

Wie ich gelesen habe, hast du aber schon einen Grundstock (STM32&LMIC) passend für die IDE deiner Wahl finden können.

Das ist doch gut und darauf kann dann doch aufgebaut werden.

Achso, ja. Ein paar mehr Hinweise in deinem Eingangspostig wären bestimmt hilfreich.
Wie z.B. Link`s zu Informations.- und Softwarequellen die du/ihr/wir nutzen wollen.

Gruß


#3

Na ja, da gibt es halt noch nichts was auf dauer verwertbar im Forum liegen müsste.

Aber ja es gibt einen Link https://github.com/kzyapkov/bluepill-lora-mx der die Basis sein kann.
Da ist aber noch einiges an Arbeit zu Investieren bis das dann auf der Segger lauft.

Neuste Erkenntnis ist das es zwar als make funktioniert aber schon alleine der Nachbau der Device Einstellungen in der STM32CubeMX für die notwendige HAL andere Pins liefert.

Das Repo liefert leider keine Übersicht der zu beschaltenden PINs mit, steht ja alles irgend wo im Code.

Aber es muss eigentlich irgend wie funktionieren.


#4

Moin.

Tscha, aber wie soll jemand behilflich sein, wenn die Quellen, mit denen Du arbeitest nicht auffindbar sind?
Z.B., dein Git.
Was soll in der Grundkonfiguration für die MCU vorhanden sein, bzw. muss?
Das wäre doch zuallererst zu klären und wie der Weg dahin ist.

Also, ich für meinen Teil denke mir das so:

Es geht um den STM32F103C8T6 . Im Regelfall haben die blauen Pillen, die wir nutzen wollen, 128KB.
Das Teil rennt mit max. 72 MHz. Aber vielleicht sollte man bei der Konfiguration schon daran denken unterschiedliche Systemtaktvarianten zu generieren. Vielleicht noch welche mit 48, 32, 16 und 8MHz.

Dann müssen mindestens folgende Bussysteme ermöglicht werden: SPI (für das LoRa-Modem), I²C (um Sensoren und Displays anzubinden können), (S)UART (um eine serielle Komunikation zu ermöglichen.
Weitere Schlagworte wären vielleicht noch: Deepsleep, RTC, Batteriespannung erfassen.

Gruß


#5

Das ist zwar alles soweit nicht falsch, aber momentan gibt es einfach erst einmal nur die folgenden Bedingungen:

  1. Die MCU ist der STM32F103C8T6 auch “Bluepill” genannt.
  2. Das LoRa Modem ist ein RM95W welches auch als SX1276 von Semtech zu identifizieren ist.
  3. Um damit dann an das TTN mittels LoRa zu sprechen ist die LMiC in der Version 1.5 oder 1.6 notwendig.
  4. Es soll ein wartbarer Code entstehen der entweder mit dem Segger embedded Studio for ARM oder mit dem Atollic TrueSTUDIO for STM32 (Version 9) zusammen arbeitet.

Die folgenden Quellen haben hier schon viel Arbeit investiert:

  1. https://github.com/frasercrossman/STM32F103-RFM95W-Transmitter
  2. https://github.com/tuddman/lmic
  3. https://github.com/kzyapkov/bluepill-lora-mx
  4. https://github.com/kzyapkov/lmic/tree/780e8054963e2b6f948e8643bf0e5cca9a070838 (LMiC V1.6)

Vom STM32 benötigen wir folgende Devices:

  • I2C
  • SPI
  • USART
  • GPIO
  • RTC

Wenn dann eine einfache Anwendung ein erste Verbindung zum TTN aufbauen kann beginnt der einfache Teil. Einbinden von Sensoren oder Displays und nicht vorher.


#6

zu “dein Git” das existiert leider noch nicht weil es einfach noch viel zu früh ist.


#7

Moin.

Ich denke ich werde mich mal an dieser Möglichkeit versuchen.

https://www.thethingsnetwork.org/labs/story/a-cheap-stm32-arduino-node

Die Lösung kann auch bis 8MHZ runtergetacktet werden.

Quellcode und mehr Informationen sind im zugehörigen Git zu finden:

Gruß


#8

Da wirst du natürlich Erfolgreich sein und einen lauffähigen STM32Node bekommen.

Das ist natürlich auch noch eine Alternative:


#9

Für diesen Node gibt es auch eine os.mbed Version:
https://os.mbed.com/users/orangeway/code/STM32F103C8T6_LoRaWAN-lmic-app/


#10

Moin

Sagen wir mal so: Ich werde eine lauffähige Hardware zusammengefrickelt bekommen. :smile:

Ob ich die Softwareseite auf die Reihe bekomme, muss sich zeigen.

Gruß


#11

Moin.


Eine kompakte Lösung auf einem breadboardfreundlichem Design gibbet von BSFrance (Shop).
Das zugehörige Git findet man hier.
Eine weitere Bezugsmöglichkeit ist die Bucht. Bei einer Auswahl mit dem Antennentyp 2, µFl auf SMA + Stummelantenne, wurde mir ein Preis von 18€ ausgeworfen.

Mag auf den ersten Blick nicht günstig wirken, aber für einen Node, der bereits einen vernünftige Antennenlösung, Lade.- und Anschlussmöglichkeit für Akkubetrieb (LiPo) und ein OLED mitbringt…?



Pinout:

Das Datenblatt dazu: https://docs.bsfrance.fr/documentation/11377_LORAM3_D_F103/Datasheet_LoRaM3-D_1.1_F103.pdf

Ich denke dieser Node ist zumindest eine Überlegung wert. :slight_smile:

Gruß


#12

Habe mal einen Schaltplan auf Basis des Citizen Science Node gebaut:

Nun ist der Plan als nächstes ein Board ähnlich wie das von @Wijnand für den STM32 Bluepill zu bauen.

(PS: Das ist mein erster Tag mit KiCad und Elektronik :stuck_out_tongue_winking_eye: Ich nehme Kritik gerne an)


#13

Mein Form Vorschlag wäre dieser: (Also wie gewohnt)

Habe aber noch nicht die Maße verglichen mit der Box


#14

Wenn ihr euch gerade mit Microcontrollern von ST beschäftigt, dann nehmt doch lieber die Komplettlösung CMWX1ZZABZ-091. Mit dem Modul gibt es auch schon Leiterplatten unter dem Namen Grasshopper


#15

Der Grasshopper ist bekannt (siehe [Grasshopper] LoRaNode mit STM32L082 MCU )

Jedoch mit 44€ ziemlich teuer für etwas was man in großen Mengen nutzen will. Zudem ist ein stabiler (also fester) sma anschluss für die pigtail und ein loch für eine helix antenne gewünscht. Zudem verfolgt dieses Board zusätzlich das Ziel mit Hilfe von einer App konfigurierbar zu sein, womit ich dann bestimmte hardware anforderungen später habe. EEPROM zum beispiel später um eine Config zu speichern die durch die app kommt und ein STM32L… für LoPower, da es ja meist im feld landet und quasi vergessen werden soll.

Den CMWX1ZZABZ-091 Chip an sich habe ich mir jedoch noch nicht angeguckt. Der wäre durch aus eine Option. Wir haben aber soweit ich weiß noch keine Erfahrungen mit diesem gemacht. Interessant sieht der aber aus.

(Ergänzung: Ich habe mal geguckt was der stm32 und das modem roh kosten ohne als CMWX1ZZABZ-091 verbaut zu sein. Das sind etwa 7€ unterschied was meiner meinung ziemlich viel ist. (dafür bekommst du einen 2. STM32 und ein weiteres Modem)

14,82€ CMWX1ZZABZ-091
ungefähr 3,50€ STM32L072 (Chip only)
4,11€ RFM95W Modem

Somit kostet chip und modem roh nur ca. 7,60€ Also knapp halb so viel. Preislich also nicht sinnvoll das fertig Produkt zu kaufen sondern, wenn eh eine Platine gebaut wird auch die Einzelteile nehmen)


#16

Naja, dafür ist das Modul LoRaWAN zertifiziert und man spart einiges an Platz. Als alternative ist auch das neue Microchip Modul SAM R34 nicht uninteressant.


#17

Wegen zertifizierung kann ich nur sagen, dass wir aktuell als Verein versuchen uns in der LoRaAlliance zu bewerben :slight_smile: Damit ist zertifizieren kein Problem mehr, da wir damit das dann dürften (aber das ist nicht direkt relevant)

Das SAM R34 wiederum sieht preislich ziemlich interessant aus. Das gucke ich mir nochmal genauer an.


#18

Ergebnis eines Tages mit 2 aus dem Verein im Schützenverein: Das ganze klingt super interessant. Der Chip wird es vermutlich sein. Jedoch nach der bluepill version, da die bluepill Version einfacher ist in der Nutzung zum selbst löten. Der Chip ist etwas doof zum selber löten den würden wir vermutlich produzieren lassen zusammen mit dem SMD kram der pflicht ist laut Specification. Aber der sieht nach genau dem aus, den wir haben wollen.


#19

Eventuell wäre wohl ein extension board für dieses kleine super cool. Das kleine ist wohl der SAM R34 in fertig. Und es wird Open Hardware! Damit kann man dann dafür auch boards bauen ohne alle teile selber zu planen. würde aufwand bei design sparen. Andersum wäre es ohne das nur ein board was auch vorteile hat