Probleme mit NEO-6m-0-001

Mahlzeit!

Ich hab da ein Problem mit dem GPS. Prinzipiell scheint alles zu funktionieren. Der Arduino Nano liesst die Daten mit dem TinyGPSPlus aus und schreibt sie auf eine MicroSD (wenn ich die Teile in Fritzing hätte hätte ich einen Schaltplan angehängt).

Prnzipiell funktioniert das. So bekomme ich Datum und Uhrzeit problemlos von dem GPS. Wenn ich damit unterwegs bin blinkt auf die kleine LED.

Aber es kommen keine Daten. Bzw. es kommen nur 0. Egal ob Geschwindigkeit, Satelitten, Geschwindigkeit usw. Ab und zu schreibt er mal einen oder zwei Sätze, mehr aber auch nicht.

Mache ich da vielleicht etwas mit der Antenne falsch?

Möglich- das passiert entweder wenn kein richtiger Empfang ist, oder aber die Daten nicht verstanden werden. Generell aber kommt immer zuerst mal die Uhrzeit-das sind die ersten brauchbaren Daten, die das Teil empfängt. Der Rest dauert, je nach Bedingungen schon mal ne halbe Stunde (bei mir in der Dachwohnung, bei schlechtem Wetter z.B.).

Bevor nicht ausreichend Satelliten gefunden wurden, kommt da auch nix. Sinnvoll ist es, da mal mit dem U-Center zu schauen, was denn überhaupt empfangen wird, das gibt das sehr schön aus (und man braucht es ohnehin, um das Ding vernünftig einzustellen). Die Geschwindigkeit ist auch erst dann so leidlich brauchbar, wenn man die entsprechenden Odometer-Einstellungen erst mal gemacht hat....da hilft nur das Datenblatt gründlich studieren und viel Probiererei.

U-Center muss ich mal schauen wie das unter Linux läuft. Ist lange her das ein Rechner bei mir natives Windows hatte.

Läuft problemlos. Wahlweise in Wine oder auch mit Virtualbox. Wichtig ist, den entsprechenden Port auch einzurichten.

hirnfrei: Mache ich da vielleicht etwas mit der Antenne falsch?

Datum und Uhrzeit kommen von den Neo-6M GPS-Modulen immer dann problemlos - wenn das Modul irgendwann einmal GPS-Empfang hatte - und das Modul nicht so lange von der Stromversorgung getrennt war, dass die Kondensator-Batterie für die eingebaute RTC leergelaufen ist.

Neo-6M GPS-Module haben eine eingebaute RTC, und fast alle handelsüblichen Module haben eine kleine Kondensator-Batterie auf dem Modul drauf, die immer dann nachgeladen wird, wenn das Modul an Betriebsspannung hängt. Deshalb ist Datum und Uhrzeit an den Modulen kaum totzubekommen.

Für alles andere brauchst Du natürlich Satellitenempfang, also "freie Sicht auf die GPS-Satelliten", im allgemeinen unter freiem Himmel. Wenn Deine Antenne keinen freien Blick auf einen möglichst großen Bereich des Himmel hat, dürfte es mit GPS-Empfang Essig sein, z.B. in Innenräumen von Gebäuden.

GPS ist eine Outdoor-Anwendung.

Nö jurs. Ich hab das Neo 6m auch(leider, das 6p wär mir lieber, gibts aber nich für den Preis), das Ding funktioniert bei mir auch drinnen im Dachgeschoss noch. Allerdings dauert es dann schon mal länger, ehe nen Fix kommt (bei Kaltstart)- das kann mal ne halbe Stunde sein. Und natürlich sind die Positionsdaten dann nicht soo genau-aber unter 10m schon. Draussen geht es besser, vor allem dann, wenn SBAS empfangen werden kann.

Also uCenter will bei mir nicht. Installieren ist kein Problem, starten geht aber leider nicht und ein wirklicher Fehler wird auch nicht angezeigt.

Ich verstehe es aber richtig, auf dem Modul sind 2 LED. Die Eine zeigt an das das Modul Strom hat und die andere blinkt wenn Kontakt besteht. Oder sehe ich das falsch?

Keine Ahnung- meins hat nur eine LED. Trotzdem wirst du ohne das U-Center mit dem Teil nur wenig anfangen können, da du etliche Funktionen dann nicht aktiviert bekommst, bzw. nicht mal weisst, ob sie aktiv sind.

Also richtig ist auf jeden Fall, wenn ich das Teil einfach ein wenig laufen lasse kommen tatsächlich Daten dabei raus.

Uhrzeit;Datum;Lat;Lon;Kurs;Km/h;mp/h;Knoten;Höhe (m);Höhe (ft)
18:55:48;26.4.2016;49.18;7.04;147.01;0.70;0.44;0.38;0.00;0.00

Bis auf die Höhe passt soweit alles. Gut die Geschwindigkeit ist dafür das das Teil auf der Fensterbank gestanden hat etwas hoch, aber wir wollen ja mal nicht kritisch sein oder ;).

Nur warum dauert das so ewig bis das Daten sammelt? Das waren rund 20 Minuten. Die LED hat schon nach wenigen Minuten geblinkt.

Ich wollte eigentlich ein Bluetooth dran hängen um die Daten Live dann im Auto sehen zu können. Aber mit SoftwareSerial geht nur eine Verbindung und die belegt das GPS ja schon. Ich versuche es mal mit AltSoftSerial.

hirnfrei: Ich wollte eigentlich ein Bluetooth dran hängen um die Daten Live dann im Auto sehen zu können. Aber mit SoftwareSerial geht nur eine Verbindung und die belegt das GPS ja schon.

Es gibt Arduino-Boards mit mehr als einer HardwareSerial-Schnittstelle, z.B. ein MEGA2560 hat 4 Stück: Serial, Serial1, Serial2, Serial3.

SoftwareSerial ist übrigens eine totale Krücke, die zu fast nichts zu gebrauchen ist, insbesondere darfst Du bei Baudraten höher als 4800 Baud Softwareserial NICHT zusammen mit Serial (HardwareSerial) verwenden, z.B. versuchen wollen, auf SoftwareSerial zu empfangen und auf Serial was an den seriellen Monitor zu senden, dann kackt Dir die Datenübertragung ab, und wenn Du das beispielsweise mit 9600 Baud für SoftwareSerial und 9600 Baud für Serial versuchst, empfängt SoftwareSerial zum großen Teil nur noch Datenmüll.

Das Problem ist Dein Sketch und dass Du kein Board mit mindestens zwei HardwareSerial-Schnittstellen verwendest.

Eie Daten stehen schon an, sobald die LED am GPS-Modul blinkt. Allerdings kannst Du am Blinken nicht unterscheiden, ob Du nur 2D-Positionen empfängst (von 3 Satelliten) oder 3D-Positionen (mit Höhenangaben, erfordert gleichzeitigen Empfang von 4 oder mehr Satelliten).

Und "auf der Fensterbank!" hast Du überhaupt keinen garantierten GPS-Empfang, sondern bist auf Tageszeit und Glück angewiesen. GPS ist eine Outdoor-Anwendung.

Bring das U-Center zum laufen! Du musst nen Com-Port einrichten in Wine, dann geht das auch. Dann hast du nämlich die Möglichkeit, zu sehen, was das Ding wirklich empfängt. Vorher fischst du total im Trüben, weil du nicht weisst, ob die Daten überhaupt zu gebrauchen sind. Falls es gar nich geht, installiere das U-Center mittels PlayOnLinux, das dürft am einfachsten sein, wenn du Glück hast, wird dort auch gleich die Berechtigung für den Com-Port automatisch eingerichtet.

Ich habe es schon mittels PlayOnLinux und ohne probiert. Mal schauen ich probier mich mal durch. Die Daten, die mein Teil da gespeichert hat, passen aber zu denen von meinem Handy, von der Geschwindigkeit mal abgesehen.

Was SoftwareSerial angeht, bislang hat das für meine Zwecke immer ganz gut funktioniert. Werde mir aber jetzt auch mal Alternativen anschauen. Einen Mega habe ich auch hier, aber der alleine ist ja schon grösser wie mein ganzes Gerät.

Das die Idee mit der Fensterbank nicht gerade genial ist weiss ich auch. Normalerweise stell ich das Teil auch ins Auto wenn ich fahre. Nachdem es aber hiess, dass die Teile schonmal Anlaufzeit brauchen dachte ich, ich stells mal hin und geb ihm Zeit. Siehe da, da kamen dann ja auch Daten.

Mal eine kurze Zwischenfrage, ich hab mir gerade ein Video angeschaut wo U-Center etwas erklärt wird. Prinzipiell scheiss Video, abgehackte Stimme usw. Aber, bei dem ist die Antenne direkt auf dem Modul, meine ist an einem Kabel. Muss ich da was beachten wo ich die positioniere? Braucht die noch irgend einen Kontakt auf der Rückseite oder so?

hirnfrei: Muss ich da was beachten wo ich die positioniere? Braucht die noch irgend einen Kontakt auf der Rückseite oder so?

Ja, am besten draußen.

Es gibt verschiedene Bauformen, U-Blox ist immer nur der Chip auf verschiedenen Platinen und Beschaltungen

Das mit dem draussen ist mir schon klar. Ich meinte damit ob die Antenne ausser dem Koaxialkabel noch eine Verbindung zum Bord braucht.

Zudem stresst mich gerade U-Center. Nachdem es dann nun doch unter Wine läuft, ich einen Sketch für den Arduino gebastelt habe, ttyUSB0 als com1 eingerichtet habe, verbindet sich U-Center nicht damit. In der Auswahl wird es zwar aufgeführt, der Haken ist aber vor Disconnect und Com1 lässt sich nicht anwählen…

#include <SoftwareSerial.h>

SoftwareSerial serialGPS(3, 2);

void setup() 
{
 Serial.begin(9600);

 serialGPS.begin(9600);
}

void loop()
{
 if(serialGPS.available() > 0) 
 {
   char daten = serialGPS.read();
   Serial.write(daten);
 }

 if(Serial.available() > 0) 
 {
   int sdaten = Serial.read();
   serialGPS.write(sdaten);
 }
}

Das wäre mein Sketch.

Alle Baudraten richtig eingestellt?

Ja das passt.

Nein deine Antenne braucht ansonsten nichts. Hab noch nicht so viel mit Wine gemacht, kann sein das da evtl noch ein Problem vorliegt

https://lists.gnu.org/archive/html/paparazzi-devel/2008-04/msg00078.html Probiers mal.

Nen funktionierendes Programm, mit dem man auch Daten vom U-Center auf das GPS schreiben kann, hatte ich hier mal irgendwo gepostet. Du musst dort lediglich die Anschlüsse anpassen, da ich für sowas Megas nehm, um mir die SoftSerial zu ersparen.

So habe ich es gemacht.

Aber ich suche mal das Programm wo du gepostet hast.

Nachtrag:

Ich habs gefunden. Steht bei Von Serial zu Serial senden. Und es ist genau das was ich auch geschrieben habe ;).

Allerdings habe ich jetzt aus lauter Verzweiflung ein altes Laptop heraus gekramt. Da ist Windows XP drauf. Habe U-Center 8.16 drauf gemacht, da wird dann COM3 angezeit. Aber wirklich Daten kommen auch keine rum. Wenn ich im Arduino den seriellen Monitor öffne bekomme ich aber meine Daten angezeigt.