Hallo zusammen,
ich hoffe, hier liest noch jemand mit.
Ich bin vom CTDO und habe mir dort einen Borg nach Tunix' toller
Bauanleitung im CTDO-Wiki gebaut. Ich stehe jetzt allerdings vor einem
Problem, dessen Debugging ich offenbar nicht wirklich auf die Kette
bekomme. Daher wende ich mich an diese Liste hier.
Ich habe zu Testzwecken und um auf einen gemeinsamen Nenner alles an einer
vorkompilierten Labor-Firmware ohne seriellen Bootloader durchgeführt.
Gleiches passierte aber auch auf einer selbstgebauten Firmware, auf der ich
jeglichen Bus-Support und alle Spiele nicht mit eingebaut habe, weil ich
momentan eh noch keinen Joystick besitze.
Und zwar hängt sich mein Borg nach einer gewissen Zeit auf. Initial war
diese Zeit so 30 Minuten, ich habe dann nach den Empfehlungen des Wikis
einen Abblockkondensator eingelötet, seitdem kam es auch schon mal vor,
dass der Borg auch mal gute 2 Tage durchgehend lief, bis er wieder irgendwo
einfror. Bei welcher Animation genau ließ sich nie so wirklich vorhersehen,
also nicht nur bei der Spirale oder dem Lagerfeuer, wie das Laborwiki
vermutet. Teilweise friert der Borg auch in einem Zustand ein, in dem
sämtliche LEDs abgeschaltet sind.
Ich habe danach erstmal alle Lötstellen nochmal überprüft, und auch mal
einen anderen Controller eingesetzt, im Verdacht, dass der irgendwie einen
an der Klatsche haben könnte. Die Laufzeiten mit dem neuen Controller sind
wieder um einiges kürzer, und bewegen sich irgendwo im Bereich um einer
halben Stunde maximal. Wohlgemerkt, der Rest der Schaltung ist derselbe.
Ich habe seitdem die Brownout Detection im Verdacht. Die Fuses sind auf
4,3V Brownout gesetzt, und ich nehme einfach mal an, dass das Netzteil das
nicht richtig liefern kann. Obwohl ich bereits 2 Netzteile getestet habe -
ein 5V 2,4A Netzteil, und dann ein 5V 3A Netzteil, ein Modell, was im
CTDO-Wiki als geeignet angegeben wurde.
Ich habe sogar mal mein Labornetzteil drangeklemmt, was nominell bis zu 5A
liefern können soll, mit dem Resultat, dass die Borgware laufend
neugestartet ist, bevor in der initialen Laufschrift das w von
www.das-labor.org komplett zu sehen war.
Ein weiteres Indiz für was auch immer ist die Tatsache, dass ich nach den
Empfehlungen des Wikis mal das EEPROM nach einem Reset und einem Freeze
ausgelesen habe, und dort nicht nur die erwähnten 0xFF drin stehen. Ich bin
auf diesem Gebiet zwar noch ein ziemlicher Neuling, aber es scheint so, als
sei der Dump in Sektionen unterteilt, die alle jeweils mit einer Folge
anfangen, die ähnlich aussieht wie :20072000 und dann mehrere Bytes Daten
kommen. Bei einigen Sektionen sind sämtliche darauf folgenden Bytes Fs,
allerdings ist bei manchen Sektionen das letzte Byte ein anderer Wert.
Ich habe zu guter Letzt mal die serielle Schnittstelle, bzw. die Shell
dadrauf beobachtet, wenn ein Freeze passiert. Die letzten Meldungen, die
ich da drauf bekomme, sehen wie folgt aus:
>
Command is too long.
Dies kann sich je nach Lust und Laune der Technik auch noch ein paar mal
wiederholen, inklusive Promptzeichen, bis dann zusammen mit der Animation
auch die serielle Konsole komplett einfriert.
Und das letzte Symptom: Der Einschaltcounter zeigt bei mir teilweise absurd
hohe Werte an. Nach einem Reset des EEPROMs und eines funktionierenden
Durchlaufs von guten 2 Tagen stand der Counter bei über 27000. Ich habe den
Borg dabei nicht durchgehend beobachtet, aber das würde ja bedeuten, dass
er alle 6-7 Sekunden neu gestartet haben müsse, was definitiv nicht der
Fall ist.
Auch der neue Microcontroller zeigt mittlerweile Einschaltcounts über 200
an, obwohl ich ihn vielleicht maximal 10-20 Mal neu gestartet haben dürfte.
Ich habe Tunix gegenüber auf dem 33c3 erwähnt, dass es ja auch interessant
sein könnte, zu gucken, wie der Borg reagiert, wenn ich mein
Amateurfunkgerät mit nicht wenig Leistung, was daneben steht, mal
diesbezüglich ausprobiere, aber ich möchte anmerken, dass ich das noch
nicht getan habe, und das damit also nichts zu tun hat ;)
Bis auf WLAN, Zigbee und ein paar 433MHz Funksteckdosen ist hier in der
Wohnung nichts, was absichtlich Strahlung erzeugt, und ich gehe mal davon
aus, dass die AVR gegen solche geringen Leistungen verhältnismäßig
resistent sein dürften, bevor da irgendwelche Bits kippen.
Ich bin mittlerweile mit meinen Ideen am Ende, und frage daher mal hier
nach, ob solch ein Verhalten vielleicht schon mal irgendwo aufgetreten ist,
oder ob noch Ideen existieren, wo ich den Hebel noch ansetzen könnte.
Vielen Dank schonmal, und viele Grüße,
ttk
--
---
Before printing this email, think if it is really needed.