GSM-Gerät 2 (GG2) – Die Schaltung

So, für die Elektroniker unter den Lesern hier mal ein Blick auf den aktuellen Stand der Schaltung.

Im Grunde erst mal relativ unspektakulär. Hier die wichtigsten Punkte:

  • Die Stromversorgung ist ein Akku vom Typ 18650 mit nominell 3,7V
  • Über ein P-Kanal MOSFET vom Typ Si2301 wird die Spannung geschaltet
  • Über ein MT3608 Step-Up-Modul werden da 4,1V draus gemacht
  • Zwei Kondensatoren glätten die Spannung und puffern etwas die bis zu 2A, die das GSM-Modul zieht
  • Als GSM-Modul kommt ein SIM800L zum Einsatz
  • Also Microprozessor kommt ein Arduino Pro Mini zum Einsatz
  • Die Kommunikation zwischen den beiden erfolgt via UART
  • Mit ein paar Widerständen werden die Kommunikationspegel zwischen Arduino und SIM800 angepasst
  • An den Arduino sind zwei LED angeschlossen, eine dritte sitzt direkt auf dem Modul
  • Ein Spannungsteiler misst die aktuelle Spannung des Akku
  • Als Debug-Port ist noch auf zwei Pins des Arduino ein SoftSerial realisiert

Damit sollte grob umrissen sein, was da hardwareseitig passiert.

GSM-Gerät 2 (GG2) – Nächste Revision der Platine

Aus den Erfahrungen des Testbetriebs der letzten Monate konnte ich ein paar Veränderungen an der Schaltung ableiten

  • Das Airwire der letzten Platine entfernen 🙄
  • Ersetzen des IRF 9520 durch einen Si2301
  • 100uF Tantal-Kondensator nach den Step-Up-Regler
  • 1.000uF Elko in der Nähe des SIM800L
  • Und natürlich der 10kOhm Widerstand beim Start-Taster

Damit sind alle Änderungen, die in die 0-Serie eingeflossen sind, auch in Schaltung und Platinen-Layout übernommen.

Bisherigen Farbgebungen

  • grün – Prototyp
  • blau – 0-Serie

Und dann habe ich die Frau gefragt, wie wir weiter machen 😀

Sobald sich das Layout bewährt hat, stelle ich natürlich auch das Gerber-File zur Verfügung.

GSM-Gerät 2 (GG2) – Wo sind meine Melder?

Gerade wenn man mit mehreren Personen im Revier die Fangjagd betreibt, kann es vorkommen, dass sich der Standort einer Falle ändert und nicht alle Jagdkameraden gleich Bescheid wissen, wo der neue Standort ist.

Deswegen hat das System eine neue Funktion erhalten, der Benutzer kann in einer Karten den Standort des Melders eintragen. Für das Revier werden dann gleich alle Fallen angezeigt.

An dieser Stelle ein ganz großes Dankeschön an die Entwickler von OpenStreetMap und leaflet.js.

Jetzt kommt bestimmt gleich die Frage auf: Stand nicht in einem älteren Blog-Eintrag, dass der Standort eher in die Revierwelt-App gehört? Ja, das stimmt. Die Schnittstelle da hin lässt aber aktuell noch auf sich warten.

GSM-Gerät 2 (GG2) – bedrahtet vs. SMD

Ich habe ja dicke Finger und eigentlich hatte ich die Hoffnung, den Melder komplett mit bedrahteten Bauteilen aufbauen zu können. Spätestens beim MOSFET scheint da Schluss zu sein. Ich brauche da eine Variante, die bei 2,5V Gate-Source-Spannung schon die 2A für das SIM800 durchlässt. Erst mal musste ich selber wieder lernen, wie man die Kennlinien eines MOSFET liest, ich glaube zuletzt hatte ich 1998 im Fach Halbleiter damit zu tun. Dann musste ich lernen, dass die Nachbauten aus China ggf. nicht ganz der Spezifikation entsprechen um es höflich auszudrücken.

Favorit ist jetzt der Vishay Si2301DS, leider in SMD-Bauform. zum Glück bekommt man für kleines Geld entsprechende Adapterplatinen, damit ich die bestehenden Platinen damit erweitern kann.

GSM-Gerät 2 (GG2) – Open Source aber keine aktuellen Daten?

Aber wenn doch in einem Beitrag geschrieben steht, dass die Lizenz eine Open Source Lizenz ist, warum ist denn hier nicht alles veröffentlicht? Insbesondere nicht die letzten Aktualisierungen der Schaltung oder das Gerber-File?

Das ist eine berechtigte Frage. Der Hintergrund dazu ist relativ einfach: Der aktuelle Status ist nicht veröffentlichenswert.

Aktuell arbeite ich an vier größeren Themenblöcken

  • Reicht ein 470 uF Kondensator um die Stromversorgung des SIM800 zu stabilisieren?
  • Welcher MOSFET ist denn nun der richtige? Aktueller Favorit Vishay SI2301DS
  • Muss ich zukünftig konsequent auf ATmega328p setzen?
  • Wie machen ist die Suche nach dem Netz nach dem Aufwecken des SIM800 zuverlässiger?

Leider sind drei dieser vier Themenblöcke Hardware-Themen, die sich direkt auf die Schaltung auswirken. Für mich selber kann ich da gerne ein paar Kabelbrücken quer über die Platine ziehen. Das ist aber nicht mein Anspruch für Daten, die ich rausgebe. D.h. erst werden die ersten drei Themen geklärt, dann ein aktualisiertes Layout erzeugt und dann gibt es auch aktualisierte Daten 🙂

GSM-Gerät 2 (GG2) – Und ständig nervt die Stromversorgung …

Im Verlauf des Projekts hat sich herausgestellt, dass die Anforderungen des SIM800L an die Stromversorgung nicht ganz unerheblich sind. Zuletzt hatte ich immer mal wieder schwer nachvollziehbare Aussetzer der Geräte.

Um das Problem einzugrenzen habe ich ein Testprogramm geschrieben, das einen gegenüber dem Regelbetrieb höheren Stromverbrauch provoziert. Mit diesem Testprogramm konnte ich nachvollziehen, dass das SIM800L in bestimmten Betriebssituationen so viel Energie benötigt, dass auf der anderen Seite der Arduino ein Reset erfährt.

Ein Elektrolyt-Kondensator mit 470uF in die Stromversorgung dicht an dem SIM800L hat hier das Verhalten stabilisiert. Memo an mich für die nächste Revision:

  • Elko mit in das Schaltungslayout aufnehmen

GSM-Gerät 2 (GG2) – Lieferengpässe

Ja und da hat es dann auch dieses Projekt erwischt mit den globalen Lieferengpässen. Das GG2 arbeitet ja mit einem Klon des Arduino Pro Mini mit einem ATmega 168p von Microchip. Wo man früher noch beliebig in die virtuellen Regale greifen konnte, wartet jetzt eine intensiver Recherche auf einen, wo es diese Module noch käuflich zu erwerben gibt.

Die erste Reaktion war: Macht ja nichts, es gibt doch Module mit dem ATmega 328p wie Sand am Meer, der kostet dann halt ’nen Euro mehr und gut ist.

Das ist dann aber auch eher die graue Theorie, als die Praxis 🙁

Leider sind die Spannungsregler auf diesen günstigen Modulen von sehr unterschiedlicher Qualität. Während die auf den Modulen mit dem ATmega 168p doch vergleichsweise gut waren und aus den 4,2V, die für das SIM800 aufbereitet wurden, ganz entspannte 3,3V machten, verhielt sich das bei den Modulen mit dem ATmega 328p gänzlich anders. Dort benötigt der eingesetzte Linearregler offensichtlich eine Spannungsdifferenz von 1-2V. Regelmäßig stieß der Controller damit an die Brown-Out-Spannung und hat sich neu gestartet.

Aktuelle Lösung:

  • Der ATmega 328p kann durchaus mit 4,2V direkt betrieben werden
  • Auf dem Modul wird neben der Power-LED auch der Linearregler entfernt
  • Die Stromversorgung auf dem Board wird modifiziert
    • Versorgung via RAW wird gekappt
    • Die 4,2V werden direkt auf Vcc gegeben

Damit ist die Zukunft dieses Projektes gesichert. Ein umgebauter Prototyp läuft gerade Probe.

GSM-Gerät 2 (GG2) – Redesign der Platine

In der letzten Fangjagdsaison wurden die fünf Prototypen des GG2 intensiv eingesetzt. Einer der Erfahrungswerte war, dass die Anordnung der Stromversorgung im Deckel – diplomatisch ausgedrückt – suboptimal ist. Zum Wechseln des Akku brauch man eigentlich drei Hände und die Anschlussstellend er Kabel neigen irgendwann zum Brechen.

Ein weiterer, negativer Aspekt war, dass dieses kleine Modul für den Tiefentladeschutz beim Akkuwechsel etwas zickig war. Legte man einen frischen Akku ein, wurde die Spannung nicht zwingend durchgeschaltet. Manchmal musste man es öfter versuchen, sprich den Akku wieder entnehmen und erneut einlegen.

Also musste ein Redesign her. Dabei gab es zwei Hauptziele

  • Stromversorgung auf dem Board integrieren
  • Tiefentladeschutz über den Arduino laufen lassen

Während der erste Punkt über entsprechende Platinen-Halter für 18650-Zellen noch relativ einfach zu realisieren ist, ist der zweite Teil da schon etwas schwieriger. Die Spannungsversorgung wird über ein P-Kanal MOSFET geschaltet. Am Anfang war angedacht, das über einen NDP6020P von onsemi zu relisieren. Da stellte sich in der Umsetzung leider heraus, dass die verfügbaren Teile offensichtlich Nachbauten sind, die nicht den Spezifikationen des Datenblattes entsprechen. Deswegen musste noch umgeschwenkt werden auf einen SMD-Ersatztyp IRLML6402.

Der MOSFET wird dann indirekt durch den Arduino angesteuert. Da dieser ja die Steuerung erst übernehmen kann wenn er auch mit Strom versorgt wird, gibt es einen Start-Knopf, der temporär die Ansteuerung der MOSFET übernimmt.

D.h. zum Start des Gerät

  1. Akku einlegen
  2. Start-Knopf drücken

GSM-Gerät 2 (GG2) – Datenbank

GSM-Gerät? Datenbank? Was soll denn das?

Zu dem GSM-Gerät 2 gehört einfach ein Backend, in dem die Daten gesammelt und für den Bediener aufbereitet werden. Und wie das heutzutage so üblich ist, hat dieses Backend darunter eine relationale Datenbank.

Starten wir einfach erst mal mit einem Überblick.

ER-Diagramm

In diesem Diagramm sieht man sehr gut, was da alles so verwaltet wird.

  • Users – die Benutzer im System
  • Grounds – die Reviere
  • Memberships – eine Gast-Zugehörigkeit zu Revieren
    Der Inhaber der Reviere gehört natürlich automatisch dazu
  • Traps – die Fallen
  • TrapHistories – die letzten Meldungen der Falle

Die meisten Felder der Tabellen sind vermutlich selbsterklärend. Näher eingehen muss ich vermutlich nur auf die Felder an der Tabelle Traps.

  • IMEI – Im GSM-Netz ist das eine Identifikationsnummer für das Gerät.
    In diesem System dient das auch dazu, den Melder zu indentifizieren.
  • ICCID – Hinter dieser ID verbirgt sich die Identifikationsnummer der SIM-Karte.
    Für den Benutzer ist das relativ wertlos. Sollten mal Melder „verloren gehen“, kann man mit dieser ID aber die SIM-Karte identifizieren, die gesperrt werden muss.
  • Voltage – Spannung in Millivolt
  • Strength – Eine abstrakte Größe vorgegeben durch das eingesetzte Modul.
    Der Bereich bewegt sich von 1, was ungefähr -109 dBm entspricht, bis zu 30, was ungefähr -53 dBm entspricht.
  • Switch_One_Ok_State – Technisch wollte ich die Option offen halten, dass ggf. auch ein offener Schalter eine scharf gestellte Falle repräsentiert und nicht nur der geschlossene Schalter. Über dieses Feld kann man das beeinflussen.
  • Switch_One_Active – Wird der Schalter gerade genutzt.
    Darüber kann man z.B. auch den Melder außer Betrieb nehmen.

Ggf. werden diese Felder auch noch erweitert. Aktuell steht noch die Idee im Raum, über das GSM-Netz die grobe Geolocation abzufragen.