Update: Ich habe mich nun zwei Tage durch dieses GPS-Monstrum gequält und konnte es um einige UBX-Befehle erweitern, so dass nun M6 und M10 Module funktionieren. Einige Sachen wie das Aiding funktionieren noch nicht, da ich keine äquivalente Funktion gefunden habe - habe aber auch nicht intensiv gesucht. Lock ist nach ca. 20 Sekunden selbst an einem schlechten Standort da.
Außerdem habe ich die Soft-Power-On/Off Funktion noch mal in eine Hardware-Timer-Interrupt-Routine geworfen, womit das nun auch zuverlässig funktioniert, egal in welchem Menü man sich gerade befindet.
Ein Problem habe ich noch, evtl. kann da wer weiter helfen. Ab und zu hängt sich die Firmware beim Starten in irgend einer Endlosschleife auf und er kotzt die ganze zeit
E (3968) gpio: gpio_set_level(226): GPIO output gpio_num error
aus. Mir ist klar, dass das bedeutet, dass ich ein gpio_set_level/digitalWrite auf einen Pin mache, der kein Output sein kann. Ich verstehe aber nicht warum das nur manchmal passiert und viel schlimmer: Ich habe keine Idee wie ich das debuggen kann. Er sagt einem leider nicht welcher Pin das ist oder wo das im Quelltext ist. Die Funktion gpio_set_level scheint vorkompiliert zu sein, so dass ich da nicht mal zusätzlich die Pin-Nummer oder nen Stack-Trace auskotzen könnte. Jemand noch ne Idee?
Grober Plan ist nun, dass ich morgen noch ein paar Kleinigkeiten an der Hardware fixe und dann 25 Demonstratoren bestelle. Davon gehen 5 an den OBS e.V., 5 an die Hochschule Karlsruhe, 10 an die lokale OBS-Braunschweig Gruppe und 5 für „mich“. Die 5 für „mich“ gebe ich prinzipiell raus, falls mir jemand bei der Firmware oder beim Testen helfen will.