***************************************************** * * * Verze programů pro procesor v desce SQM-GPS * * přebíráno a upravováno ze starších verzí * * * ***************************************************** ==================================================================== 2024-12-30 (INT) - Po zapnutí, než se v GPS signálu objevily časové značky, hlásil procesor v SQM-GPS-6 po volání funkce "@G" špatný GPS status: GPS status: 0 (data: -- ; Time_SET: OFF ; Ext.) Deska byla interní, ale hlásila se nějakou dobu jako externí. Po úspěšném zpracování datumu už se odesílala správná informace, že se jedná o interní verzi desky: GPS status: 6 (data: -- ; Time_SET: ON ; Int.) Opraveno tak, že teď už se hlásí deska SQM-GPS jako interní hned po startu (i když ještě nejsou časová data k dispozici). ==================================================================== 2024-12-14 (INT) - Původní programy předpokládaly, ze se kontrolní součet v NMEA větách nachází na jedné konkrétní pozici "rozlozeny_pole[pozice]". Pro větu GxGGA to byla pozice 15, pro GxRMC to byla pozice 13. "Pozice" ve větách beru jako řetězce oddělené čárkami. Nový GPS modul (GP-02) ale do věty GxRMC přidává ještě jednu položku navíc a tím se kontrolní součet dostává o pozici dál. Proto se od této verze programu bere kontrolní součet jako dva znaky, které následují za hvězdičkou (už nezáleží na tom, kolik je větě čárek). - Zeměpisná délka už se kolem 180° východní / západní délky průměruje správně. V těchto oblastech se nedá použít obyčejný aritmetický průměr. příklad obyčejného průměrování: (+179 -178 + 180 - 177) / 4 = +1° (to je špatně) Správný výsledek má být -179° - Po přechozích úpravách pro úsporu RAM pravděpodobně nefungovalo převedení polí s vypínacími příkazy pro NMEA na "byte const PROGMEM" (je ale možné, že byla chyba jen ve špatně nastavené rychlosti procesoru). Každopádně převedeno zpátky na obyčejná pole typu "byte", která sice zabírají víc RAM, ale zatím to nevadí. - Doplněny delší pauzy mezi zápisy konfigurace do GPS modulu po zapnutí napájení (z původních 20ms na 40ms) ==================================================================== 2024-10-18 (INT) - Předchozí verze programu nepočítaly s tím, že bude modul NEO odesílat v GxGGA zprávě informaci o diferenční "DGPS Station ID" Při jejím příjmu se rozhodil kontrolní součet a celá zpráva se vyhodnotila jako nekorektní. To způsobilo zablokování činnosti, protože procesor čekal na další korektní zprávu, která ale už nikdy nedorazila. Na tuto chybu jsem při testování ani při běžném použití nikdy nenarazil. Až při výrobě nové verze SQM jsem použil vylepšený modul NEO-7M, který informaci o "Station ID" občas odesílal. Tím se chyba projevila. Ukázka přijatých zpráv. První je bez "DGPS Station ID", v druhé už se ID (0000) objevilo: $GPGGA,053752.00,4927.04766,N,01421.45921,E,1,06,2.47,474.0,M,44.3,M,,*5F $GPGGA,053753.00,4927.04779,N,01421.45918,E,2,06,2.47,473.7,M,44.3,M,,0000*59 - Dále došlo v této verzi k větším úpravám kódu při skenování přijímaných NMEA zpráv. Tyto úpravy se ale navenek neprojevují. Sloužily hlavně ke zpřehlednění kódu a případnému snazšímu budoucímu předávání informací získaných z GPS modulů NEO. - Novější moduly NEO (například NEO-7M) už nemají EEPROM, do které by se zapisovala konfigurace (seznam odesílaných zpráv, rychlost aktualizace ...). Proto se musí konfigurace zapisovat do modulu při každém zapnutí napájení. Tento proces je signalizován několikasekundovým postupným blikáním LED. Starší moduly NEO (například NEO-6M) ale nestíhají takto rychlé ukládání a proto jsem ponechal i možnost servisního zápisu konfigurace do EEPROM. (Při sepnutém kontaktu "S" na desce SQM-GPS-x při zapínání napájení). - Úpravy programu pro úsporu paměti RAM (navenek se neprojevují a v podstatě ani nebyly nutné). ==================================================================== 2024-10-18 (EXT) - Externí verze už není dále rozvíjena, ale chybu kvůli "DGPS Station ID" (popsáno v INT verzi) jsem tam, pro případ, že by "EXT" verzi někdo používal, opravil. ==================================================================== 2023-12-28 (INT, EXT) - kromě modulů NEO-6M (a podobných) je možné nově použít i moduly s čipem ATGM336H, které umožňují příjem více družicových systémů (GPS + GLONASS / BEIDOU). Mají sice trochu jinak uspořádané vývody, ale při propojení s deskou SQM-GPS pomocí drátů by to neměl být problém. - možnost prohodit střídu blikání (fázi) LED1 delším (5-sekundovým) spojením servisního pinu při běhu programu v hlavní smyčce. Na některých modulech se věty GxGGA a GxRMC odesílají v opačném pořadí a to pak způsobuje, že LED1 při blikání svítí zbytečně dlouho. Nastavená fáze blikání se ukládá do EEPROM, takže stačí provést nastavení jen 1x a systém si to zapamatuje. Uložení do EEPROM je signalizováno rychlým zablikáním LED1. - připravena nová I2C funkce s kódem 22 pro "HOT restart" GPS modulu (v hlavním programu SQM zatím nevyužito) - nové GPS moduly vrací HDoP při nezafixovaných družicích jako 25.5. Staré moduly hlásily HDoP=99.99. Program upraven pro obě varianty. Dříve, při použití nového modulu a starého programu, probíhalo blikání LED3 při částečném zafixování družic dost zmateně (krátké / dlouhé impulzy). - protože u modulu ATGM336H dochází k tomu, že při ztrátě družic zůstává HDoP na poslední známé hodnotě, bylo nutné upravit program tak, že když jsou zafixovány méně než 4 družice, HDoP se přenastaví na 25.5 (Err). Tím je zajištěno, že při ztrátě signálu přestane blikat LED3 a trvale se rozsvítí. - případná zpráva GPTXT o stavu antény, která je defaultně zapnutá na nových GPS modulech, se při servisním spuštění vypíná - v setupu (servisní nastavení) přidáno nastavení rychlosti vysílání NMEA zpráv na 1 sekundu (většinou to tak bylo nastaveno defaultně, ale pro jistotu to je potvrzeno) - po přenastavení všech parametrů v GPS modulu dojde k "HOT restartu" modulu ==================================================================== 2023-08-23 (INT, EXT) - doplnění blikání LED frekvencí 1Hz při sepnuti servisního pinu v hlavní smyččce ==================================================================== 2023-07-29 (EXT) - Synchronizace z INT verze 2023-07-29 s několika rozdíly: - DATA_RDY se neovládá softwérově (pin se spíná do LOW po zasunutí modulu do konektoru). V INT verzi se přepíná do HIGH se zpožděním. - Pomocí přepínače "TIME" je možné vynutit nastavení času v RTC (INT verze nastavuje čas vždycky) - Změna rozvržení některých pinů u procesoru ATmega328. ==================================================================== 2023-07-29 (INT) - pin "DATA_RDY" se do HIGH přepne se zpožděním (asi 2 sekundy) - až po prvním úplném zpracování obou NMEA vět. Tím by se mělo předejít problému, že SQM bude žádat o data, protože data_RDY už bude v HIGH, ale procesor ATmega na desce GPS ještě nebude mít aktivovanou I2C komunikaci. - na požadavek "70" přes I2C komunikaci odpoví textovou verzí softwéru ==================================================================== 2023-07-07 (INT) - Předělávka, aby se modul GPS vešel dovnitř mírně zvětšené krabičky SQM. - Přečíslování pinů z důvodu snadnějšího routování cest na PCB (SQM-GPS-5). - Zrušení přepínače pro vynucení nastavení RTC. Nastavení času bude probíhat vždycky, když bude v GPS signálu čas dostupný. - Do status bajtu přidána do bitu 2 informace, že se jedná o interní desku GPS ('1'). V externích verzích tam byla '0'. - Původní propojka, podle které SQM poznal, že je GPS modul zasunutý z boku do krabičky, byla nahrazena extra pinem ("DATA_RDY"), který se po spuštění programu přepne do HIGH. Při vypnutém napájení GPS modulu je udržován v LOW. Aby se nemohlo stát, že se při zapojení periférie do bočního konektoru zkratuje napájení, bylo nutné předělat i desku SQM-BAS. - Drobné úpravy servisního režimu: Při krátkém sepnutí servisního kontaktu nedojde k zacyklení v blikací smyčce, která signalizuje uložení konfigurace do NEO-6M. ==================================================================== 2022-01-23 (EXT) - Doplněn přenos NMEA zpráv přes I2C do SQM. Přenáší se po 15-znakových blocích na vyžádání přes kódy 50 až 55 (GxRMC) a 60 až 65 (GxGGA). - V souvislosti s přenosem NMEA bylo upraveno i odesílání zpracovaných dat přes I2C (přes kód 10). Zhasínání a rozsvěcování LED zůstává na kódech 20 a 21. - Když jsou NMEA zprávy dostupné přes I2C, byl zrušen debugovací režim. Původně nasunutí propojky JP3 za běhu programu začalo odesílat různá hlášení a NMEA zprávy na Tx pin procesoru. Bylo tak možné je zachytávat USB/TTL převodníkem a vypisovat v terminálu. - Opravy indexu registru HDoP pro mazání při špatném signálu. - HDoP se při špatném signálu nově přenáší jako číslo 255 (25,50 m). Dříve to bylo 0,00 m (to ale znamenalo naopak tu nejlepší přesnost). V SQM se pak číslo 255 zobrazuje jako "99.99 (Err)" - Doplněna funkce blikání třetí LED po zafixování prvního satelitu. 3. LED začne blikat ve stejné době, jako LED přímo na GPS modulu NEO-6M. Jenže když je celý modul v krabičce, tak vnitřní LED není vidět. - Doplněna funkce pro kontrolu správného nastavení frekvence krystalu (4MHz). Při zapnutí napájení s propojenou servisní propojkou se ještě před automatickým nastavením GPS modulu. rozblikají na 5 sekund všechny LED frekvencí 1Hz. Pokud je skutečná frekvence jiná, je to chyba a je nutné upravit před kompilací programu soubor "boards.txt". ==================================================================== 2021-04-25 (EXT) - První zveřejněná verze.