UNO R2 top, R3 flop

Hallo zusammen,

habe mir einen zusätzlichen UNO gegönnt weil ich ja nebenher immer noch mit den Tinys rumspiele und mir das ständige Sketchwechseln dann doch … lassen wir das :grin:

Ich gehe davon aus, dass beide Originale sind, jedenfalls sprechen alle Anzeichen dafür. Habe aber für die Profis noch Bilder angehängt, hilft vielleicht.

Jetzt mein Problem:
“Blink” als Test funktioniert einwandfrei, Upload geht also, Treiber funktioniert, scheint alles gut.
Jetzt nehme ich meinen Datalogger-Sketch der auf dem R2 völlig problemlos läuft, und der tut’s nicht auf dem R3.
Sketch hängt auch dran, ist schnell zusammengeschustert, also nicht zu genau hinsehen :blush:

Das Ding hängt sich auf, bis dato nicht identifizierbar wann und warum. Gleicher USB-Port, gleiches Kabel, gleiches Shield (http://www.watterott.com/de/Adafruit-Data-Logging-Shield). Ist halt Com6 beim R3 statt Com3 beim R2.

Hat jemand ne plausible Erklärung?
Habe auch mal den Treiber gewechselt bis runter zu dem aus der IDE 023, bringt alles nix.

Danke für erhellende Hinweise
Klaus

Datalogger_RTC_Timestamp_V1.ino (3.04 KB)

Klaus_ww:
Ich gehe davon aus, dass beide Originale sind, jedenfalls sprechen alle Anzeichen dafür. Habe aber für die Profis noch Bilder angehängt, hilft vielleicht.

Der R3 ist eine Fälschung erkennbar an der groben Italien-Landkarte und am benutzten Font der Buchstaben speziell erkennbar am A und W

Habe auch mal den Treiber gewechselt bis runter zu dem aus der IDE 023, bringt alles nix.

Kann nicht funktionieren, da gabs den Arduino UNO noch nicht. Der Uno wird ab IDE 1.0.0 unterstützt

Das Ding hängt sich auf, bis dato nicht identifizierbar wann und warum. Gleicher USB-Port, gleiches Kabel, gleiches Shield (http://www.watterott.com/de/Adafruit-Data-Logging-Shield). Ist halt Com6 beim R3 statt Com3 beim R2.

Hat jemand ne plausible Erklärung?

Nein. Hab ich nicht. Außer, daß es eine Fälschung ist und minderwertige Teile benutzt wurden. Ich weiß nicht ob es für Arduino eine RAM bzw Flash Test gibt, ob alle Bits funktionieren.

Hast Du andere, etwas größere Sketche ausprobiert?

Jeder Arduino im USB Adapter hat eine Seriennummer darum erkennt das OS den jeweiligen Arduino und gibt ihm eine neue bzw die gleiche Nummer wie letztes mal.

Anbei ein Foto des Orginal-Arduino UNO R3, alte Grafik
Die Schrift von “Arduino” ist bei Deinem abgerundet. Italien klötzchenhaft, Die Schrift ist eine Standartschrift von Eagle am besten erkennbar am A (ist nicht V-Förmig sondern der Spitze Teil fängt in der mitte des Buchstabens an) und W (orginal sind die äußeren Linien des Ws nicht paralell)

Grüße Uwe

Klaus_ww:
Hat jemand ne plausible Erklärung?

Da beide Boards einen baugleichen Controller (Atmega328p) verwenden und Du den Sketch dann wohl auch mit derselben Boardeinstellung hochladen wirst, wird ja in beiden Fällen ein exakt gleiches Programm auf den Controller geladen.

Unter der Annahme, der Controller sei in Ordnung, muss es also etwas mit der Hardware zu tun haben. Die Frage ist also, wo das Programm mit der Hardware interagiert und es zu unterschiedlichen Ergebnissen führen kann, wenn sich die Hardware geringfügig anders verhält.

Beim Überfliegen Deines Quellcodes fällt mir insbesondere dieser Code ins Auge:

 Wire.begin();  
 RTC.begin();

Durch Wire.begin(); aktivierst Du die I2C-Schnittstelle und pullst die Clock- und die Datenleitung auf HIGH. Ich würde an dieser Stelle ein kurzes delay einfügen, etwa:

 Wire.begin();  
 delay(10);  // give some time to settle I2C voltage
 RTC.begin();

Führt das zu einem Unterschied?

Wenn nicht, müßtest Du wohl mal gründlich debuggen, bis wohin Dein Programm noch einwandfrei läuft. Also z.B. mal per Serial.begin(9600) im setup die serielle Schnittstelle initialisieren und durch ein paar eingestreute Serial-Debugausgaben feststellen, bis wohin das Programm wie erwartet läuft, und ab wo nicht mehr.

Danke euch, hier die neusten Erkenntnisse:

Wenn's kein Originaler ist dann ist's offenbar ne gute Fälschung. Aber das regel ich mit dem Verkäufer.

@Jurs:
Delay bringt keine sichtbare Veränderung, aber ich habe den Übeltäter identifiziert:

now = RTC.now();

läßt den Code abschmieren. Sprich, da bleibt er einfach hängen.
Stellt sich mir die Frage, ob es sich lohnt darüber noch weiter nachzudenken :~
Aber es will mir nicht in den Kopf, warum das nicht funktionieren will wenn doch der Rest - scheinbar - fluppt.
Den 328er habe ich auch schon mal getauscht, Fehler bleibt am Board.

Noch ne Pfingstmontagidee?

Nachtrag: da klappt auch was mit dem SD-Schreiben nicht.
Es müßte ja zumindest ein File mit Kopfzeile erzeugt werden. Karte ist aber leer.
Der CardInfo Sketch aus der IDE findet auch keine Karte.

Passt da vielleicht das Timing nicht?

Ach, es ist einfach Mist wenn man sich nicht auskennt :disappointed_relieved:

Klaus_ww:
Noch ne Pfingstmontagidee?

Offenbar funktionieren bei Dir I2C und SPI nicht.

Wenn Du ein Multimeter mit Voltbereich hast, würde ich mal die Spannungsversorgung des Shields prüfen.

Ich würde erstmal I2C testen. Spiele mal diesen kurzen Test-Sketch auf:

#include <Wire.h>

void setup()
{
  Wire.begin();
}

void loop(){
}

Und dann miss mal bei aufgestecktem Shield die Spannung an den SDA und SCL Pins:

  • Spannung an SDA?
  • Spannung an SCL?

Und ein R3 hat an den Header-Leisten jeweils zwei Pins mehr, d.h. wenn Du ein altes Nicht-R3 Shield auf einen R3-UNO draufstöpselst, sind zu wenige Stifte für zu viele Pin-Header vorhanden. Normalerweise kann man das wegen des Designs mit den Lücken zwischen den Headern kaum falsch zusammenstecken, aber kontrolliere mal lieber nochmal nach, ob Du das Shield nicht mit Versatz doch falsch auf den R3 draufgewürgt hast!

Hallo Jurs,

Du bist wieder auf dem richtigen Weg. Da kommen schlappe 1,6V an, und nachdem dieser Groschen bei mir gefallen ist scheinen einfach die Buchsenleisten Schrott zu sein.

Hab mal den 5V Pin gemessen. An der Lötstelle kommen noch 5V an, am Board auch nur noch ca. 2V. Ich denke, hier haben wir den Übeltäter.

Ich check das später nochmal, schonmal ein dickes Danke!

Kontrollier mal bei entfernten ATmega328 mit dem Ohmmeter ob Verbindungen von den SDA / SCL bzw SPI bzw A4 A5 zu anderen Pins bestehen.

Grüße Uwe

Klaus_ww:
Du bist wieder auf dem richtigen Weg. Da kommen schlappe 1,6V an, und nachdem dieser Groschen bei mir gefallen ist scheinen einfach die Buchsenleisten Schrott zu sein.

Kontrolliere auch mal, wie die USB-Buchse des Arduino-Boards zur Unterseite des Shields sitzt!

Aufgrund von Toleranzen bei der Länge der Header und der Länge der Pins gibt es durchaus Board-Shield-Kombinationen, da kannst Du ein Shield so tief aufsetzen, dass die Unterseite des Shields auf der USB-Buchse des Boards aufsetzt und dort einen Kurzschluss verursacht! Zwischen Unterseite Shield und Oberkante USB-Buchse muss immer ein Luftzwischenraum bestehen bleiben.

Notfalls das Shield nicht bis zum Anschlag aufdrücken, sondern mit einem Millimeter Luft etwas höher stehenlassen.

jurs:
Aufgrund von Toleranzen bei der Länge der Header und der Länge der Pins gibt es durchaus Board-Shield-Kombinationen, da kannst Du ein Shield so tief aufsetzen, dass die Unterseite des Shields auf der USB-Buchse des Boards aufsetzt und dort einen Kurzschluss verursacht!

Das ist der Grund, warum meine UNOs alle ein Stückchen Klebeband auf der USB Buchse drauf haben.

Grüße,

Sven

Ok Freunde,

das Rätsel ist gelöst: es sind tatsächlich "nur" die miesen Kontakte der Buchsenleisten.
Habe mal eine zusätzliche Reihe dazwischengesteckt und da das Shield drauf und schon läuft's. Sagenhaft, wär ich alleine nie drauf gekommen!

Meine USB-Buchse ist übrigens auch hübsch abgeklebt, das war mir schon beim ersten Board suspekt.

Danke an euch alle, jetzt geht's weiter mit dem Herrn Verkäufer ]:smiley:

Hallo,

wieviel hat den der Uno R3 gekostet? Wenn der deutlich billiger war als üblich, kann es kein Original sein.

Doc_Arduino:
Wenn der deutlich billiger war als üblich, kann es kein Original sein.

Kann man so nicht sagen wenn er nicht als neu angepriesen wird.

Doc_Arduino:
Hallo,

wieviel hat den der Uno R3 gekostet? Wenn der deutlich billiger war als üblich, kann es kein Original sein.

Daß der "Arduino UNO" eine Fälshung ist hatten wir ja bereits geklärt. Da müssen wir nicht mehr nachforschen ob man es am Preis erkennen hätte können. :wink: :wink: :wink:
Grüße Uwe