L86 olvasása soros portról <problema lezarva>

Fórumok

Sziasztok.

Visszatert egy regi problemam, melyet annak idejen sem sikerult sem megmagyarazni, sem megoldani.

Raspberry A+ verzio, egy GNSS lapkaval a /dev/ttyAMA0-ra kotve.
Egy L90-assal mar sikerult egy B verzioju alaplapon mindent megoldanom, azota ahhoz hozza sem nyulok, mert meg elromlik... Szoval az alaplap most mas.

gpsd elindul, majd egy python scripttel olvasom az ama0-t:


#!/usr/bin/env python
# get lines of text from serial port, save them to a file

from __future__ import print_function
import serial, io

addr  = '/dev/ttyAMA0'  # serial port to read data from
baud  = 9600            # baud rate for serial port
fname = '/home/pi/gpslogger/gps-log/log.nmea'   # log file to save data in
fmode = 'a'             # log file mode = append
with serial.Serial(addr,9600) as pt, open(fname,fmode) as outf:
 spb = io.TextIOWrapper(io.BufferedRWPair(pt,pt,1),
  encoding='ascii', errors='ignore', newline='\r',line_buffering=True)
 spb.readline()  # throw away first line; likely to start mid-sentence (incomplete)
 while (1):
  x = spb.readline()  # read one line of text from serial port
  print (x,end='')    # echo line of text on-screen
  outf.write(x)       # write line of text to file
  outf.flush()        # make sure it actually gets written out

A kimeneti file egyenesen meses, termeszetesen hasznalhatatlan:

/home/pi/gpslogger/gps-log# cat log.nmea
IT b95)AGEbbb
9Q7EEU5zA9 5)GM!EI%59,V,,,,,0,060180,,,N*4F
$GPVTG,0.00,T,,M,0.00,N,0.00,K,N*32
$GPGGA,000028.799,,,,,0,0,,,M,,M,,*45
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPGSV,1,1,00*79
$GLGSV,1,1,00*65
$GPGLL,,,,,000028.799,V,N*77
$GPTXT,01,01,02,ANTSTATUS=OPEN*2B
$GPRMC,000029.79N*32
$GE
PGGA,000030.799,,,,,0,0,,,M,,M,,V,1,1,00*79
$GLGSV,1,1,GPGLL,,,,,000030.799,V,N*7E
PGGA,000031.799,V,1,1,00GPGLL,,,PEN*2B2
$GPRMC,0M,0.00,N,,,,0,0,V,1,1,00GPGLL,,,STATUS=O
$GPVTG,GSA,A,1,V,1,1,00GPGLL,,,$GPRMC,0M,0.00,N,,M,,M,,V,1,1,00GPGLL,,,$GPRMC,00.00,T,,,,,,0,0,.799,V,N$GPRMC,0M,0.00,N,,,,0,0,V,1,1,0000*65
0.00,T,,,,M,,M,,V,1,1,00GPGLL,,,PEN*2B,,,$GPRMC,0M,0.00,N,,M,,M,,V,1,1,00GPGLL,,,PEN*2B
0.00,T,,,,,,0,0,.799,V,N$GPRMC,0M,0.00,N,,M,,M,,V,1,1,00GPGLL,,,STATUS=O
$GPVTG,*49
$GPGSV,1,1,TXT,01,0$GPRMC,0M,0.00,N,,M,,M,,V,1,1,00GPGLL,,,PEN*2B
0.00,T,,,,M,,M,,V,1,1,00GPGLL,,,PEN*2B
0.00,T,,,,,,0,0,.799,V,N$GPRMC,0M,0.00,N,,M,,M,,V,1,1,00GPGLL,,,$GPRMC,0M,0.00,N,,M,,M,,V,1,1,00G0.00,T,,,,,,0,0,GSV,1,1,.799,V,N$GPRMC,0M,0.00,N,,M,,M,,V,1,1,00GPGLL,,,$GPRMC,0M,0.00,N,,M,,M,,V,1,1,00GPGLL,,,PEN*2B
0.00,T,,,,M,,M,,V,1,1,00GPGLL,,,STATUS=O
$GPVTG,*4F
$GPGSV,1,1,,IJzLx=(IH
0
YYIII*-*JY0
wYYIL))II**
{
k
:(L))II**,II*-*JYX
/ZI,X:(I
{
k:(L))II**
wYYIsII*/yIHIH,
YYI
wYYI:(L))II**
wYYI:(
$GPTXT,01,01,02,ANTSTATUS=OPEN*2B
0.00,T,,114.799,E
$GPGS.799,V,N$GPRMC,0M,0.00,N,,M,,M,,GSV,1,1,TXT,01,0$GPRMC,0M,0.00,N*49
$GPGSV,1,1,TXT,01,0$GPRMC,0M,0.00,N,,M,,M,,V,1,1,00GPGLL,,,$GPRMC,0M,0.00,N,,M,,M,,V,1,1,00GPGLL,,,$GPRMC,00.00,T,,,,,,0,0,V,1,1,00GPGLL,,,PEN*2B
00120.790.00,T,,,,,,0,0,GSV,1,1,,,000120$GPRMC,00.00,T,,,,M,,M,,V,1,1,00GPGLL,,,00122.79,0.00,K,GSA,A,1,V,1,1,00GPGLL,,,$GPRMC,0,0.00,K,*4F
0.00,T,,,,,,0,0,GSV,1,1,*7BM,0.00,N,,M,,M,,V,1,1,00GPGLL,,,PEN*2B
$GP0,060180PGGA,000E
$GPGS.799,V,N$GPRMC,0M,0.00,N,,M,,M,,V,1,1,00GPGLL,,,$GPRMC,00.00,T,,,,M,,M,,V,1,1,00GPGLL,,,PEN*0.00,T,,,,M,,M,,V,1,1,00GPGLL,,,PEN*2B
0.00,T,,,,,,0,0,GSV,1,1,,,000130PEN*2B
0.00,T,,,,,,0,0,V,1,1,0000*65
$$GPRMC,0,0.00,K,*4F
$GPGSV,1,1,TXT,01,0$GPRMC,00.00,T,,,,M,,M,,V,1,1,00GPGLL,,,PEN*2B

Szerintetek van erre magyarazat?

Hozzászólások

Mar megint ez a lapka/antenna/modul kerdes, igazan megtanulhatnad vegre mert csak agyergorcsot kap az ember mire kihamozza mirol beszelsz.
A lapka pontos tipusa erdekelne, raadaskent ne feledd, hogy az rpi uart-ja 3v3-as!

// Happy debugging, suckers
#define true (rand() > 10)

Sajnalom, hogy egy ilyen dolog ezt valtja ki beloled. Azt hiszem anno megallapodast nyert, hogy lapka, nem pedig antenna. (Kulonben nekem teljesen mindegy, tolem lehet korte is, ha semmi bajom vele.)

-------------------

A GNNS nevet tenyleg nem irtam ki.
L86.
Beírtam a címbe is...

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

Jó, és? Minek kellett volna lenni? Amit idemásoltál file-t, nekem az is teljesen megfelelő. Ugye érzed, hogy az a baj a kérdéseddel, hogy nem világos a leírásból, mit vártál, ahelyett mi jött, így nem igazán lehet érdemben hozzászólni.

Jelszintek rendben? Pozitív vagy negatív logika, mindkét eszköznél ugyanaz a logikai szint a start bit? 1, 1.5 vagy 2 stop bit? 5,(6), 7, vagy 8 bit egy karakter? Van paritás bit vagy nincs? Ha van, páros, páratlan, mindig nulla, mindig egy? Baudrate ugyanakkora mindkét eszköznél? Ugye közösek a GND-k?

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

>Jó, és? Minek kellett volna lenni?

Rendes NMEA mondatoknak.

>Amit idemásoltál file-t, nekem az is teljesen megfelelő.

Csak a python kód volt egy file, a másik annak parancssori kimenete. Nem, nem hinném hogy csak az a file elég lett volna.

>Ugye érzed, hogy az a baj a kérdéseddel, hogy nem világos a leírásból, mit vártál, ahelyett mi jött, így nem igazán lehet érdemben hozzászólni.

Mégis feltetted a leglogikusabb kérdéseket:

>Jelszintek rendben?

Igen, 3V-ot kap.

>Pozitív vagy negatív logika, mindkét eszköznél ugyanaz a logikai szint a start bit? 1, 1.5 vagy 2 stop bit? 5,(6), 7, vagy 8 bit egy karakter? Van paritás bit vagy nincs? Ha van, páros, páratlan, mindig nulla, mindig egy?

Ezeket még nem tudom, minicommal kell megneznem. Csakhogy egyelore vagy UARTtal uzemelem az RPI A+-t, vagy ra van kötve a GNNS cucc. Gyakorlatilag vakrepules.

>Baudrate ugyanakkora mindkét eszköznél?

igen

>Ugye közösek a GND-k?

igen.

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

Szerintem a formatum teljesen ismert, es kivaloan specifikalt.

Alapesetben 9600 8N1, 3.3V, standard NMEA 0183 mondatok jonnek a cuccbol (elvileg, onmagaban csak a GPS (GNSS) -> host irany is eleg, mert amint tapot kap elkezdi ezeket kuldeni, a masik irany csak akkor kell, ha a beallitasokon valtoztatni akar az ember).

Ettol fuggetlenul van meg potencial a debuggolasi lehetosegekben :-)

/sza2

GPS modul firmware frissítést neki, ha tud ilyet. Nekem ez gps hibának tűnik. HA egy lapka ilyet csinált én cseréltem, és rögtön minden rendbe jött.

Arra gyanakodtam az elejen.
Beraktam egy olyan rpi-be, ahonnan kiszedtem egy L80-ast. 7 sec alatt volt 3Dfix. NMEA mondatok hibátlanul jöttek.

Jelenleg a raspbian legújabb verziójával küzdök, mert múltkoriban észrevettem, hogy egyes distribverzióknál képtelen vagyok rájönni a hiba okára és megoldást találni.
Legdurvább esetben azt fogom tenni, hogy az rpi B verzión lévő distribet feltelepített programokkal együtt átrakom az A+ alaplapra, aztán menjen, fusson a felesleges dolgokkal együtt. Favágó módszer oknyomozás nélkül. Szégyenfolt lenne az életemben ez.

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

Összekötés rebben van (kontakt hiba stb)? Tápellátás zavar szűrés?
Vagy a crc hibás sorokat kihagyod a feldolgozásból.

vagy csak kérd a lényeget, ha a sok sallangra nincs szükség amit küld a modul, lehet nem bírja a hw uart :)

pl:

fprintf(GPSMODULE,"$PSRF103,00,00,00,01*24\r\n");
fprintf(GPSMODULE,"$PSRF103,01,00,00,01*25\r\n");
fprintf(GPSMODULE,"$PSRF103,02,00,00,01*26\r\n");
fprintf(GPSMODULE,"$PSRF103,03,00,00,01*27\r\n");
fprintf(GPSMODULE,"$PSRF103,04,00,30,01*23\r\n");
fprintf(GPSMODULE,"$PSRF103,05,00,00,01*21\r\n");
fprintf(GPSMODULE,"$PSRF103,06,00,00,01*22\r\n");
fprintf(GPSMODULE,"$PSRF103,08,00,00,01*2C\r\n");

"Szerintetek van erre magyarazat?"
Nincs.
Erre sincs.

Amikor ugyanez a problemad volt a multkor akkor is kerdeztem, legyen itt most is:

Biztos nem fut azon a soros porton (AMA0) egy konzol? Csak azert, mert alapbol a Raspbian eseten igy van.

Raadasul 115200bps, a GPS modulodnak meg talan 9600 alapbeallitas - ez esetleg okozhatja a fura karaktereket a kimenetben.

Van itt egy rovid, tomor leiras is, hogyan kell kikapcsolni: http://www.hobbytronics.co.uk/raspberry-pi-serial-port

Nekem is ugyanez a modulom van, es nem volt vele gondom.

/kicsit off topic
Miert nem birod ezeket a sz@rokat "GPS / GNSS modul"-nak hivni, mint mindenki mas? Akkor mindenki ertene. Vegulis ezek az emberek Neked probalnak segiteni...

/sza2

"Miert nem birod ezeket a sz@rokat "GPS / GNSS modul"-nak hivni, mint mindenki mas? Akkor mindenki ertene. Vegulis ezek az emberek Neked probalnak segiteni..."
:D én is ezzel kezdtem, ráadásként nem ez az első topic ahol előhoztam. Az eddigi legjobb az "antenna" volt a gps modulra:)

// Happy debugging, suckers
#define true (rand() > 10)

Azt hiszem elfaradtam a szemrehanyasoktol.

Mindenesetre koszonom a helyreigazitasokat, de az alabbiakban meg kell jegyeznem nehany dolgot.

1.
nem kontarkodom, csak elkezdtem foglalkozni egy szamomra ismeretlen eletterulettel.

2.
csak az alapok tanulasaval sosem kezdek el tanulni semmit, elvegre szamolni sem halmazelmeleti alapokkal, matematikafilozofiaval tanultam meg. Amikor valamit nem ertettem, mindig voltak kedves magyarazatok szuleim reszerol, ennek volt koszonheto valamifele posztembrionalis egyedfejlodes

3.
doksit ugy olvasok, hogy nem terek ki szamomra lenyegtelen kerdesekre, pl. nem erdekel, hogy a weboldalt php kod generalta-e, vagy hogy az almat kortenek nevezik-e. Csak az erdekel, hogy a doksi elolvasasa utan az adott kerdesre megkapom-e a valaszt.

4.
en is tudnek belemenni olyan kerdesekbe, melyek viszont az en erossegeim, persze nem elektronikai temakba. De sosem szoktam elkuldeni vagy szetalazni azokat, akik nem astak magukat bele abba a temaba, amibe en igen.

Ha valakinek nem tetszene amit most irtam, kettot tudok javasolni.

--ne olvassa el meg egyszer

vagy

--nyomtassa ki es tegye a falra a monitora melle.

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

Sok dologban igazad van, ugyanakkor a Te esetedben nem apróbb pontatlanságok voltak, hanem a probléma megértését zavaró, azt ellehetetlenítő megfogalmazással éltél. Egyszerűen más szót írtál az adott helyre. Amikor antánnát olvasok, nem túl meglepő módon antennára gondolok. Antenna pedig nem kommunikál RS232-n. Antennának lehet például talpponti impedanciája, nyeresége, de nincs benne mikrokontroller.

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

Ismet elolvastam, mivel nyitottam ezt a topicot.
Nem antennat irtam.
Akik reagaltak, azokban meg aktivan elt az elozo topic tartalma, ahol valoban ezt a szot hasznaltam.

Most azt kellene irnom, hogy itt mindenki figyelmetlen, ha mar mindenki azt jegyzi meg, ami bennem hiba? Mert az eremnek 2 oldala van, en is kimondhatom ami nekem nem tetszik, csak akkor vegkepp nem a targyrol beszel itt az ember

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

minicom így működött:

minicom -b 9600 -o -D /dev/ttyAMA0 -C ./log.minicom
(quectel leírása szerint 9600bps by default
forrás:
http://www.quectel.com/Qdownload/L86.html
Quectel_L86_Hardware_Design_V1.0.pdf
9/43 nevű oldal
)
Egyszer kínomban beírtam még ezt is a .profile fájlba:
sudo stty -F /dev/ttyAMA0 9600
eredményt nem befolyásolta.

Részlet a ./log.minicom fájlból:

$GL*7D
$GP9,V,,,,,
$GPVTG,GSA,A,1,,,,,,,,,V,1,1,00*79
$GLTXT,01,01,02,ANTSTATUS=O$GPRMC,09,V,,,,,
$GPVTG,GSA,A,1,,,,,,,,,V,1,1,00*79
$GLTXT,01,01,02,ANTSTATUS=O$GPRMC,00.00,0.00.00,T,,PGGA,000036.799,,,M,,M,,,,,,,,,,.799,V,NTXT,01,0$GPRMC,09,V,,,,,M,0.00,NPGGA,000,,M,,M,,E
$GPGSGPGLL,,,.799,V,NSTATUS=O$GPRMC,00.00,0.00.00,T,,N*32
$G,,,,,,*1V,1,1,00GSV,1,1,GPGLL,,,,,000038*76
$GP0.00,T,,M,0.00,NPGGA,000039.799,,,M,,M,,,,,,,,*1V,1,1,00GSV,1,1,00*65
$STATUS=O$GPRMC,00.00,0.00.00,T,,PGGA,000040.799,*4B
$GPGSV,1,1,GPGLL,,,*79
$GP
$GPVTG,GSA,A,1,,,,,,,,,.799,V,NTXT,01,0STATUS=O$GPRMC,00.00,0.0
$GPVTG,GSA,A,1,,,,,,,,,V,1,1,00GSV,1,1,GPGLL,,,.799,V,NSTATUS=O00043.79
$GPVTG,GSA,A,1,E
$GPGSGS/••¥
Äš€ŒªŠŒ‚Æ
Ï/ZI•¥À¿Ÿÿ0ŠÌŒ)h=(ó÷Ë
{kŒÌ÷YYIŒ)h=(ó÷˹ÎHN,I*-*J™YXŒ)h@÷Ë
{kŒÌ÷YYIŠŒŒŒˆˆ„
Œ‚wYYIÄHÞîI•­HL))II**š:(óïKÈÌ÷YYIŒ)h<(ó÷˹ÎHN,L))II**šs¿II*/yIŒ)h:(ó÷Ë
Œ‚wYYIÀ¿Ÿÿ0ŠL))II**šŠŒŒŒˆˆ„Ì÷YYIŠŒŒŒˆˆ„
Œ‚wYYIÀ¿Ÿÿ0ŠL))II**š:(óïKÈˌŒŒŒ,ŒŒšŠŒ‚Æ
ÌL))II**š:(óïKÊ
{kŒÀ¿Ÿÿ0ŠL))II**šŠŒŒŒˆˆ„
Œ‚wYYIíÿ0Š
{kŒÌ÷YYIŠŒŒŒˆˆ„
{kŒËŒŒŒŒ,ŒŒÌ÷YYI,,,N*470.00,T,,N*32
$G,,,,0,0,GSA,A,1,,,,,,,,,V,1,1,00GSV,1,1,00*65
$.799,V,NTXT,01,0STATUS=O$GPRMC,00.00,0.00.00,T,,PGGA,000104.799,*4A
$GPE
$GPGSGSV,1,1,GPGLL,,,.799,V,NSTATUS=O$GPRMC,09,V,,,,,0.00,T,,PGGA,000105.799,*4B
$GP,,,,,,*1GSV,1,1,00*65
$.799,V,NTXT,01,0PEN*2B

------
Az RPI-t 5-7 percig szoktam hagyni hogy működjön, aztán egy rászerelt nyomógombbal rendesen elindul egy shutdown script.

Lehet, segítene, ha ASCII helyett hex dump-ot néznél, odaképzelnéd a start és stop biteket. A soros kommunikáció LSB first megy. Abból, hogy látod a bit stream-et, és tudod, minek kellene jönnie, van esélyed kitalálni, mi lehet a baj. Másik opció a tároló szkóppal való hibakeresés. I2C-t, RS232-t ezekkel a módszerekkel lehet debugolni.

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

<troll>

Inakbb megis szkopot, ilyet :-) Egesz hasznalhato, csak kar, hogy eleg draga volt. Mondjuk a hozza adott szoftverek mar nem tetszenek annyira, tobbek kozt egy nagy bloatware az egesz (kb. 1Gbyte-ot kellet leszedni, hogy egy nyavajas screenshot-ot tudjak csinalni...).

</troll>

Egyebkent koszi a tippet, lehet, hogy rendelek egyet. Szemtelenul olcso. Tapasztalat is van vele?

/sza2

Ennyi pénzért elengedett kézzel kőbe vésem a jelalakot! ;)
DSO-1082 USB-t használok. Csak 2 csatornás, szoftvere közepesen gyenge, de a 8 bites előtétek között ár/érték arányban elég jó. A 80 vagy 100MHz mindegy, mert amit mérek, arra mindegyik abszolút alkalmatlan. :) Viszont az ára tizede! Ötödéért kapsz 100MHz-es analóg, kétharmadáért 200MHz-es digitális Tektronix-ot, amikkel már mérni is lehet.

Amit ajánlottam, az a Saleae régi 8 csatornás, csak digitális logikai analizátorának koppintása. A szoftvere nagon kényelmesen használható. Általában a legújabb bétát használom (pillanatnyilag 1.1.34), már ha néha felmegy. :) Van hozzá néhány hivatalos és nem hivatalos, de GPL protokoll analizátor modul, vagy írhatsz sajátot. A 24MHz mintavételig pontosan méri az időzítéseket. Igen nagy menniségű mintavételt tud tárolni. Ez még nem szkóp , csak analizátor.
Példa.

Azt hiszem beruhazok egybe.

Kicsit korulneztem a cegnel, van egy eredeti Sealea 8bites, szet is szedtem, ugy tunik ugyanaz van benne mint az Ebay-en kaphato klonokban (CY68013A).

Illetve latom van hozza Linux-os program is, ami jo pont.

Otthonra en sem vennem meg az altalam emlitett szkopot. Egy Textronix TDS 210 meg egy Yokogawa DL1540C eleg mindenre ami otthon kell - amire meg nem azt megnezem a munkahelyen ;-)

/sza2

Annyira tudtam, hogy ezt fogod belinkelni. :)
(korabban mar kineztem magamnak, feltettem a watchlistre, de vegul nem rendeltem meg)

hint: az USD nagyon elszallt az AUD-hoz kepest, igy az utobbiban megadott ertekek meg a szokasos kinai arakhoz kepest is olcsobbak. (2400 HUF helyett 2000 korulre jon ki ugyanez a termek masik eladotol)

--
I'm not saying the new Apple Watch will only be worn by wankers but it's not vibration, shock and splash proof for nothing.

Tekintettel arra, hogy erdemben sehol sem talaltam a problemamra megoldast, de meg magyarazatot sem, itt pedig raterelodott a szo egy korabbi topic fogalom-meghatarozasara, ugy dontottem hogy befejezem az oknyomozast es egy korabbi, mar mukodo distribbel probalkozom, ami ugyan nem tartalmaz ujabb kernelmodulokat (pl. 1-2 wifistick nem mukodik), de soros portrol hibatlan az adatfolyam.

Ezek utan lenyegtelen leirnom a reszleteket, mert gyanitom nem erdekel senkit az sem.

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

Igazán tekintélyes dolog behisztizni azért, mert egy "szakmai" fórum másik topicjában előbb megkérünk rá, később pedig "szólunk", hogy ugyan már, értjük hogy laikusként foglalkozol vele, de ne rögzíts az emberekbe nettó baromságot. Erre persze te nagy ívben sz@rsz és játszod a sértődöttet.
"Ezek utan lenyegtelen leirnom a reszleteket, mert gyanitom nem erdekel senkit az sem."
Semmi gond királylány, ha van némi igazság a földön, veled szemben is így fog mindenki viselkedni ha kérdezel:)

// Happy debugging, suckers
#define true (rand() > 10)

sehol sem talaltam a problemamra megoldast

Mértél, vagy csak a sötétben tapogatózól? Talán említettem, tároló oszcilloszkópon látnád, mi történik, akár a jelszintekkel, az élek meredekségével, a zajjal, a tranziensekkel van gond, akár az adatformátummal, a sebességgel.

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

Rendben, koszonom a visszajelzest, mely ismet epito.

Ezuton felkerem a szakembereket, generaljanak sajat eszkozeiken hasonlo karaktersorozatot, majd ennek eloallitasi modjan modellezzek az en problemamat.
Mivel ketlem, hogy ilyen problema barkinel jelentkezett volna, igy ketsegesnek tartom azt is, hogy elo bir valaki ilyet allitani.
Leegyszerusitem:
Generalj olyan hibat soros konzolon, ami a targy szoban van megadva. Ha nem megy, nem kell megsertodni, nyilvan azert nem megy, mert megoldasod sem lenne az ellenkezojere...

A nyertesnek egy gyros talat ajanlok fel, en fizetem.

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

szoftveresen: idozitesi problema
szoftver/hardware: gpio beallitasi problema (az rpi uart portjain szoftveresen allithato a belso pullup, ha nincs akkor konkretan ilyen szemet fog jonni)
hardware: instabil tap, nem megfelelo jelszintek

Ebbol egy eros megerzes szerint a te problemad a kozepso

// Happy debugging, suckers
#define true (rand() > 10)

Irigylem a türelmed. Mind amellett bzs megnyilvánulásaival nem szokott bajom lenni, csak azt viselem nehezen - ilyet mástól is láttam -, amikor valki tolja annak ellenére a zöldséget, hogy az adott területen több tapasztalattal bírók mondják, mit kellene tenni, vizsgálni. Az érintett meg mérés nélkül, spekulatív úton kizárja a dolgot, mondván az nem lehet, mert kellemetlen megvizsgálni. És, ha valamit kellemetlen megvizsgálni, akkor az nyilván nem is lehet a hiba oka, mint tudjuk :), vizsgálódjunk azon a halmazon, eszközökkel, ahol nekünk kényelmes, függetlenül attól, hogy nem jutunk eredményre. Aztán persze, ilyenkor a több tapasztalattal rendelkezők a hülyék, meg a Teremtő a genya, hogy ilyenre csinálta a fizikánkat, véletlenül sem lehet bennünk a hiba, meg mindenki összeesküdött ellenünk.

Ilyenkor aztán ledobja az agyam az ékszíjat...

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

:D
Viszonylag sokat kommunikálok ügyfelekkel (a legutolsó hiányolta a levelezését, mert hogy eltűntek a régiek, de nyugodt kategóriában rá lehetett vezetni a lapozó rejtelmeire:)). Ennél bzs egyértelműen nem rosszabb, csak makacsabb, amivel meg azonosulni nem tudok.
Ez a szakma egyébként meg tipikusan olyan, hogy ha nincs megfelelő műszerezettséged, akkor egy ilyen hiba kiszűrése tényleg csak spekulatív módon történhet (haladsz végig a komponenseken és csereberélsz/vizsgálsz. Az viszont tény, hogy ő nem gyakorlati oldalról közelítette meg hanem spirituális elven;))

// Happy debugging, suckers
#define true (rand() > 10)

mondván az nem lehet, mert kellemetlen megvizsgálni.

Vagy: az nem lehet, mert _én_ nem hiszem el, hogy az a baja. Igaz, kurvára nem értek hozzá, ezt tulajdonképpen le is írom, de ha nem írnám, akkor is implicite benne van a történetben, hiszen azzal jöttem ide, hogy "nem megy", "nem tudom, miért nem megy", "mennie kéne minden tudásom szerint, oszt mégsenem megy", stb.
:D

Ja, szoktam is mondani, amikor valaki mindenféle kifogással hárítja a javaslatomat, hogy mérjünk, teszteljünk, hogy oké, akkor ez most működik! Vagy... mégsem? Ez nem valószínű ezért, az nem valószínű azért, stb. Körbeértünk - verbálisan(!) - minden lehetséges dolgon, a másik fél megállapította, mi miért nem valószínű. No, de ott vagyunk egy szemlátomást nem működő dologgal. Tehát, ha mindent számba vettünk, és minden jó, akkor bizony, ez a szerkezet működik. Ezt a paradoxont aztán valahogy mégis csak fel kellene oldani. :)

Szerk.: attól, hogy valaminek kicsi a valószínűsége, még nem lehetetlen, nem kellene kizárni. Egy példa: hardware bug alaplapi chipset-en, ami miatt kitéptem az összes hajam, mert nyilván abból indultam ki, a saját készítésű interface kártyán böktem el a DMA kezelést. Mert mire gondol az ember? Saját hardware, software lehet rossz, a PC egy kész, jól működő, megbízható valami. Aztán méréssel igazolódott, hogy nem, illetve irodalmi adat is volt erre szintén, például a Linux kernel dokumentációjában. Amúgy valami VIA chipset volt nagyon sok évvel ezelőtt.

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

Az amúgy nagyon emberi tulajdonság, hogy ha valami komplexebb rendszernek valamelyik részéhez kevésbé ért valaki, na akkor "tuti ott van a probléma", ez ilyenkor be is tud rendesen csípődni, főleg, ha esetleg valami félinformációkat elkezd a delikvens feldolgozni, és már meg is van a konklúzió, csak várja, hogy megerősítsék ebben.

Igen. A másik típusú megközelítés, hogy mivel ilyen tapasztalat még nem volt, extrapolálunk, hogy jelenleg sem fordulhat ez elő. (Tegnap, életem n. napján éltem, ma, életem n+1. napján élek. Az eddigi tapasztalat szerint ez bármely n-re igaz volt, tehát örök életű vagyok! :) )

Ezzel a módszerrel simán el lehet siklani létező problémák fölött, s hosszasan keresni a hibát, miközben az már a szemünk előtt volt.

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

ezt pont most tanultam meg a saját káromon. 4 hétig kerestem egy bugot, a végén napi 1x órát beleölve, mert a másik oldalon lévő fejlesztő állította hogy nem nála a hiba (ennek volt egy előzménye, ahol viszont tényleg nálam volt a gubanc). Már majdnem belebetegedtem mire előszedtem a szkepticizmusom hogy leellenőrizzem az ő oldalát

// Happy debugging, suckers
#define true (rand() > 10)

Tipikus :)
Meg jobb ennel az az eset, amikor a masik oldalon ulo fejleszto mas cegnel dolgozik, es csak kinaiul tud.. (ilyenkor fanyalodik ra az ember arra, hogy inkabb workaroundolja)

--
I'm not saying the new Apple Watch will only be worn by wankers but it's not vibration, shock and splash proof for nothing.

Egy adatbázis szervert fejlesztek, a másik oldal azt állította hogy a beletolt sorok közül pár eltűnik. Az előző para pont ugyanilyen volt egy elbaszott lock folytán, ráadásként csúnyán le is csesztek érte, így lazán ráerőltettem magamra hogy megint nálam a hiba. Apró darabjaira túrtam a kódot, a vége az lett hogy egy tesztelés alkalmával ngrep-el ledumpoltam az adatfolyamot, majd összevetettem a db-be került adatokkal: azt hittem agyérgörcsöt kapok, még akkor sem hittem el, 10x számoltattam újra mire ki mertem nyitni a szám:)

// Happy debugging, suckers
#define true (rand() > 10)

Spekulaljon mindenki ahogy akar.

Itt nem az van, hogy nem lehet valamit megmerni oszcilloszkoppal vagy egyebbel, hanem az, hogy ahhoz mar vegkepp nem ertek.
Mint fentebb irtam, egy masik korabbi raspbian distribbel mindenem tokeletesen mukodik, ergo semmi ertelmet nem latom meg ma sem hardveres vizsgalatnak. Nyilvan ez a mondat senkinek sem esett le, hiaba irtam le. Ebbol csak arra tudok kovetkeztetni, hogy itt legtobben tesznek arra mit irtam le, csak arra osszpontositanak, hogy szetalazzanak.

Nem szeretnem, ha elindexesedne ez a forum, de tartok tole, hogy neha afele konvergal.

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

Én is arra spekulálok, hogy valami hardveres bibi, de ez gyorsan kizárhatod, hisz azt mondtad, hogy van egy működő B-d ugyanolyan gps modulal ami működik.

B kártyáját klónozod, A+-on bebootolsz a klónozott kártyával, ha megy kizártad a szoftver hibát.
Ha nem megy akkor pedig lehet keresni a fenti módszerekkel, bár én igazából rákötnék egy ilyet (ez van itthon a routerek miatt) és megnézném, hogy gép<->pi között is zavart-e a jel (és persze ugyanezt a gps module<->gép között).

Ha jól értem, az a helyzet, hogy mind a GPS modul, mind az R-Pi hardware ugyanaz, s attól függően, a flash kártyán melyik Linuxot boot-olod, az egyik esetben működik, a másik esetben pedig szemét jön vissza?

Ebben az esetben is segíthet az oszcilloszkóppal történő mérés, hiszen a soros interface konfigolható. Simán lehet baudrate, karakter formátum rossz beállítása a gond, de akár az is - figyelem, a fantáziám élénk, nem a valóságot írom -, hogy például auto baudrate-es a GPS modul, valamit küld boot környékén soros portra a Linuxod, beállítja magának ezt a bitrátát a modul, utána inicializálod a portot az általad hitt 9600 8n1-re, de ő már más bitrátával kommunikál.

Azért azt lásd be, valahogyan meg kell fogni a problémát, ahhoz pedig mérni kell. Kevésbé ésszerű megközelítés, hogy kesergünk rajta, hogy akkor ez így sz.r.

A példát azért írtam, hogy megmutassam, szinte bármi lehetséges ebben a szakmában.

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

Igrn, ez a baj. Szerencsétlen módon pont az általam 1-2 évvel ezelőtt úgy szidott adafruit distribbel működik egyedül minden rendesen, azt klónoztam. Aztán "tiszta" telepítéssel vágtam neki, csak a gps és a nokia screen pythonos dolgait raktam fel, hibátlan, cat és gpscat simán olvassa a /dev/ttyAMA0-t. Ekkor keztem el befordulni agyilag. Ugyanis a legújabb raspbianokkal összehasonlítottam az adafruitét és nem találtam lényeges különbséget, csupán azt, hogy az adafruité lekezeli a 320-as érintős kijelzőt is.
De tényleg nem akarok vele foglalkozni, mert csak idegesít. Műszerrel legfeljebb ellenállást vagy szakadást tudok ellenőrizni, mást nem, kimaradtam kis koromban az elektronikai dolgokból. Ennek ellenére nem hüjézek le senkit, aki nálam jobban ért a dolgokhoz, csupán azt jegyeztem meg, amiket már fentebb leírtam.

Hibás kódsorozatot meg még nem állított elő senki, pedig a gyros tál még mindig adott. :)

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

Vannak nyakatekert problémák. Ezek sokszor nem bonyolultak, csak nem gondol rájuk az ember. Amit írtam a példámban, az is lehetne akár. Tehát hajszál pontosan ugyanúgy kommunikálsz, az egyik esetben megy, a másikban nem, mert amikor még nem is számítasz rá, amikor nem vizsgálod, akkor történik olyan valami - példámban auto baudrate beállítása -, ami elkerüli a figyelmed. Szanaszét debugolhatod, miközben jó a hardware, jó a software, csak éppen egy korai esemény miatt lesz egy állapotváltozás.

Éppen ezért van az, hogy sok esetben software hibát műszeres méréssel keresünk. Ez különösen igaz beágyazott, illetve mikrokontrolleres környezetben. Ugyanis nem az a kérdés, mit gondolunk, mit hiszünk valamiről, hanem az, hogy valójában mi történik. Ezt pedig mérni kell.

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE