Von Serial zu Serial schicken?

Hallöchen.
Ich wieder mal.... :slight_smile:

Folgendes Problem: ich hab das Ublox -GPS am Mega. Das Teil hat tausende einstellmöglichkeiten und-nen paar davon würde ich gern benutzen.
Momentan benutze ich dieses "Programm" um die GPS-Daten zum U-Center zu schicken, das funktioniert auch:

void setup()
{
Serial.begin(115200);
Serial1.begin(57600);
}

void loop()
{
if (Serial1.available()) Serial.write(Serial1.read());
}

Dieses Programm aber kann-das versteh sogar ich bis hierhin noch- natürlich keine Einstellungen zum GPS schicken.
Aber genau das will ich, denn dieses Programm: http://playground.arduino.cc/UBlox/GPS
Schickt zwar die Daten zum GPS-aber die bleiben dort nur, so lange die kleine Pufferbatterie noch mitmacht- ca. ne halbe Stunde.
Das ist einfach nutzlos...
Nun würd ich gerne das obige Programm so erweitern, dass Daten, die das U-Center zum GPS schickt, einfach von Serial zu Serial1 durchgereicht werden-ich hoffe, damit klappt es.
Leider weis sich nicht, wie das geht und würde da auch gern auf Nummer sicher gehn, um mir nicht die Firmware abzuschiessen oder so.
Kann mir das mal einer richtig erklären?

Rabenauge:
Kann mir das mal einer richtig erklären?

Ist das ein 5V GPS-Modul?

Üblicherweise schließt Du es dann mit einem USB-Serial Adapter am PC an.
Ohne Mikrocontroller.
Und dann kommuniziert das Modul über den Adapter mit dem PC.
Ohne Programm vor dem Programm.

Hallo,
wenn mich nicht alles täuscht, dann möchte er eine Verbindung
PC-uBloxCenter -> Arduino Mega -> Neo-6

Das hat einen einfachen Grund, der Neo-6 hat kein Flash.
Wenn seine StützBatterie nur eine halbe Stunde hält, dann liegt das daran,
das sich "fertig" sein könnte, oder- daran das das "Power-command" nicht
richtig gesetzt ist. Der Neo-6 läßt sich in einen BackUp-Modus versetzen.
Das aber nur am Rande.

Wie gesagt, hunderte von Einstellungen. Man kann sich diese vom U-Center aus-
geben lassen und dann mühsam in den Sketch übertragen. Und von dem Sketch
kann man sie dann zu dem Neo-6 senden.
Möchte man die Einstellungen ändern, geht das ganze wieder von Vorne los.
Ziemlich umständlich…
Durch die gewünschte Methode von Rabenauge kann er den Arduino einfach am PC
anschließen und die Daten in einem Rutsch übertragen.
So verstehe ich das.

Eine andere Möglichkeit wäre, die Option des externen Speicher zu nutzen.
Der Neo-6 ist dafür vorgesehen, seine Konfigurations-Daten auf einem
I2C-EEprom abzulegen. Wenn ich das richtig verstanden habe, dann sogar mehrere
Einstellungen.
Gruß und Spaß
Andreas

Ja-es läuft mit 5V.
Das mit dem Adapter: ich hab keinen, drum soll der Dino das übernehmen.
Andreas hats richtig verstanden, genauso will ich das.
Ich hab da nämlich nen EEPROM auf der Platine des GPS, (das GPS selber ist ja dicht, keine Ahnung, was da drin ist), und hoffe, somit die Einstellungen in diesen EEPROM schieben zu können.

Es geht also ganz einfach darum, den Datenstrom, den das U-Center derzeit ins Nirvana schickt (da das obige Miniprogramm ja nur in die eine Richtung funktioniert) direkt von der Serial(an der hängt ja der Rechner bzw. das U-Center) auf die Serial1 zu schicken-unkommentiert, unbearbeitet- nur durchreichen.
Wenn ich das alles richtig kapiere, sollts so nämlich funktionieren.
Ich trau mir da aber einfach nicht selber ans probieren, weil ich bisschen Angst hab, mir da irgendwelche Einstellungen zu zerschiessen.

@Andreas: die Stützbatterie ist wohl nur dafür vorgesehen, mal "kürzere" Zeiten zu überbrücken, damit nicht jedes mal alle Daten erst neu zusammengesammelt werden. Das klappt auch: ich kann ohne weiteres mal für ne Viertelstunde den Strom abstellen, dann hab ich selbst in der Wohnung den nächsten Fix nach ner halben Minute- wenns aber längere Zeit aus war, dauerts dann auch schonmal 20 Minuten, oder ich geh zum Fenster damit.

Hallo,
"und hoffe, somit die Einstellungen in diesen EEPROM schieben zu können"

Das scheint so einfach nicht zu sein.
Du schiebst ja mit dem U-Center die Daten rüber- schaltest Du den Neo aus, ist
alles verloren.
Das liegt daran, das Du dem U-Center sagen mußt wo er die Daten schreiben soll:

devBBR = device battery backed RAM
devFlash = device Flash
devEEPROM = device EEPROM
devSpiFlash = device SPI Flash

Seite 106/7 UBX Protocol

Was mir bei der "suche" nach dem Neo-6 noch aufgefallen ist, die sind fast alle
für irgend ein "Fluggerät" eingestellt. Kann es sein, das bei Deinem so etwas
wie ein Schreibschutz zum EEpromm vorhanden ist.

Hier ist der, den ich mir bestellen wollte/könnte, der sollte eigentlich
nicht "verfummelt" sein. Mit Antennen Stecker.

http://www.amazon.de/NEO-6M-Module-EEPROM-Built--Active/dp/B00EI4QKX0/ref=sr_1_fkmr0_2?ie=UTF8&qid=1406638740&sr=8-2-fkmr0&keywords=ublox+neo-6

Ich meine "ganz blöd" bist Du nun ja auch nicht- ich bin echt am überlegen, ob
ich mir nicht einen Lea-6 mit Flash besorge.
Gruß und Spaß
Andreas

Sieht haargenau wie meines aus-mit dem Unterschied, dass bei meinem die Antenne lose beilag (mit 3-4cm Kabel)- bei dem da ist sie vermutlich auch nur einfach unter die Platine geklebt.
Ansonsten, soweit erkennbar, exakt das selbe-ich habs aber vom Chinesen, für nen Zehner...

Und ja, ist richtig, man kann beim speichern verschiedene Optionen wählen, wohin die Settings gespeichert werden sollen.
Nur: mein "Programm" (oben gepostet) kann nicht auf Serial1 schreiben-sondern nur lesen.
Somit hat das U-Center keine Chance- ich seh dann auch immer die Timeouts.
Voreingestellt ist meines auf ne Baudrate von 9600 und eine Frequenz von 1Hz, und die Einstellung des Filters ist glaub ich "Fussgänger".

Ich hab eben mal folgendes probiert:

void setup()
{
  Serial.begin(115200); 
  Serial1.begin(9600);
}

void loop()
{
  if (Serial1.available())  Serial.write(Serial1.read());
  if(Serial.available()) Serial1.write(Serial.read());
}

Nach ner kurzen (5min, ca.) Unterbrechung hat es funktioniert, nun muss ich mal ne halbe Stunde warten.

Hallo,
so??

void setup() {
Serial.begin(9600);
Serial1.begin(9600);
 while (!Serial) {
    ; // auf serial warten
  }
}

void loop() {
 
Serial1.println('0');
Serial.println('0');
delay(1000);
Serial1.println('1');
Serial.println('1');
delay(1000);
}

das sollte/müßte doch auf Serial1 senden?
wäre ja mal ein Anfang…
Gruß und Spaß
Andreas

Hm-mein Programm-wenn mans denn so nennen kann-scheint zu funktionieren.
Eben war das Ding länger als ne halbe Stunde offline und- es läuft. Mit 5 HZ.
Werd das mal noch bisschen beobachten.

Andreas: mir gehts nicht darum, irgendwelche selbergebastelten Messages ans Ublox zu schicken-das hab ich gar nicht vor.
Bei den Unmengen von instellmöglichkeiten ist da zu schnell was verpfuscht.

Ich will die Einstellungen schon schön mit dem U-Center raufschicken. Ich brauch also nur ne Brüc ke dazwischen, und das ist eben der Mega. Und das eben hab ich vorhin mit meinem Programm, scheinbar erfolgreich, getan.
Ich mach das Ding nun mal ne längere Zeit stromlos und schau dann mal, ob alles noch da ist..

So.
Es funktioniert. Nun war das GPS wirklich lange (seit gestern Abend irgendwann) stromlos und- es läuft noch immer mit 5Hz.

void setup()
{
  Serial.begin(115200); 
  Serial1.begin(9600);
}

void loop()
{
  if (Serial1.available())  Serial.write(Serial1.read());
  if(Serial.available()) Serial1.write(Serial.read());
}

Experiment gelungen.

Hallo,
na! Das ist ja mal etwas: Nur zum Verständnis.
Du hast eine Verbindung- PC -> Arduino -> Neo-6
Dann startest Du U-Center und nimmst alle Einstellungen vor.
Dann wählst Du in U-Center den gewünschten Speicher aus.
Dann sendest Du diese Einstellungen mit dem U-Center direkt an den Arduino.
Auf diesem Arduino läuft Dein "SuperWeiterLeitungsProgramm"
Dieses überträgt dann die Einstellungen des U-Center in den gewünschten Speicher.
Nachdem Du Dein Neo-6 Board Spannungslos (auch Akku raus) gemacht hast, sind diese Einstellungen
auch nach Stunden noch vorhanden.
Wenn dem so ist- wirklich nicht schlecht!!
Gruß und Dank
Andreas

Genau so isses, Andreas.

In den Voreinstellungen hat nämlich das GPS (meines jedenfalls, z.B. nur auf 1Hz (5 kanns), Baudrate 9600, SBAS inaktiv usw.) nicht so wirklich viel drauf.
Das Ding kann so richtig viel mehr-ich hab gestern schon bisschen rumgespielt: hatte ich vorher (hier in der Wohnung, mit also lausigem Empfang) noch ne Streuung der Punkte von teilweise über 15m, hab ich es deutlich unter 5m runter bekommen.
Draussen konnt ichs noch nicht probieren, aber wenn das hier (ich sitz in ner Stahlbeton-Hütte, wenn auch unterm Dach) schon so gut geht...

Hallo,
ich verteile an dieser Stelle mal ne´n Punkt.
Gruß und Dank
Andreas