folyamatosan hibás NMEA mondatok [megoldva]

Fórumok

Sziasztok.

A
gpscat /dev/ttyUSB0 >log.nmea
parancs segítségével a nyers NMEA mondatokat próbálom egy ideje rendesen lementeni, de valamiért nem megy. Kínomban már az elemet is kiszedtem az antennából, de egyre csak feldolgozhatatlan mondatok jönnek:

$GPVTG,0.00,T,,M,0.00,N,0.00,K,N*32

\x01\x18\x0f\x1f
\xff\xff\xff\xff$GPGSA,A,1,,,,,,,,,,,,,,,*1E
\x05\x14\x12\x06\x07\x19\x08
\x01\x18\x0f\x1f
\xff\xff\xff\xff$GPGSA,A,1,,,,,,,,,,,,,,,*1E
\x01\x18\x0f\x1f
\xff\xff\xff\xff$GPGSA,A,1,,,,,,,,,,,,,,,*1E
\x01\x18\x0f\x1f
\xff\xff\xff\xff$GPGSA,A,1,,,,,,,,,,,,,,,*1E
\x05\x14\x12\x06\x07\x19\x08
\x01\x18\x0f\x1f
\xff\xff\xff\xff$GPGSA,A,1,,,,,,,,,,,,,,,*1E
\x01\x18\x0f\x1f
\xff\xff\xff\xff$GPGSA,A,1,,,,,,,,,,,,,,,*1E
\x01\x18\x0f\x1f
\xff\xff\xff\xff$GPGSA,A,1,,,,,,,,,,,,,,,*1E
\x05\x14\x12\x06\x07\x19\x08
\x01\x18\x0f\x1f
\xff\xff\xff\xff$GPGSA,A,1,,,,,,,,,,,,,,,*1E
,,M,,^C^[^Z^A^X^O^_^L \xff\xff\xff\xff$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
,,M,,^C^[^Z^A^X^O^_^L \xff\xff\xff\xff$GPGSA,A,1,,,,,,,,,,,,,,,*1E

ha telnettel csatlakozok a 2947-es portra localhoston, ugyanez a helyzet.
sima cat-tal a szemét már olvashatatlan karakterekből áll.

Szerintetek mi a helyzet?

Hozzászólások

Egy másik példa:

$GPGSA,A,1,,,,,,,,,,,,,,,*1E
0.00,220614,,,N*4D
470,,,,,0,0,,,M,,M,,*4B^Z^A^X^O^_^L \xff\xff\xff\xff$GPGSA,A,1,,,,,,,,,,,,,,,*1E
TUj\xcb\x825A\xa4p=
$GPGGA,150713.470,,,,,0,0,,,M,,M,,*4A
14,,,N*4D
470,,,,,0,0,,,M,,M,,*4B^Z^A^X^O^_^L \xff\xff\xff\xff$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
,,M,,*4A
14,,,N*4D
470,,,,,0,0,,,M,,M,,*4B^Z^A^X^O^_^L \xff\xff\xff\xff$GPGSA,A,1,,,,,,,,,,,,,,,*1E
TUj\xcb\x825A\xa4p=
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
,,M,,*4A
14,,,N*4D
470,,,,,0,0,,,M,,M,,*4B^Z^A^X^O^_^L \xff\xff\xff\xff$GPGSA,A,1,,,,,,,,,,,,,,,*1E
TUj\xcb\x825A\xa4p=
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
,,M,,*4A
14,,,N*4D
470,,,,,0,0,,,M,,M,,*4B^Z^A^X^O^_^L \xff\xff\xff\xff$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
,,M,,*4A
14,,,N*4D
470,,,,,0,0,,,M,,M,,*4B^Z^A^X^O^_^L \xff\xff\xff\xff$GPGSA,A,1,,,,,,,,,,,,,,,*1E
TUj\xcb\x825A\xa4p=
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
,,M,,*4A
14,,,N*4D
470,,,,,0,0,,,M,,M,,*4B^Z^A^X^O^_^L \xff\xff\xff\xff$GPGSA,A,1,,,,,,,,,,,,,,,*1E
TUj\xcb\x825A\xa4p=
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
,,M,,*4A
14,,,N*4D
470,,,,,0,0,,,M,,M,,*4B^Z^A^X^O^_^L \xff\xff\xff\xff$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
,,M,,*4A
14,,,N*4D
470,,,,,0,0,,,M,,M,,*4B^Z^A^X^O^_^L \xff\xff\xff\xff$GPGSA,A,1,,,,,,,,,,,,,,,*1E
TUj\xcb\x825A\xa4p=
$GPRMC,150713.470,V,,,,,0.00,0.00,220614,,,N*4C

"gpscat /dev/ttyUSB0 >log.nmea" vs "telnettel csatlakozok a 2947-es portra"

Ha a gpsd es a gpscat is megy egyszerre az nem biztos, hogy jo. Igy lehet, hogy ket program probalja a soros portot olvasni.

A cat-tel szerintem akkor tudod olvasni rendesen a portot, ha elotte beallitod a parametereket (pl. setserial) - persze lehet szerencsed, es akkor epp jol van beallitva a port, de ebben nem biznek. Valamint, ha fut mellette a gpsd, akkor ugyanaz vonatkozik erre is mint a gpscat-re.

De kiprobalasra miert nem hasznalod a mincom-ot, amit valamelyik masik topic-odban mar emlitettem (talan van egy honapja is, vagy meg tobb)? A minicom-ban is le tudod menteni a kommunikaciot (CTRL-A, es utana 'L'), bar szerintem elosszor az kellene, hogy rendesen menjen (termeszetesen, ha a minicom-ot hasznalod, akkor se fusson a hatterben a gpsd, allitsd le). A minicom-ban beallithatsz sok parametert, de neked kb. osszesen soros port parameterei kellenek, ezek: 9600bps, 8bit, no parity, 1 stop, no flow control.

/sza2

Nézegetem a minicomot is, meg mindent, amit tanácsolnak.

Ezek szerint aaz lehet a gond, hogy egyszerre 2 program tapogatja a portot..

Ma megnézem megint, könnyen előfordulhat.
Ezek szerint a gpscat-hoz nem kell gpsd...
Magyarul ha nyers nmea mondatok kellenek, akkor csak azt akarjam, egyidőben mást ne.

---
--- A gond akkor van, ha látszólag minden működik. ---
---

En a helyedben megprobalnam kettevalasztani a dolgot: a GPS oldalan vagy a Raspberry reszen van-e a hiba.

En rakotnem a PC soros portjara (olyanra amit tuti, hogy nem hasznal mas program), vagy USB-soros adapterre a GPS-t, megneznem ugy megy-e. A feladat nem teljesen trivialis, mert a PC soros portja +-12V-os, neked pedig 3.3V IO kell (illetve tap is a GPS-nek). Vannak RS232/TTL level shifterek, illetve vannak olyan USB-soros portok, amiknek 3.3V-os az IO reszuk (pl.: http://www.dlpdesign.com/usb/usb232.shtml ). Esetleg hasznalhatsz Nokia DKU-5 adatkabelt is ( http://www.argep.hu/popup.asp?pid=292412568&pnr=10001&foto=1 ).

Ezekhez azonban mar valuszinuleg barkacsolni kell egy kicsit.

/sza2

odafent gpxcat-ot írtam gpscat helyett..

Mindegy. A legdurvább az, hogy ismét jelentkezett az anomália.
Kb. 10 percig minden jó volt.
Azt hiszem elmegyek és iszom egy teát.

----------
Megittam a teát.

Megnéztem, hogy ezidő alatt hogyan jöttek az nmea-mondatok.

Folyamatosan jöttek. Egy ideig szabályos sorok következtek, majd keveredtek \l2x meg ehhez hasonló stringekkel. Később csak ilyenek jöttek több száz sorral, majd minden megszűnt, ismét rendes NMEA mondatok jöttek.
Mialatt ezen sorokat írom, rendesen jön a gpscat /dev/ttyAMA0-ról a jel.

Erre mondanám, hogy varrjak rá gombot, de nem megy.

---
--- A gond akkor van, ha látszólag minden működik. ---
---

Azt hiszem megvan a titok megoldása.

A gpsd-t nem az adafruit stb. leírása szerint kell indítani, legalábbis nálam biztos nem.

Hanem így:
----------------------------------------------------
gpsd -N -n -D 3 /dev/ttyAMA0 -F /var/run/gpsd.sock &
----------------------------------------------------

Furcsamód ha ez a & jel miatt ugye háttérbe vágódik, és ráereszthető a cat a /dev/ttyAMA0-ra, a minicom, gpxcat stb is rendes karaktereket generál.

Tehát a legrégebbi szkriptjeim gpsd-indításával megy minden.
Nem értem, miért megy, de aszem ez most nem is vagy baj. (A kalapács a szekrényben marad..)

---
--- A gond akkor van, ha látszólag minden működik. ---
---

Itt vannak a kínos NMEA-mondatok:
http://www.tengerikajak.info/letoltheto-dokumentumok/category/12-hibas-…

Volt már, aki azt mondta, hogy "rossz az antennám".
Olyat is hallottam, hogy "indítsd újra a windowst"
A "minek foglalkozol ezzel" kérdés tetszett a legjobban.

Most kikapcsoltam az egész RPI-t, ellenőriztem a kébeleket (hátha..), de képtelen vagyok elképzelni, mi lehet a baj.

Lépésenkétn leírom, mire jutottam eddig.

1. Egy hét alatt sikerült dd-vel megoldanom egy raspbian kiírást.
2. Ezután az 1-6-8-10 lábak feltalálása következett, ekkor nagyon örültem.
3. szoftverek debianra való beültetése nem volt gond
4. Raspbianon a /dev/ttyAMA0 használata így van jelenleg:

inittab:
--------
T0:23:respawn:/sbin/getty -L ttyAMA0 9600 vt100

Elméletileg ez állítja be a baudot. Jelenleg letiltottam az egész sort és a
stty -F /dev/ttyAMA0 9600
paranccsal állítom be a baudot, hátha az a rossz.
A raspbian fórumán is azt javasolják, hogy itt minden legyen letiltva..

gpsd verzió: 3.6
ezzel szoktam indítani:

gpsd -N -n -D 3 /dev/ttyAMA0 -F /var/run/gpsd.sock

ezt szoktam használni a sima cat helyett:
gpscat /dev/ttyAMA0 > log.nmea &

Néha elindítom fájlba töténő átirányítás nélkül is, de nincs jelentőssége. A kimenetek ugyanolyanok.

Minden rendszerindításnál lefut ez is:
chmod 666 /dev/ttyAMA0

A fentieket egészen pontosan írtam le, ennél többet nem tettem.
Elméletileg rendesen kellene mennie mindennek, áramot is kap mind az RPI, mind az antenna.

---
--- A gond akkor van, ha látszólag minden működik. ---
---

“\x0D\x0A"

Ezek állandóan jelen vannak a mondatok végén.
És ezek nem másak, mint a sorvégjelek.
< CR >< LF >

Előfordulhat, hogy az NMEA mondatok más karakterkódolással jönnek.

ASCII: < CR >< LF >
decimal: 13 8D
Unix: “\x0D\x0A"
“\r\n” is van.
Java: CR+LF.
Mindezekről eddig még nem tudtam.

Ha mindez így van, akkor már csak azt kellene megtudnom, miért jött ide az NMEA mondataimba a másfajta karakterkódolás.

Valamit nagyon keversz...
Ez a kimeneted formázása, nem az inputod karakterkódolása...

Ha elmented valahova a beolvasott adatokat bináris formában, majd pl. od-vel megnézed, hogy néz ki hexadecimálisan, akkor nagyjából 0d 0a lesz minden sorod végén, mint rekord szeparátor (ezt annak alapján írom, amit itt olvasgattam, egyébként csak halványan sejtem, hogy mit művelsz)

Ami nem igazán tiszta: a google találatai közt turkálva én úgy látom, ezekben a "mondatokban" bináris adatok is előfordulhatnak (pl. checksum). Ha karakteres formában jeleníted meg, ne csodálkozz, ha szemétnek látszó dolgot találsz! (nem értek hozzá, most próbálok kiművelődni a témából :) )

Természetesen lehet, hogy keverek valamit.

Ezek a karaktersorozatok érkeznek a 2947-es portról. Ha fájlba írom a kimenetet, akkor teljesen mindegy hogy mivel teszem (cat, mincom, gpscat), a különleges karakterek ott lesznek.

---
--- A gond akkor van, ha látszólag minden működik. ---
---

Egy MT3339 chipset-es GPS-e van. Alapbol 9600 8N1, no folow control (nincsenek is olyan pin-ek a modulon), sorvege 0x0d, 0x0a (befele es kifele is), semmi nem jon binarisan, csak text az egesz, az is eleg jol definialtan az NMEA-bol kovetkezoen. Ebben semmi kulonlegesseg / kavaras nincs, egy soros portra raakasztva, minicom-ot (vagy barmit) beallitva (9600 8N1, no flow control), meg tap (5V vagy 3.3V (valaszthato, attol fugg melyik pin-re akarja tenni)) es mukodnie kell az egesznek.

/sza2

"T0:23:respawn:/sbin/getty -L ttyAMA0 9600 vt100" - ha ez meg mindig benne van az inittab-ban az szerintem gond.

Mi lenne ha kiszedned? De azt hiszem ez is elojott mar egy masik topic-odban.

Igy mind a getty mind a gpsd probalja hasznalni a /dev/ttyAMA0 soros portot. Szerintem mar leirtam nehanszor, hogy ez nem jo.

Kommentezd ki az inittab ezen sorat, inditsd ujra a Raspberry-t, majd probald meg ujra.

/sza2

Kiszedtem már régen.

Most újabb fejlemény van: minicomon minden jó.
Azon kívül viszont minden rossz.
Valami elállította itt nekem a soros terminálokat, legalábbis ezt sugallja valami. sajnos ezekben még semmi tapasztalatom nincsen, amióta megvan ez az adafruit lapka, azóta érdekelnek a tty dolgok..

Szóval a minicomon most ilyen a jel:

C
root@rpi:/home/pi# minicom -b 9600 -o -D /dev/ttyAMA0

Welcome to minicom 2.7

OPTIONS: I18n
Compiled on Jan 12 2014, 05:42:53.
Port /dev/ttyAMA0, 07:36:40

Press CTRL-A Z for help on special keys

$GPGGA,000312.800,,,,,0,0,,,M,,M,,*40
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPRMC,000312.800,V,,,,,0.00,0.00,060180,,,N*4A
$GPVTG,0.00,T,,M,0.00,N,0.00,K,N*32
$GPGGA,000313.800,,,,,0,0,,,M,,M,,*41
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPGSV,1,1,00*79
$GPRMC,000313.800,V,,,,,0.00,0.00,060180,,,N*4B
$GPVTG,0.00,T,,M,0.00,N,0.00,K,N*32
$GPGGA,000314.800,,,,,0,0,,,M,,M,,*46
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPRMC,000314.800,V,,,,,0.00,0.00,060180,,,N*4C
$GPVTG,0.00,T,,M,0.00,N,0.00,K,N*32
$GPGGA,000315.800,,,,,0,0,,,M,,M,,*47
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPRMC,000315.800,V,,,,,0.00,0.00,060180,,,N*4D
$GPVTG,0.00,T,,M,0.00,N,0.00,K,N*32
$GPGGA,000316.800,,,,,0,0,,,M,,M,,*44
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPRMC,000316.800,V,,,,,0.00,0.00,060180,,,N*4E
$GPVTG,0.00,T,,M,0.00,N,0.00,K,N*32
$GPGGA,000317.800,,,,,0,0,,,M,,M,,*45
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPRMC,000317.800,V,,,,,0.00,0.00,060180,,,N*4F
$GPVTG,0.00,T,,M,0.00,N,0.00,K,N*32
$GPGGA,000318.800,,,,,0,0,,,M,,M,,*4A
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPGSV,1,1,00*79
$GPRMC,000318.800,V,,,,,0.00,0.00,060180,,,N*40
$GPVTG,0.00,T,,M,0.00,N,0.00,K,N*32
$GPGGA,000319.800,,,,,0,0,,,M,,M,,*4B
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPRMC,000319.800,V,,,,,0.00,0.00,060180,,,N*41
$GPVTG,0.00,T,,M,0.00,N,0.00,K,N*32
$GPGGA,000320.800,,,,,0,0,,,M,,M,,*41
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPRMC,000320.800,V,,,,,0.00,0.00,060180,,,N*4B
$GPVTG,0.00,T,,M,0.00,N,0.00,K,N*32

...a többit nem listázom.

ps | grep gps
paranccsal már mániákusan nézegetem, nem hagytam-e valamit odabenn démonként. Ez már paranoia..

---
--- A gond akkor van, ha látszólag minden működik. ---
---

root@rpi:/home/pi# gpscat /dev/ttyAMA0
N*43
$G01723.79,,*48
$*1E
$GPGPRMC,00,060180,.00,T,,M$GPGGA,0PVTG,0.0$GPGGA,0PVTG,0.001728.79,,*43
$*1E
$GPGPRMC,00,,N*49
PVTG,0.0PVTG,0.0$GPGGA,0RMC,0017PVTG,0.001733.79,,*49
$*1E
$GPGPRMC,00,060180,.00,T,,M*32
^C
(azaz jó a kód.)

root@rpi:/home/pi# cat /dev/ttyAMA0 ^C
root@rpi:/home/pi# gpscat /dev/ttyAMA0
$GPGSA\x00A\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00
$GPGSV\x00\x00\x00\x00\x0000\x00\x009\x00
$GP\x00M\x00\x0000\x0090\x00.\x0099\x00V\x00\x00\x00\x00\x000.00\x000.00\x00060\x00\x000\x00\x00\x00N\x00\x005\x00
$GPGSA\x00A\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00
^C
(azaz nem jó a kód. Na még egyszer közvetlenül utána ugyanez.)

root@rpi:/home/pi# cat /dev/ttyAMA0
$GPGGA,09,,,,,0,,,*44
$1,,,,,,,*1E
$GP30.799,V0,0.00,0N*4E
$G0,T,,M,000,K,N*3$GPGGA,001931.799,,,,,0,,,*45
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPRMC,001931.799,V,,,,,0.00,0.00,060180,,,N*4F
$GPVTG,0.00,T,,M,0.00,N,0.00,K,N*32
$GPGGA,001932.799,,,,,0,0,,,M,,M,,*46
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
^C
(megint jó a kód. Mitől javult meg?)

root@rpi:/home/pi# gpscat /dev/ttyAMA0
$GPGGA,0GPGSA,A,RMC,00190,0.00,0PVTG,0.000,K,N*301937.79GPGSA,A,,,,,,,,,01938.79,,*4C
$GSV,1,1,GPRMC,00,060180,$GPVTG,0*32
$GPGGA,0GPGSA,A,,,,,,,,,01940.79,,*43
$01941.79,,*42

(Ez is jó volt)

root@rpi:/home/pi# minicom -b 9600 -o -D /dev/ttyAMA0

Welcome to minicom 2.7

OPTIONS: I18n
Compiled on Jan 12 2014, 05:42:53.
Port /dev/ttyAMA0, 07:54:56

Press CTRL-A Z for help on special keys

PVTG,0.002018.799,,,,,0,,,*44
$1,,,,,,,*1E
$GP00*79
$2018.799.00,0.00,,N*4E
.00,T,,M0.00,K,N02019.799,,,,,0,,,*45
$1,,,,,,,*1E
$GP19.799,V02020.799,,,,,0,,,*4F
$1,,,,,,,*1E
$GP20.799,V02021.799,,,,,0,,,*4E
$1,,,,,,,*1E
$GP21.799,V02022.799,,,,,0,,,*4D
$1,,,,,,,*1E
$GP22.799,VGPRMC,002023.799,V,,,,,0.00,0.00,060180,,,N*46
$GPVTG,0.00,T,,M,0.00,N,0.00,K,N*32

mimicom is jó..
Majd mindezt elölről kezdem, de sosem tudom előre, melyik "romlik" el.
Tehát ezek itt fent egymás után végrehajtott parancsok voltak. Van, amikor ugyanaz ctrl-c-vel megszakítva, majd újrindítva működik, máskor "elromlik".

---
--- A gond akkor van, ha látszólag minden működik. ---
---

Ez neked tenyleg jo kod?
Az addig rendben van, hogy printable ASCII jon, de sem a parancsok nem jok, sem a checksum. (nagyvonaluan feltetelezem, hogy nincs vetel vagy most kapcsoltad be, es csak amiatt nincs fix)

Kicsit jobban megnezheted ezt a reszt:
$G01723.79,,*48 // rossz a parancs, rossz a checksum
$*1E // 00 lenne a checksum, de az uresnek ugy sem lenne sok ertelme
$GPGPRMC,00,060180,.00,T,,M$GPGGA,0PVTG,0.0$GPGGA,0PVTG,0.001728.79,,*43 // osszevont tobb parancsot, checksum sehogy nem jo
$*1E // 00 lenne a checksum
$GPGPRMC,00,,N*49 // GPGGA es GPRMC valahogy osszefutott
PVTG,0.0PVTG,0.0$GPGGA,0RMC,0017PVTG,0.001733.79,,*49 // itt is valami kaosz van
$*1E // *00
$GPGPRMC,00,060180,.00,T,,M*32 // kaosz, reszei mennek at
^C
(azaz jó a kód.)
khm..

A kovetkezo blokkban is hianyoznak karakterek, valami elnyeli, es valoszinu emiatt (is) rossz a checksum. Ez lenne a "helyes" (persze itt is latszik, hogy egy csomo mezo hianyzik)
$GPGGA,09,,,,,0,,,*43
$GPGGA,001931.799,,,,,0,,,*59
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPRMC,001931.799,V,,,,,0.00,0.00,060180,,,N*4F
$GPVTG,0.00,T,,M,0.00,N,0.00,K,N*32
$GPGGA,001932.799,,,,,0,0,,,M,,M,,*46
$GPGSA,A,1,,,,,,,,,,,,,,,*1E

Az utolso blokk is hulyeseg.

--
Why did the chicken cross the road?
It was trying to get a signal on its iPhone 4.

Igen, jól látod, nincs fixpont, mert nem vagyok kint a szabadban. (ott ugyanúgy összezavarodik minden, bármit teszek.)

Kezdek lemondani mindenről, ami az adafruit lapkát illeti.
Ha semmi sem fut, a minicom által leszedett jel átlagosan 10-12 perc múlva ilyenné válik:

x�$GPVTG,0.00,T,,M,0.00,N,0.00,K,N*32
SA,A,1,,,,,,,,,,,,,,,*GSV,1,1,0GPRMC,000823.799,V,,,,,0.,060180,,,N*4C

x�$GPVTG,0.00,T,,M,0.00,N,0.00,K,N*32
SA,A,1,,,,,,,,,,,,,,,*GSV,1,1,0GPRMC,000823.799,V,,,,,0.,060180,,,N*4C

x�$GPVTG,0.00,T,,M,0.00,N,0.00,K,N*32
SA,A,1,,,,,,,,,,,,,,,*GSV,1,1,0GPRMC,000823.799,V,,,,,0.,060180,,,N*4C

x�$GPGGA,000824.799,,,,,0,0,,,M,,M,,*41

$GPGSA,A,1,,,,,,,,,,,,,,,*1E

$GPRMC,000824.799,V,,,,,0.00,0.00,060180,,,N*4B

$GPVTG,0.00,T,,M,0.00,N,0.00,K,N*32

$GPVTG,0.00,T,,M,0.00,N,0.00,K,N*32
GA,000824.799,,,,,0,0,,,M,,M,,*41
���$GPGSA,A,1,,,,,,,,,,,,,,,*1E,,M,,*41
���$GPRMC,000824.799,V,,,,,0.00,0.00,060180,,,N*4B ���$GPVTG,0.00,T,,M,0.00,N,0.00,K,N*320180,,,N*4B ���$GPGGA,000825.799,,,,,0,0,,,M,,M,,*40
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPRMC,000825.799,V,,,,,0.00,0.00,060180,,,N*4A
$GPVTG,0.00,T,,M,0.00,N,0.00,K,N*32

$GPGSA,A,1,,,,,,,,,,,,,,,*1E

26.799,V,,,,,0.00,0.00,060180,,,N*49

$GPVTG,0.00,T,,M,0.00,N,0.00,K,N*32

$GPGGA,000826.799,,,,,0,0,,,M,,M,,*43

AI5������ٹ���b�����������b����bbbr���57D���������$GPGGA,000827.799,,,,,0,0,,,M,,M,,*42
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPRMC,000827.799,V,,,,,0.00,0.00,060180,,,N*48
$GPVTG,0.00,T,,M,0.00,N,0.00,K,N*32

$GPGSA,A,1,,,,,,,,,,,,,,,*1E

00*79

$GPRMC,000828.799,V,,,,,0.00,0.00,060180,,,N*47

$GPVTG,0.00,T,,M,0.00,N,0.00,K,N*32

$GPGGA,000828.799,,,,,0,0,,,M,,M,,*4D

��u)b�b��R��jbbbb� b�bbbj��5������d4t������4D��������$GPGGA,000829.799,,,,,0,0,,,M,,M,,*4C
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPRMC,000829.799,V,,,,,0.00,0.00,060180,,,N*46
$GPVTG,0.00,T,,M,0.00,N,0.00,K,N*32
$GPRMC,000828.799,V,,,,,0.00,0.00,060180$GPGSAA
$GPM00030.99V0.000.000600N
$GPVG0.00M0.00N0.00KN3
$GPGGA0003.9900MM5
$GPGSAA
$GPM0003.99V0.000.000600N
$GPVG0.00M0.00N0.00KN3
$GPGGA0003.9900MM6
$GPGSAA
$GPM0003.99V0.000.000600N
$GPVG0.00M0.00N0.00KN3
$GPGSV009
$GPM00033.99V0.000.000600ND
$GPVG0.00M0.00N0.00KN3
$GPGGA0003.9900MM0
$GPGSAA
$GPM0003.99V0.000.000600NA
$GPVG0.00M0.00N0.00KN3
$GPGGA00035.9900MM
$GPGSAA
$GPM00035.99V0.000.000600NB
$GPVG0.00M0.00N0.00KN3
$GPM00036.99V0.000.000600N
$GPVG0.00M0.00N0.00KN3
$GPGGA0003.9900MM3
$GPGSAA
$GPM0003.99V0.000.000600N9
$GPVG0.00M0.00N0.00KN3
$GPGGA0003.9900MM
$GPGSAA
$GPGSV009

Szerintem próbáld meg amit mások is írtak, egy USB-s soros átalakítón keresztül (ahhoz nem kell semmilyen szintillesztés) dugd rá a modult egy _rendes_ PC-re. Nem is kell kint lenni mivel egy idő után a laskásban is fog jelet adni, másrészt az NMEA mondatok attól függetlenül jönnek. Ha windózosra kötnéd a saját https://www.dropbox.com/s/79ryz3v6u1eysi3/MiniGPS_1.4.exe programmal lehet szépen látni meg fájlba menteni a dolgokat. Ezzel akár a beállításokat is újra megnézhetnéd, átállíthatnád.

p.s.: nekem az AVR-nél akkor jöttek össze vissza a dolgok hogyha nem a soros kommunikációra alkalmas kvarcról (vagy belső oszcillátorról) járattam a kontrollert.

Ilyen mértékben már nem értek hozzá, nem tudok soros átalakítót barkácsolni. Szétkaphatnám egy régebbi soros-átalakítós gps-emet is, ami csak 3-féle NMEA mondatot küld, de nem akarom már. Most egy időre elfáradtam, 2 hónapom ment rá az rpi-dolgokra, eredménytelenül.
Windowsom sincs, így a mai világban meglőttem magam.
Közben megy a minicom, és valahányszor bezavarodik, már csak röhögök. Szép mondat ez egy szakmai fórumon.

---
--- A gond akkor van, ha látszólag minden működik. ---
---

Én USB-soros átalakító vételére gondoltam :) barkácsolni is lehet de az nem annyira egyszerű.

És egy olyan PC-hez sem férsz hozzá amin van hagyományos soros port? Mert akkor egy max232 IC (http://www.hestore.hu/prod_10024695.html) meg 5db kondenzátor (http://www.hestore.hu/prod_10000028.html) segítségével, akár egy próbapanelen lehet építeni egy rendes RS232 illesztőt amivel a PC soros portjára kötheted a modult. A soros port szerintem akár wine alól is elérhető linuxon (de erősítse ezt meg egy tapasztaltabb kolléga) és ott a miniGPS progit is ki tudnád próbálni.

En a sajatomat jarattam egy darabig (es 115200-on), igaz, PC-be dugva (Linux, USB-soros). Tobb ora utan sem volt egyetlen hibas mondat sem.

Erdemes lenne meg a Raspberry-t mas forrasbol meghajtani, lehet, hogy ott van a hiba. De ha a forditottjat (a GPS modult PC-vel) nem probaltad / probalod ki, akkor valoszinuleg ezt sem fogod.

/sza2

RPI-re /dev/ttyUSB0-ra kötött gpsről jól jönnek az adatok. gpsd ráeresztve, plusz még a cat is, semmi baj, semmi akadás.

Az alábbi példában ezt leállítom, majd áttérek a ttyAMA0-ra, röviddel rá azt is leállítom, majd újraindítom. Lehet látni a zagyva jeleket.

$GPGSV,3,1,12,20,00,000,,10,00,000,,25,00,000,,27,00,000,*79
$GPGSV,3,2,12,03,00,000,,31,00,000,,24,00,000,,15,00,000,*78
$GPGSV,3,3,12,16,00,000,,05,00,000,,01,00,000,,26,00,000,*7D
$GPRMC,023902.641,V,,,,,,,110905,,,N*48
$GPGGA,023903.627,,,,,0,00,,,M,0.0,M,,0000*5E
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPRMC,023903.627,V,,,,,,,110905,,,N*49
^C
(tehát ezek jöttek USB0-ról, a jól működő antennáról. Fél óra alatt sem jött beteg NMEA mondat.)

root@rpi:/home/pi# gpscat /dev/ttyAMA0

$GPGSA,A,1,,,,,,,,,,,,,,,*1E

,,,,,0.00,0.00,060180,,,N*4B

$GPVTG,0.00,T,,M,0.00,N,0.00,K,N*32

$GPGGA,023906.799,,,,,0,0,,,M,,M,,*41
^C

..leállítottam, mert ez így önmagában beteg jel, tele üres karakterekkel. Most jön az újraindítás:

root@rpi:/home/pi# gpscat /dev/ttyAMA0
\x00\x89\x89\x89\x89\x89\x89\x89\x899\xa5\xa6TH\x88\xe9
%\xd55\xc5\x82\x92\x9a\xca\x8e\x92r\xba\xca\xcab\xb2\xb1\xb1\xb1\xb1\xb1\xc1\xb9\xc1\x07b\x82r\x82\x82b\x82\xb2\x82\x8a\xc2\x82bbb\xceJ\x89\x125)\x91\x1dAYQ\x1d\xb1\xc1\xb9\xc1\x07b\xa2\xb1\xb15\xb1\xc1\xb9\xc1\xc1\xb19\xb1\xc1\xb9\x83\x82bZ\xb19\xa9\xcd\xc95)\xff$GPGGA,023943.799,,,,,0,0,,,M,,M,,*40

$GPGSA,A,1,,,,,,,,,,,,,,,*1E

$GPGSV,1,1,00*79

$GPRMC,023943.799,V,,,,,0.00,0.00,060180,,,N*4A

$GPVTG,0.00,T,,M,0.00,N,0.00,K,N*32
^C

Kell ennél több egy napra?
Semmi doksi, semmi fórum ilyen esetekre, annyira egyedi.

Csak miattad, rakotottem a GPS modult a Raspberry /dev/ttyAMA0 soros portjara.

Feltettem a gpsd-t, gpscat-et, gpsmon-t, minicom-ot. Nekem mindegyik mukodik rendesen. A gpsd-t is kiprobaltam egyreszt a gpsmon programmal, masreszt telnet-tel is.

Egy dologban tevedtem, ha benne van az elem, akkor nem vesziti el a soros port beallitasait, tehat ha lehuzod a tapot, akkor is marad a beallitott ertek (pl sebesseg). Nalad viszont ez nem szamit, mivel csak 9600-on hasznalod.

Nem tudom mi lehet a gondod, a Raspberry alkalmas a feladatra, szerintem a GPS modulnak is mukodnie kellene. Ha jonnek a mondatok (akarmilyen szinten) akkor az RX/TX bekotes es a soros port sebesseg jo.

En a tapot neznem meg:
1. GND (fold, 6-os lab) jol van-e bekotve,
2. tap jol van-e bekotve: ha 3.3V feliratu pin-re kototted a vezeteket, akkor a RPi-on az 1-es labra (3.3V) kell kotnod, ha a VIN feliratura akkor a 2-es lab (5V).

Esetleg nezd meg, nincs-e kontakthiba a vezetekezesben.

/sza2

Antenna VIN-je aaz RPI 5-ös lábán van.
Emlékszem, annak idején volt problémám a lábakkal, de nem ez.
Az antenna <3.3V feliratú pinje "kifelé" mutat, az a külső antenna tápellátása nem?

Ha a tápellátás a gond és cscupán ez lett benézve, befonom a hajamat.

---
--- A gond akkor van, ha látszólag minden működik. ---
---

A breakout board-on a 3.3V alapvetoen kimenet, de az 5V es a 3.3V kozott csak egy LDO van, valoszinuleg nem okoz nagy gondot, ha a breakout board 3.3V-jat osszekotod a RPi 3.3V-javal.

De valoszinuleg szebb megoldas, ha a RPi 5V-jat kotod a VIN-re.

A VIN az 5-os labon viszont nem tudom hogy jon ki. A RPi 1-es laba 3.3V, 2-es laba 5V. Tehat normalisan a RPi 2-es labat es a GPS VIN labat kell osszekotni. Az 5-os lab I2C busz, nekem sehogy sem adja magat.

Nezted mar a Raspberry pinout-jat?

/sza2

Átkötöttem, nem volt kh.

Viszont amióta ezt megtettem, ttyama0 látható, de nem jön belőle semmi, az adafruit lapka ledje sem világít.
Könnyen lehet, hogy amíg forrasztottam, barom módon benne felejtettem az elemet és hidegre zártam 2 kábelt. Amilyen napjaim voltak mostanában (nem csak emiatt) símán belefér bármi figyelmetlenség.

Szerintem ennek annyi.

---
--- A gond akkor van, ha látszólag minden működik. ---
---

Este nem tudtam elaludni, összeraktam megint. Kiderült, hogy balga módon a TX-re kötöttem a tápot. Így jár a magamfajta, aki 4 kábelt 6-féle színű drótkupaccal erősít össze. Kicseréltem mindet rendes, szabályos színű, egy darabból készült kábelekre, ellenállásmérés, érvéghüvely helyett forrasztás --- erre felvillant a LED. RPI összerak, működik. Érdekes tapasztalat, hogy valamilyen szinten barombiztos a lapka, mert kibírt engem is.
Viszont az NMEA mondatok a régiek, ugyanazokat végigkísérleteztem mint amiket szoktam, idézem:

$GPVTG,0.00,T,,M,0.00,N,0.00,K,N*32

$GPGGA,000152.800,,,,,0,0,,,M,,M,,*46
\x12\x06\x07 \x19\x08
\x1e
\x01\x18\x0f\x1f
\xff\xff\xff$GPGSA,A,1,,,,,,,,,,,,,,,*1E
,,M,,*46
^C

---
--- A gond akkor van, ha látszólag minden működik. ---
---

En arnyekolatlan, 4-eres (flat), kb. 50cm hosszu kabellel hasznalom gond nelkul. Szerintem 9600bps eseten siman mukodne akar 2m-es vezetekkel is. Raadasul a fogyasztasa is eleg kicsi a modulnak, igy valoszinuleg a feszultsegeses sem okozna gondot.

Nem a kabel hossza/minosege lesz a problema.

/sza2

Egyszerre? :-)

A VIN labon a 3.3V csak azert nem jo, mert igy az LDO bemenete lesz 3.3V a kimeneten meg ennel valamivel kevesebb. A modul valoszinuleg elmukodik rola, csak az IO feszultseg is kisebb lesz, ami szamithat, ha a masik oldalon (PC, kontroller) 3.3V van. Nyilvan, ha eleg keveset fogyaszt a modul, akkor nem esik nagyot a feszultseg, es mukodhet, de en nem csinalnam ezt.

/sza2

Valamit sikerült elérnem!
egy ideje megy.

NMEA mondatok kiírása kizárólag minicommal, de nem akárhogyan:

minicom -b 9600 -o -D /dev/ttyAMA0 -C ./logfile.minicom

Ebben az esetben kiírja file-ba ami érkezik, ha meg zavart észlel, azt is. tehát ha mondjuk cat vagy gpscat is olvassa az AMA0-t, a minicom megőrül:

5
$,,,,,,,,16.800,V60180,,,0,T,,M,02
04617.80GPGSA,A,,,,,,,,,,,,,,0.0N*4E
$G.00,N,0.04618.800)�)2���˕������wYYȊ�H��L))II**JIK��)[�K���II*-*J��X:��K����H
�(��������������)2II*-*J������)2II*-*J������)2���II*/�X:����˕�����(��H
�(�����������(����)2II*-*J����HJ�(��������������)2(s�II*/���H��(��������������)2X:���H
�(��������������)2II*-*J��X:���HJ�(���������0�R):(s�II*/����)2II*-*J������)2II*-*J������)2���̩����)2II*-*J������)2���II*/�����R2II*-*J������)2II*-*J�����(���˕�����(��HH�(��������������)2(s�II*/����(���˕�����(����)2II*-*J������)2X:����˕�0!*ʌ���)2(s�II*/���H��(�����������(����)2II*-*J��$GPGGA,00,,,M,,MGPGSA,A,*1E
$GP,,,,,0.00,0.00,060180,,,N*4C

Miután megszüntetem a zavaró hatást, a minicom ismét rendes szöveget ír.

Viszont ha csak a minicom képes NMEA mondatok rögzítésére, akkor a teljes gpsd csomag használhatatlan. (gpsproof, gpsmon stb.)

---
--- A gond akkor van, ha látszólag minden működik. ---
---

Nekem a gpsd is mukodik. Csak kozben nem futhat mas ami a /dev/ttyAMA0-t probalja hasznalni.

Szerintem eleg egyszeru a keplet:

Egyszerre csak 1db program nyissa meg a soros portot: cat VAGY gpscat VAGY minicom VAGY akarmi VAGY gpsd.

Ha tobb helyre kell a GPS informacioja, akkor gpsd kell, viszont semmi mas ami a soros portot direkt modon hasznalja. Az osszes program aminek koordinata, muhold adatok, NMEA mondatok vagy barmi kell CSAK a gpsd-n keresztul probalja meg elerni (ilyen tobbek kozt a gpsmon).

Tehat a gpsd MELLETT elinditva AKAR a cat AKAR a gpscat AKAR a minicom meg AKAR __BARMI__ gondot fog okozni.

Nem tul bonyolult.

/sza2

Igen, 1-2 órája már csak ezeket figyelem.

A gps* programokat pythonban írták.
Mikor a minicom-os loggolást egszakjtom, elindítom a gpsd-t, majd X-en egy klienst, rendben megy minden.
Megszakítom, kilövöm a gpsd-t, elindítok egy pythonos programot, semmi garancia nincs arra, hogy az rendesen fut.

Holnaptól azt fogom tanumányozni mit művel a python terminálban, ha az arra írt prg-t ctrl-C-vel szakítják meg. Csak egy sejtés, de lehet, hogy itt a baj..
Azaz lehet, hogy nincs semmi gond, csak ezeket a programokat nem lehet akárhogyan megszakítani.

mára azt hiszem elfáradtam, jóéjt mindenkinek
:)

---
--- A gond akkor van, ha látszólag minden működik. ---
---

Igen, már nézegetem egy ideje, miről is van ott szó.
Csakhogy az NMEA mondatok pont úgy jönnek le, mint amit a google talált nekem abban a topicban.
Ccsupa ilyen:
\x8f\xab\x00\x07\xdc\x9e\x06\x09\x00\x0f\x00\x0a\x07\x17\x15\x08\x07\xd9\x10\x03\x10\x8f\xac\x07\x00d

---
--- A gond akkor van, ha látszólag minden működik. ---
---