[Turtlebot3 Waffle Pi] ausgetauschter raspberry pi funktioniert nicht

Ich bin mir nicht sicher ob der aktuelle raspberry pi noch fehlerfrei arbeitet und wollte deshalb diesen einfach mal austauschen. Also den alten pi raus, neuen pi rein, die SD-Karte in den neuen pi gesteckt und eingeschaltet - nichts passiert. Blöderweise meldet die grüne LED 4x lang und 7x kurz in Folge.

Gefunden habe ich:

Grüne LED:
3x blinken: start.elf nicht vorhanden
4x blinken: start.elf nicht gestartet (SD-Karte kann auch defekt sein)
7x blinken: kernel.img nicht vorhanden
8x blinken: SD nicht erkannt. Evtl. hilft ein Update der bootcode.bin oder start.elf
Rote LED:
4x langes blinken, 4x kurzes, 1x sehr lang: Image kann nicht erkannt werden, ein Neuaufspielen des Image schafft Abhilfe.
woanders stand noch: an = Versorgungsspannung zu gering

Hier sind die Fehler ja wohl getrennt zu betrachten, oder können auch mehrere Fehler nacheinander wiedergegeben werden oder soll das ein Fehler sein?

Weil ich so nicht weiterkomme habe ich folgendes probiert:
Eine SD-Karte mit raspbian von raspberrypi.com geleitet bespielt und erst im neuen pi ausprobiert → funktioniert. Die BIOS-Einstellungen vom alten pi in den neuen pi übernommen. Dann die raspbian-SD-Karte im alten pi ausprobiert → funktioniert auch.
Die turtlebot-SD-Karte im neuen pi → geht immer noch nicht. Wieder in den alten pi gesteckt → dort funktioniert sie immer noch.
Warum kann man im raspberry (turtlebot) nicht einfach die 1:1 gleiche Hardware austauschen, ohne auf Softwareprobleme zu stoßen?
Was kann/muss man machen um die neue pi-Platine nutzen zu können?

Danke für Hilfe und gute Ideen.
citkid


I am not sure if the current raspberry pi still works error free and therefore wanted to replace it. So I took out the old pi, put in the new pi, put the SD card into the new pi and switched it on - nothing happened. Stupidly the green LED reports 4x long and 7x short in a row.

Found:

Green LED:
3x blinking: start.elf not present
4x blinking: start.elf not started (SD card may be defective)
7x blinking: kernel.img not present
8x blinking: SD not recognized. Possibly an update of bootcode.bin or start.elf helps.
Red LED:
4x long blinking, 4x short, 1x very long: Image can not be recognized, a reload of the image helps.
elsewhere it said: on = supply voltage too low

Here the errors are to be regarded probably separately, or can also several errors one after the other be reproduced or should that be an error?

Because I don’t get on like this I tried the following:
An SD card with raspbian from raspberrypi.com led and only in the new pi tried → works. Transferred the BIOS settings from the old pi to the new pi. Then tried the raspbian SD card in the old pi → works too.
The turtlebot SD card in the new pi → still not working. Put it back into the old pi → it still works there.
Why can’t you just replace the 1:1 same hardware in the raspberry (turtlebot) without encountering software problems?
What can/must be done to use the new pi board?

Thanks for any help and good ideas.
citkid

Translated with DeepL Translate: The world's most accurate translator (free version)

Hallo,

es klingt so, als würden Sie zwei verschiedene RPi Versionen verwenden (z.B. RPi3 & RPi4) Das Image ist dann nur für eine bestimmte RPi Version nutzbar. Können Sie nochmals prüfen, ob Sie exakt das selbe RPi nochmals vorliegen haben?

Wieso gehen Sie davon aus, dass das erste RPi einen Defekt hat, oder möchten Sie einfach auf eine leistungsstärkere Version wechseln?

Ich gehe davon aus, Sie haben einen Turtlebot3? Sie können unter nachfolgendem Link für alle RPi Versionen & ROS Versionen das entsprechende Imgae herunterladen. Sie müssen dann nur Ihren workspace von dem alten auf das neue RPi übertragen: TurtleBot3

Hallo,
Ja ich verwende einen Turlebot3 (siehe Überschrift).
Im Turtlebot3 Waffle Pi ist ein raspberry pi 3b+ eingebaut und genau so einen pi habe ich austauschen wollen.

  • Warum will ich ihn mit einem anderen Vergleichen:
    • Ich ging mal davon aus, dass im WLAN ein Fehler steckt.
      • Das hat sich inzwischen nicht bestätigt. Die Fehler treten auch im LAN auf. Seltener, sind aber identisch vorhanden. Das Fehler im WLAN schon allein durch große Entfernungen mit den sich daraus resultierenden geringen MBit/s zu zusätzlichen Problemen führen kann, ist wohl für jeden nachvollziehbar.
    • Es gibt eine Reihe von Merkwürdigkeiten, die ich zwar eher als Softwarefehler interpretieren würde. Nur dann müssten sie im ROS liegen. Das sollte aber eher unwahrscheinlich sein, wenn man bedenkt mit welchem Hintergrund wohl ROS geschrieben, kontrolliert und getestet wird.

Also bleibt mir nur noch ein Versuch und das ist die Hardware austauschen.

Wenn wir schon mal die Gründe ansprechen; eine Merkwürdigkeit von ROS würde ich dann auch gleich mal ansprechen:
Ich bekomme von ROS einen Zeitstempel für die Sensorabfrage aus der Zukunft. Also eine Zeit, die erst so in 0-150 ms ansteht. Nur um es vorwegzunehmen, rospy.get_time() und time.time() liefern direkt hintereinander abgefragt eine Differenz von 5 ns. Ich bekomme aber auch manchmal, also unter 50%, Zeiten aus der Vergangenheit, so wie es sich aus meinem Verständnis heraus gehört.

Meine nachfolgenden Tests sollen direkt auf dem Roboter ausgeführt werden. Dafür muss aber noch irgendetwas auf dem Pi installiert werden. Da ich mich damit nicht auskenne, muss ich noch ein paar Tage warten, bis der junge Mann (Student) Zeit hat. Dann gibt es nicht einmal eine LAN-Verzögerung, sondern nur noch “Turbo”-Aktionen, bestenfalls durch Multitasking gestört. Dann werde ich sehen ob es eine Macke im ROS oder woanders gibt, oder ob alle Probleme weg sind.

Es bleibt aber immer noch die Frage: RPi im 1:1 Austausch verhält sich nicht gleich. Warum?

Leider kann ich mir Ihr Phänomen nicht erklären, sobald Sie zwei mal das selbe RPi haben, sollte das Image von dem einen, auch auf dem anderen problemlos starten.

@Sohail may you could check the decribed time difference? I would say it is due to realtime capability?

Ich habe tatsächlich unterschiede bei den Platinen gefunden. Zuerst einmal es sind beide wirklich “raspberry pi 3b+”. Ich konnte aber bei den Aufdrucken und bei der Bestückung kleine Unterschiede erkennen.
WafflePi oben: Bestückung nähe Text HDMI zwei braune und ein schwarzes Bauteil.
ErsatzPi oben: Bestückung nähe Text HDMI ein Bauteil mit Text R47
WafflePi unten: oberhalb und unterhalb des großen IC’s Texte die auf dem ErsatzPi nicht existieren.
unten: in der Nähe der Beere hat der WafflePi eine 2.5 wo der ErsatzPi eine 2.4 hat.
Das die Prüfaufkleber unterschiedlich sind, ist als normal anzusehen.

Gibt es mit diesen Hinweisen die Möglichkeit sagen zu können, was erforderlich ist um die Ersatz-Platine verwenden zu können?

Waffle Pi:


Ersatz Pi:


Dear @citkid,

ROS1 does not use the computer CPU time but its own internal ROS time which may have slight discrepancies which you see.

Also for the rasperry pi, it may be that some of the firmware or hardware have been updated/upgraded in the lastest production cycle of the raspberry pi +3b and behave slightly differently, enough so that it is not working as intended.

Also, to increase cycle efficiency please try using C++ as that will have low-overhead for the task you are trying to achieve!

Zur ROS-Zeit ist mir inzwischen etwas ein-/aufgefallen. ROSCORE läuft ja auf dem PC und ist sicherlich für die ROS-Zeit verantwortlich. Somit ist es verständlich warum die PC-Zeit quasi identisch zur ROS-Zeit ist. Die Roboter- und PC-Zeit laufen aber wohl nicht synchron. Das wird sich ja dann von selbst lösen, wenn das Programm auf dem Roboter gestartet wird.

Ich kann jetzt auch genauere Daten zu den beiden Pi’s liefern:
Der WallflePi verwendet einen 3b+ Version 1.3 und
der ErsatzPi verwendet einen 3b+ Version 1.4

Leider konnte ich bis jetzt noch nicht herausfinden, wie sich das auf das booten auswirkt. Vielleicht hat ja jetzt einer eine Idee. Was ich aber sagen kann, die Features-Angaben der Prozessoren sind total unterschiedlich. Da die Pi’s aber immer abwärtskompatibel sein sollen, dürfte das doch kein Problem darstellen.