photron Geschrieben July 28, 2020 at 11:09 Geschrieben July 28, 2020 at 11:09 Der HAT Brick flasht sich etwas ungewöhnlich. Du schließt den nicht per USB an, der micro USB Anschluss ist nur für Strom. Sondern du lässt den HAT Brick auf dem Raspberry Pi stecken, verbindest dich dann mit Brick Viewer zum Raspberry Pi und wählst auf den Update/Flashing Dialog den Bricklet Tab aus. Dort wählst du als Parent None und kannst dann als Port den HAT Brick auswählen. Dort wählst du als Plugin Custom aus und kannst dann die Firmware Datei über den Browse Knopf auswählen und der Flash Knopf die Firmwae flashen. Mit dem HAT Brick hat sich die Trennung zwischen Bricks und Bricklets etwas verwischt. Der HAT Brick ist nach außen in Brick nutzt intern aber Bricklet Strukturen, wodurch er wie ein Bricklet geflasht wird. Auf Dauer werden wir den Flash Dialog in Brick Viewer überarbeiten und vereinfachen. Zitieren
PaulPaulaner Geschrieben July 28, 2020 at 11:59 Autor Geschrieben July 28, 2020 at 11:59 (bearbeitet) Hat funktioniert, Danke hab jetzt erst noch mit der 2.02 getestet und dann auf die Version welche du mir gegeben hast. Test mit dem Brick Viewer mit der 2.02 - gleiches Verhalten 3 x geschaltet => Bricklets aus mit der 2.03 - 20 x geschaltet => funktioniert noch (mit meiner Applikation getestet auch OK) brickd.log bearbeitet July 28, 2020 at 12:01 von PaulPaulaner Zitieren
photron Geschrieben July 28, 2020 at 13:51 Geschrieben July 28, 2020 at 13:51 Okay, dass bestätigt, dass irgendwo her ein Packet kommt, das an den HAT Brick geschickt wird und der dies als Abschaltbefehl für die Bricklets versteht. Das brickd.log verwirrt uns hier. Das Log quillt über an Warnungen dieser Art: Broadcasting response (...) because no client/zombie has a matching pending request Brick Daemon hat eine Antwort von der Hardware empfangen, für die es keine offene Anfrage gibt. Teilweise sind dies Antworten, die offensichtlich korrupt sind (unbekannte UID, ungültige Länge oder unbekannte Funktions-ID). Viele andere Antworten sind aber so ohne Kontext erstmal gültige Antworten. Das passt zum Brick Viewer Screenshot von vorher auf dessen Industrial Dual Relay Tab 174 Timeouts (fehlende Antworten) zu sehen waren. Die Antworten konnten in Brick Daemon nicht mehr zugeordnet werden, weil diese korrumpiert wurden. Die "Broadcasting Response" Meldungen im Log sollten unter normalen Umständen überhaupt nicht auftreten. Eine Vermutung wäre, dass die Bricklet Kommunikation durch die Umgebung gestört wird. Und zwar so stark, dass die Protokoll-Checksummen das nicht mehr abfangen können. Ein möglicher Test wäre es den Hardware Aufbau zu vereinfachen, z.B. den Display vollständig abzubauen, Bricklet Leitungslängen verkürzen und damit die Antennenwirkung der Kabel verringern. Oder auch mal den Aufbau wo anders betreiben (Draußen, Zuhause, etc.) rtrbt postet gleich auch noch ein Testprogramm auf Basis der neuen "C/C++ Bindings für Mikrocontroller", die ohne brickd auskommen. Einfach um zu sehen wie sich das verhält, und ob dort auch diese Fehler auftreten. Zitieren
rtrbt Geschrieben July 28, 2020 at 14:28 Geschrieben July 28, 2020 at 14:28 Hier das Testprogramm in zwei Variationen: Mit dem HAL der dem Brick Daemon entspricht und alternativ mit dem HAL, der direkt mit dem GPIO-Chip des Raspberry Pi kommuniziert. Du musst für beide Testprogramme erst den Brick Daemon auf dem Raspberry Pi mit "sudo systemctl stop brickd" beenden, danach kannst du die Programme laufen lassen. Ich habe dir den Source mal mit angehangen, beide Programme schalten die Relays im Wechsel und lesen die Monoflop-Informationen zurück. Poste mal bitte die Ausgaben beider Programme. embedded_c_hal_bcm2835 embedded_c_hal_linux main.c Zitieren
PaulPaulaner Geschrieben July 29, 2020 at 07:19 Autor Geschrieben July 29, 2020 at 07:19 (bearbeitet) Info zu den Aufbauten: Räumlichkeiten unterschiedlich 1x Pi ohne Display und Leitungen zu den Bricklets 15cm => Keller 1x wie bereits auf Foto gezeigt mit Display und Leitungen zu den Bricklets 50cm => OG mit der 2.0.3 & 2.0.2 für den HAT getestet Ausgabe ident. Relay tester - HAL Linux Found device Frp of type 2100 at port B Found device Nnn of type 284 at port C Found device NjK of type 284 at port E Found device Li7 of type 111 at port I Relay 1 error counters: 0 0 0 0 Relay 2 error counters: 0 0 0 0 Relay tester - HAL BCM2835 Found device Frp of type 2100 at port B Found device Nnn of type 284 at port C Found device NjK of type 284 at port E Found device Li7 of type 111 at port I Relay 1 error counters: 0 0 0 0 Relay 2 error counters: 0 0 0 0 bearbeitet July 29, 2020 at 07:26 von PaulPaulaner Zitieren
rtrbt Geschrieben July 29, 2020 at 11:36 Geschrieben July 29, 2020 at 11:36 Moin, Das verwirrt noch mehr. Die Relays haben bei allen Tests mit den Programmen 60 Sekunden abwechselnd geschaltet? Oder ist das Problem (bei HAT Firmware 2.0.2, die 2.0.3 kannst du künftig wieder ignorieren) nochmal aufgetreten, aber die Ausgabe hat sich nicht geändert? Mit dem Brick Viewer passiert es aber weiterhin? Um den gebroadcasteten Paketen im brickd.log nachzugehen, habe ich vom Brick Daemon eine Variante gebaut, die mehr Informationen liefert, wenn ein Paket defekt ist. Die ist in zwei Varianten im Anhang, einmal die 2.4.1 + das Logging, einmal alle Änderungen die wir seit der 2.4.1 schon hatten + das Logging. Bitte installiere mal jeweils eine Variante davon, reproduziere das Problem mit dem Brick Viewer und hänge das entsprechende brickd.log an. (Wegen der Übersicht: Bennene erstmal das brickd.log, dass du schon hast, um, sonst werden die Dateien so groß) brickd-2.4.1~log_armhf.deb brickd-2.4.2~log_armhf.deb Zitieren
PaulPaulaner Geschrieben July 29, 2020 at 14:07 Autor Geschrieben July 29, 2020 at 14:07 Mit beiden Programmen kein Absturz Auch kein Unterschied zwischen der HAT - Firmware lief mit beiden Programmen durch mit dem Brick-Viewer und Firmware 2.0.2 Absturz 2.0.3 kein Absturz bei der Installation der neuen Daemon-Versionen bekomm ich leider einen Fehler. sudo dpkg -i /home/pi/Ratio/brickd-2.4.2~log_armhf.deb (Lese Datenbank ... 149419 Dateien und Verzeichnisse sind derzeit installiert.) Vorbereitung zum Entpacken von .../brickd-2.4.2~log_armhf.deb ... Removed /etc/systemd/system/multi-user.target.wants/brickd.service. Entpacken von brickd (2.4.2~log) über (2.4.2~log) ... brickd (2.4.2~log) wird eingerichtet ... Created symlink /etc/systemd/system/multi-user.target.wants/brickd.service → /lib/systemd/system/brickd.service. Job for brickd.service failed because the control process exited with error code. See "systemctl status brickd.service" and "journalctl -xe" for details. dpkg: Fehler beim Bearbeiten des Paketes brickd (--install): Unterprozess installiertes post-installation-Skript gab den Fehlerwert 1 zurück Trigger für man-db (2.7.6.1-2) werden verarbeitet ... Fehler traten auf beim Bearbeiten von: brickd journalctl -xe Jul 29 15:58:03 raspberrypi systemd[1]: apt-daily-upgrade.timer: Adding 26min 44 Jul 29 15:58:04 raspberrypi systemd[1]: Reloading. Jul 29 15:58:04 raspberrypi systemd[1]: apt-daily.timer: Adding 8h 33min 55.9280 Jul 29 15:58:04 raspberrypi systemd[1]: apt-daily-upgrade.timer: Adding 24min 41 Jul 29 15:58:04 raspberrypi systemd[1]: Starting Brick Daemon... -- Subject: Unit brickd.service has begun start-up -- Defined-By: systemd -- Support: https://www.debian.org/support -- -- Unit brickd.service has begun starting up. Jul 29 15:58:04 raspberrypi brickd[1122]: /usr/bin/brickd: /lib/arm-linux-gnueab Jul 29 15:58:04 raspberrypi systemd[1]: brickd.service: Control process exited, Jul 29 15:58:04 raspberrypi systemd[1]: Failed to start Brick Daemon. -- Subject: Unit brickd.service has failed -- Defined-By: systemd -- Support: https://www.debian.org/support -- -- Unit brickd.service has failed. -- -- The result is failed. Jul 29 15:58:04 raspberrypi systemd[1]: brickd.service: Unit entered failed stat Jul 29 15:58:04 raspberrypi systemd[1]: brickd.service: Failed with result 'exit Jul 29 15:58:05 raspberrypi sudo[1047]: pam_unix(sudo:session): session closed f lines 1796-1818/1818 (END) systemctl status brickd.service ● brickd.service - Brick Daemon Loaded: loaded (/lib/systemd/system/brickd.service; enabled; vendor preset: e Active: failed (Result: exit-code) since Wed 2020-07-29 15:58:04 CEST; 21s ag Process: 1122 ExecStart=/usr/bin/brickd --daemon (code=exited, status=1/FAILUR Jul 29 15:58:04 raspberrypi systemd[1]: Starting Brick Daemon... Jul 29 15:58:04 raspberrypi brickd[1122]: /usr/bin/brickd: /lib/arm-linux-gnueab Jul 29 15:58:04 raspberrypi systemd[1]: brickd.service: Control process exited, Jul 29 15:58:04 raspberrypi systemd[1]: Failed to start Brick Daemon. Jul 29 15:58:04 raspberrypi systemd[1]: brickd.service: Unit entered failed stat Jul 29 15:58:04 raspberrypi systemd[1]: brickd.service: Failed with result 'exit ...skipping... ● brickd.service - Brick Daemon Loaded: loaded (/lib/systemd/system/brickd.service; enabled; vendor preset: e Active: failed (Result: exit-code) since Wed 2020-07-29 15:58:04 CEST; 21s ag Process: 1122 ExecStart=/usr/bin/brickd --daemon (code=exited, status=1/FAILUR Jul 29 15:58:04 raspberrypi systemd[1]: Starting Brick Daemon... Jul 29 15:58:04 raspberrypi brickd[1122]: /usr/bin/brickd: /lib/arm-linux-gnueab Jul 29 15:58:04 raspberrypi systemd[1]: brickd.service: Control process exited, Jul 29 15:58:04 raspberrypi systemd[1]: Failed to start Brick Daemon. Jul 29 15:58:04 raspberrypi systemd[1]: brickd.service: Unit entered failed stat Jul 29 15:58:04 raspberrypi systemd[1]: brickd.service: Failed with result 'exit ● brickd.service - Brick Daemon Loaded: loaded (/lib/systemd/system/brickd.service; enabled; vendor preset: e Active: failed (Result: exit-code) since Wed 2020-07-29 15:58:04 CEST; 21s ag Process: 1122 ExecStart=/usr/bin/brickd --daemon (code=exited, status=1/FAILUR Jul 29 15:58:04 raspberrypi systemd[1]: Starting Brick Daemon... Jul 29 15:58:04 raspberrypi brickd[1122]: /usr/bin/brickd: /lib/arm-linux-gnueab Jul 29 15:58:04 raspberrypi systemd[1]: brickd.service: Control process exited, Jul 29 15:58:04 raspberrypi systemd[1]: Failed to start Brick Daemon. Jul 29 15:58:04 raspberrypi systemd[1]: brickd.service: Unit entered failed stat Jul 29 15:58:04 raspberrypi systemd[1]: brickd.service: Failed with result 'exit ~ Zitieren
rtrbt Geschrieben July 29, 2020 at 14:15 Geschrieben July 29, 2020 at 14:15 Poste mal das aktuelle brickd.log. Zitieren
PaulPaulaner Geschrieben July 29, 2020 at 14:21 Autor Geschrieben July 29, 2020 at 14:21 habe ich vor der Installation gelöscht, es wurde keine neue Datei angelegt. Zitieren
rtrbt Geschrieben July 29, 2020 at 14:22 Geschrieben July 29, 2020 at 14:22 Dann starte den Brick Daemon mal von Hand mit "sudo brickd". Zitieren
rtrbt Geschrieben July 31, 2020 at 07:38 Geschrieben July 31, 2020 at 07:38 Für die Nachwelt: Wir haben telefonisch rausgefunden, dass es ein Hardwareproblem mit doppelt belegten GPIOs ist. Im HAT-Schaltplan kann nachgesehen werden, welche GPIOs vom HAT verwendet werden. Zitieren
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.