Welke GPS module.

Hallo allemaal,

Ik ben op zoek naar een GPS module waarvan ik alleen the RMC ($GPRMC) message van krijg (eventueel na configuratie). Ooit eens de A2035H gebruikt, die is niet meer te krijgen. 2235H van dezelfde fabrikant zou het moeten doen, maar het schijnt dat die gevoeliger is voor plotseling afschakelen. De NEO-6/7 schijnen redelijk te doen wat ik wil, alleen kan ik daar geen interface specificatie van vinden. De enige data dat ik nodig heb is de tijd voor mijn klok, de rest zal (zolang die op mijn kast blijft staan) wel gelijk blijven.

Groetjes

carpe cerevisi

Dit doe ik niet graag, integendeel heb ik al meermaals mijn beklag gedaan als anderen het deden; maar voor deze ene keer wil ik de vraag in vraag stellen:

Er is toch niks mis met een ontvanger die ook andere recordtypes uitstuurt? Zolang de voor u relevante RMC's er maar bij zijn is toch alles kits? En bij al wat ik al in huis heb gehad (dat is nogal een en ander, uit China en van elders) was er nog nooit eentje die dat niet deed. Daarom is het ook een "Recommended Minimum".

Let wel: sedert er niet meer alleen GPS is, maar ook Glonass en nog andere, zijn er nogal wat ontvangers die meerdere satellietfamilies ontvangen, en de resultaten combineren voor betere nauwkeurigheid. Het gebeurt dan wel dat ze geen GPRMC uitsturen maar wel GNRMC; waarbij de N verwijst naar GNSS, een generieke term voor alle satellietnavigatie.

hoe beter de vraag geschreven, zoveel te meer kans op goed antwoord
Sine

Moderator

Als je gps ontvanger meer info geeft dan je wilt hebben, dan zul je wat meer moeten parsen.

@BFM
Is GNSS niet Glonsass?

Misschien moet ik mijn vraag wat duidelijker stellen, zoals jouw ken-zin zegt: :)
De eisen zijn:
1) de klok moet "globaal" kunnen werken door de sateliet navigatie signalen op te vangen.
2) de module moet alleen de RMC message sturen over een seriele port met een baudrate van 9600, met een logische "1" spanning van 3.3 of 5V.
3) indien nodig kunnen andere messages, die de module kan uitsturen, tijdens de initialisatie uitgeschakeld worden over dezelfde seriele port.

Enige suggesties?

carpe cerevisi
joopv

Golden Member

Bij de ontvangers waar ik ooit intensief mee gewerkt heb kon je de strings die je niet nodig had uitzetten, en de herhalingsfrekwentie instellen. Even in de manual van de betreffende module duiken, en kijken welke nmea command's het ding ondersteunt.

GNSS is de generieke term voor satellietnavigatie systemen, daar vallen dus alle systemen (6 of 7 nu?) onder.

[Bericht gewijzigd door joopv op 17 januari 2020 14:11:43 (12%)]

@Sine: Parsen is altijd een mogelijkheid, maar ik wilde de hoeveelheid data zo klein mogelijk houden; de hele klok loopt op interrupts, dus liever niet te veel van dat als ik het niet werkelijk nodig heb. Als-ie af is was ik van plan het hele project hier te publicieren.

carpe cerevisi

Ik herinner me vaag dat men naar sommige ontvangers ook kan schrijven, om alle mogelijke parameters in te stellen. Die mogelijkheid leek me altijd heel erg avontuurlijk, want als je iets misschrijft dan kun je wel eens de poten onder je eigen stoel wegzagen en dan heb je niks meer, en ik zou niet weten hoe men zo'n ding een "factory reset" kan geven. Maar het moet wel mogelijk zijn, van model tot model.

@joopv heeft hierboven in dezelfde richting gewezen, en lijkt er minder schuw van te zijn dan ik :) En ook een net antwoord aan @Sine waar ik helemaal achter sta, bedankt, Joop!

hoe beter de vraag geschreven, zoveel te meer kans op goed antwoord

zo'n ding is toch maar 9600 baud ofzo.
Die seriële data die op interrupt basis binnenkomt zal je programma echt niet verkloojen. Tenzij je teveel doet.
in de interrupt of alles in een buffer dumpen en in de main op t gemakske uitpakken. Of in je interrupt kun je al op een slimmer truuk de berichten die je niet nodig hebt ignoren.
De micro's van tegenwoordig zijn zo snel.

@Stijnos: weet jij dan op welke hardware er gewerkt wordt?

hoe beter de vraag geschreven, zoveel te meer kans op goed antwoord

Is een Arduino met een GPS shield een optie?

Ik heb wel eens wat geprutst aan een stuk code van iemand anders dat o.a. een GPS ontvanger configureert:
https://github.com/AartSchipper/smopiVTI/blob/master/smopiVTI.ino en dan configureGPS()

Mijn indruk is dat de ontvanger, een GNSS GG-1802, het iedere keer vergeet, maar dit deel werkte goed dus ik heb er niet naar gekeken.

De Ublox M8n kan je configureren zodat alleen de gewenste data wordt uitgestuurd. Met de sw Ucenter kan je ook uitvissen welke codes je eerst serieel moet sturen voor bepaalde instellingen. Ik heb zo een gps op mijn gps-rover, bij elke start geeft ik eerst bepaalde codes voor deze in te stellen naar mijn wensen. Deze GPS bewaart deze instelling wel niet, dus moet bij elke start opnieuw gestuurd worden. Hier zo een voorbeeld :

c code:

char UbloxCFG1[]="$PUBX,40,GLL,0,0,0,0*5C\n\r";
char UbloxCFG2[]="$PUBX,40,GGA,0,0,0,0*5A\n\r";
char UbloxCFG3[]="$PUBX,40,GSA,0,0,0,0*4E\n\r";
char UbloxCFG4[]="$PUBX,40,GSV,0,0,0,0*59\n\r";
char UbloxCFG5[]="$PUBX,40,VTG,0,0,0,0*5E\n\r";
char UbloxCFG6[]="$PUBX,40,RMC,0,0,0,0*47\n\r";//beter met GGA omdat er ook een quality bij zit
uint8_t UbxCFG1[]={0xb5,0x62,0x06,0x08,0x06,0x0,0x64,0x0,0x02,0x0,0x01,0x0,0x7b,0x16};//nav rate = 100 ms
uint8_t UbxCFG2[]={0xB5,0x62,0x06,0x08,0x06,0x0,0xC8,0x0,0x01,0x0,0x01,0x0,0xDE,0x6A};//nav rate = 200 ms
uint8_t UbxCFG3[]={0xB5,0x62,0x06,0x24,0x24,0x0,0xFF,0xFF,0x08,0x03,0x00,0x00,0x00,0x00,0x10,0x27,0x00,0x00};//dynamic model airborne<4g,18 bytes
uint8_t UbxCFG4[]={0x05,0x00,0xFA,0x00,0xFA,0x0,0x64,0x00,0x2c,0x01,0x00,0x00,0x00,0x00,0x10,0x27,0x00,0x00};//dynamic model airborne<4g,18 bytes
uint8_t UbxCFG5[]={0x00,0x00,0x00,0x00,0x00,0x00,0x4F,0x1F};//dynamic model airborne<4g,8 bytes
buckfast_beekeeper

Golden Member

Bij een harde reset is het terug configureren is mijn ervaring. Module valt terug op standaard baudrate en standaard string. Wil je wat anders 'toveren' of lagere/hogere bitrate is het eerst de nodige config uit te voeren. Bij wijziging bitrate dit uiteraard ook aanpassen op de controller. Afhankelijk van de gebruikte GPS is de standaard baudrate 4800, 9600 of 19200. Vind je uiteraard in de datasheet en/of de handleiding met PMTK command packet.

Honing kan je importeren, bestuiving niet.

Dank je voor alle suggesties, de micro is in PIC18F4420, geschreven in assembler, for the sheer fun of it... De reden dat ik niet teveel in de interrupt wil doen is niet de interrupt routine, maar de andere dingen die ook de interrupt gebruiken, zoals de interne klok,die heel snel behandeld moet worden om gelijkloop te waarborgen, I2C, met RTC en MPR121 voor de touchbuttons,. De meeste dingen worden met semaphoren doorgegeven naar het main program, dus dat gaat wel lukken. Het is gewoon dat als iets kan uit zetten, hoef ik er naderhand niet meer over na te denken.
Waarom RTC en GPS (en de interne klok): waar ik woon, wil het nog wel eens gebeuren dat het net wegvalt voor een minuut of zo. GPS binnen werkt niet altijd en RTC heeft problemen met drift. Maar alle drie de systemen kan ik met elkaar synchroniseren, dus als het net terugkomt, (en de tijdzone staat in EEPROM)dan loopt de klok in de morgen precies gelijk. Volgende vraag is dan natuurlijk: waarom niet de WIFI, maar dan moet ik het WIFI password hardcoded invoeren, ook geen goed idee.
Dus de orginele vraag staat: ik heb gewerkt met de A2035H, die is obselete, de A2235H is de opvolger, maar zijn er andere, eenvoudigere en/of betere modules waar dit forum mee gewerkt heeft?

Groetjes
LaStei

P.S. Ik ga eens naar die Ublox M8N kijken, dank je.

carpe cerevisi
buckfast_beekeeper

Golden Member

Je hoeft geen wifi paswoord te gebruiken. Je probeert te connecten en je krijgt een foutmelding. Netjes met UTC tijd. Je SSID moet er wel in natuurlijk.

Bij GPS kan je PPS gebruiken om elke seconde een interrupt te genereren. Veel nauwkeuriger ga je de seconden niet krijgen.

Je gaat hoe dan ook een wintertijd/zomertijd tabel moeten hebben. GPS noch internet time servers geven dit door. Dit in tegenstelling tot DCF. Of je moet zelf aanpassen zoals dat vaak in GPS systemen geïntegreerd wordt. Vinkje zomertijd?

Honing kan je importeren, bestuiving niet.

DCF zit te ver weg. Zomer/wintertijd moet ik nog een beetje over nadenken. ik heb wel de dag van de week, (heb je nodig voor je alarm, dat trouwens een MP3 speler is). en de omslag tijd is te berekenen. Het lastige is dat de politici er nog niet uit zijn of ik het nodig ga krijgen ja dan nee...
Ja... die oplossing met een foutmelding... Ga kijken hoe makkelijk dat de parsen is...

@rp6conrad: is dit dezelfde module? https://www.ebay.co.uk/i/162916147369

Dank voor de support

carpe cerevisi

Op 18 januari 2020 06:32:21 schreef LaStei:
@rp6conrad: is dit dezelfde module? https://www.ebay.co.uk/i/162916147369

Dank voor de support

De benaming is alleszins dezelfde, mijn versie was echter nog gecombineerd met een 3-assen magnetisch kompas (I2C) en in een ronde kunststof behuizing.

ik heb die ronde modules gezien, passen een beetje lastig op een print.... ;)

Dank je

carpe cerevisi
mel

Golden Member

DCF te ver weg?In welke uithoek woon je dan? :P
O, GB.. Dan neem je MSF :)

u=ir betekent niet :U bent ingenieur..
buckfast_beekeeper

Golden Member

Op 18 januari 2020 06:32:21 schreef LaStei:
DCF zit te ver weg. Zomer/wintertijd moet ik nog een beetje over nadenken. ik heb wel de dag van de week, (heb je nodig voor je alarm, dat trouwens een MP3 speler is). en de omslag tijd is te berekenen. Het lastige is dat de politici er nog niet uit zijn of ik het nodig ga krijgen ja dan nee...
Ja... die oplossing met een foutmelding... Ga kijken hoe makkelijk dat de parsen is...

@rp6conrad: is dit dezelfde module? https://www.ebay.co.uk/i/162916147369

Dank voor de support

Dan zou ik auto zomer/wintertijd programmeren true/false (vinkje). Als ze de zomertijd dan in de kliko mikken zet je het uit en klaar. Zomertijd is de laatste zondag van maart. Wintertijd de laatste zondag van oktober. Als je de weekdag hebt niet zo moeilijk. Zijn er geen RTC modules die het automatisch doen als je een register geset hebt?

Ik heb goede ervaringen met deze. Heeft mogelijkheid voor externe antenne.

Ook een aanrader klein en toch heel accuraat naar temperatuur rel humidity en luchtdruk.

Honing kan je importeren, bestuiving niet.

MSF zou inderdaad ook een oplossing kunnen zijn, maar ik wilde kijken of ik een "wereldwijde" klok zou kunnen ontwerpen. En de details zijn soms meer interessant die een oplossing de ene of de andere kant opsturen:
1) GPS (of andere sateliet positie systemen)gebruiken een "almanac" voor de leap sekonden. Dus na de eerste ontvangst kan de GPS data er 13 sekonden naast zitten. Kijken hoe ik dit ga integreren met de RTC nadat de spanning is terug gekomen.
2) de raspberry pie I2C doet niet aan klok-stretching en heeft geen strakke RTOS, dus het is lastig er een tweede processor aan te hangen voor specifieke taken (daarom geen raspberry pie)
3) Arduinos zijn leuk, maar elke keer als ik daar iets mee wil doen, doet de bibliotheek net niet dat wat ik wil dat het zou moeten doen, dus dan maar zelf aan de gang. Zeker als je b.v. twee seriele poorten op een UART wilt schakelen, een voor de GPS en de andere voor de MP3 speler. Beetje lastig als de poort ook word gebruikt voor programeren.

En het is wel leuk om te kijken hoe ver ik dit project kan krijgen...

carpe cerevisi

@Buckfast: Klopt, voor Europa is het vrij gemakkelijk te berekenen, maar ik zit te kijken of er een methode in kan fietsen die het mogelijk maakt de zomer/wintertijd overschakeling in te stellen is, met een regel of zo, zodat dit ontwerp ook eventueel in Australie zou werken. Tijdzones kan ik instellen tussen +16 en -16 uur in stappen van een kwartier, en die worden in EEPROM opgeslagen, misschien iets van een eerste/laatste zondag plus een maand plus een richting. Weet nog niet. Bedankt ook voor je suggestie, ik zie dat er al een goede manual bij zit, dat helpt een hoop.

P.S. en kompleet off topic: hoeveel bijenkasten heb jij? Als het goed is lukt het ons om er drie goed door de winter te laten komen.

carpe cerevisi
buckfast_beekeeper

Golden Member

On topic:

Op 18 januari 2020 19:03:32 schreef LaStei:
@Buckfast: Klopt, voor Europa is het vrij gemakkelijk te berekenen, maar ik zit te kijken of er een methode in kan fietsen die het mogelijk maakt de zomer/wintertijd overschakeling in te stellen is, met een regel of zo, zodat dit ontwerp ook eventueel in Australie zou werken. Tijdzones kan ik instellen tussen +16 en -16 uur in stappen van een kwartier, en die worden in EEPROM opgeslagen, misschien iets van een eerste/laatste zondag plus een maand plus een richting. Weet nog niet. Bedankt ook voor je suggestie, ik zie dat er al een goede manual bij zit, dat helpt een hoop.

P.S. en kompleet off topic: hoeveel bijenkasten heb jij? Als het goed is lukt het ons om er drie goed door de winter te laten komen.

GPS wacht je tot het 1PPS signaal precies om de seconde verschijnt. Dan is er een 3D fix. Anders pen FIX gebruiken. Zodra je een FIX hebt is ook de tijd correct. 1PPS is bijna op ns nauwkeurig.

(off topic) Normaal tussen 20 en 35. Momenteel weet ik het zo niet precies. Een beetje te weinig tijd door omstandigheden.

Met Buckfast bijen.

Voor de Nederlanders, gepaard op Ameland.

Honing kan je importeren, bestuiving niet.

@buckfast: dank je voor de info, genoeg om de zondag morgen rustig door te lezen.

Off topic: ziet er goed uit, dat zijn er een paar meer dan dat wij hebben, maar het is voor ons een hobby...

carpe cerevisi
buckfast_beekeeper

Golden Member

Op 19 januari 2020 10:56:29 schreef LaStei:
@buckfast: dank je voor de info, genoeg om de zondag morgen rustig door te lezen.

Off topic: ziet er goed uit, dat zijn er een paar meer dan dat wij hebben, maar het is voor ons een hobby...

Veel leesplezier.

Is ook maar een hobby. Maar een beetje uit de hand gelopen. :+

Honing kan je importeren, bestuiving niet.