Forum: Mikrocontroller und Digitale Elektronik Falsche Signature Bytes bei von mir gekauften China Nano mit 328PB


von Gerhard O. (gerhard_)


Lesenswert?

Moin,

Ist jemand von Euch dasselbe passiert, daß avrdude falsche Signature 
Bytes zurückbekommt?

Ich kaufte mir vor einiger Zeit ein paar China 328PB Nanos von "Imported 
Electronics".

https://www.importedelectronics.com/products/arduino-nano-v3-0-micro-usb-compatible-board-atmega328pb-terminal-adapter

https://www.importedelectronics.com/collections/all/nano


Beim Testen ergab sich, daß avrdude den Programmiervorgang mit der 
Begründung vorzeitig beendete, daß die "gelesenen" Signature Bytes mit 
0x15950f falsch wären und daß eigentlich 0x159516 erwartet wären.

Daraufhin prüfte ich die avrdude conf Datei und die Signature Bytes sind 
dort für den 328pb korrekt eingetragen. Abgesehen davon funktionierten 
ältere Watterott 328pb Pro-Minis immer einwandfrei mit derselben 
Installation.

Dann schloss ich den AVR ISP mit AS7 an und der las die korrekten 
Signature Bytes mit 0x159516 aus.

OK, das könnte dann höchstwahrscheinlich nur noch der China Bootloader 
selber sein. Ich flashte daraufhin den 328pb mit dem mitgelieferten 
Watterott optiboot 328pb bootloader. Daraufhin funktionierte der Nano 
wie er sollte.

Ist es so, daß der Bootloader nicht die tatsächlichen Signature Bytes 
ausliest, sondern nur hard coded Bytes zurück gibt?

Wer weiß da Näheres?

Jedenfalls werde ich die alten BL alle austauschen. Auch weiß ich nicht 
ob der China Bootloader mit dem Watchdog Reset korrekt umgeht. Da hatte 
ich früher mit alten 328P Bootloadern auch meine Probleme.

VG,
Gerhard

: Bearbeitet durch User
von Veit D. (devil-elec)


Lesenswert?

Hallo,

ich weiß zwar aktuell nicht wie ein Bootloader Einfluss auf die Signatur 
hat, aber
0x1E950F ... ist der 328P
0x1E9516 ... ist der 328PB
hast bestimmt nur einen Tippfehler.  ;-)

Hat der kleine Chinese bestimmt nur falsch geflasht.  :-)

Mal ein Gedankenspiel. Der PB ist ja zum P binär kompatibel. Wenn man so 
tut als wäre er ein P könnte das ggf. "in 99%" der Fälle funktionieren. 
Ich wüßte nur nicht wo der Sinn ist das als PB zu verkaufen um ihn als P 
zu verwenden. Weil man kauft ja einen PB und will ihn als PB behandeln. 
Zudem man als Käufer nicht weiß das er als P signiert wurde. Bleibt 
seltsam.

Eine Frage in die Runde. Kann ein Bootloader wirklich eine andere 
Signatur vorgaukeln?

von Stefan F. (Gast)


Lesenswert?

Veit D. schrieb:
> Kann ein Bootloader wirklich eine andere Signatur vorgaukeln?

Ja kann er.

von Jens M. (schuchkleisser)


Lesenswert?

Der Bootloader tut für den PC so als sei er ein Programmiergerät.
Dein echtes Programmiergerät bekommt den Befehl "gib mir mal die 
Signatur", liest die dann aus und liefert.
Der Bootloader kann auf das Kommando natürlich einfach irgendwas 
abliefern, und vielleicht auch das echte, wenn er es denn lesen kann 
(ich weiß nicht ob der Programmcode die Sig lesen kann).
Ist aufgrund der Programmgröße vielleicht aber auch einfach kleiner und 
schneller wenn er einfach das passende liefert, denn im Gegensatz zum 
Programmer ist der Chip für den Bootloader ja immer der selbe.

von H. H. (Gast)


Angehängte Dateien:

Lesenswert?

Jens M. schrieb:
> (ich weiß nicht ob der Programmcode die Sig lesen kann).

Kann er.

von Gerhard O. (gerhard_)


Lesenswert?

Hallo,

Sorry wegen 0x15; ich schrieb das aus dem Gedächtnis.

Nach dem Austausch zum Optiboot funktionierte alles Bestens.

Mich verwunderte es nur, dass AS7 die Signature richtig ausgelesen hat, 
aber das Avrdude falsche Daten zurückbekommt. Ich vermute fast, daß die 
alten Bootloader die die China Leute verwenden, alt und ehemals nur für 
den 328p gestrickt worden sind.

Jedenfalls funktionieren sie mit dem Watterott 328PB Optiboot 
einwandfrei. Ich habe einige der WR Bords und die machen auch keine 
Probleme.

Grüsse,
Gerhard

von Gerhard O. (gerhard_)


Lesenswert?

H. H. schrieb:
> Jens M. schrieb:
>> (ich weiß nicht ob der Programmcode die Sig lesen kann).
>
> Kann er.

Danke, Hinz,

Das werde ich mal aus ausprobieren.

von Gerhard O. (gerhard_)


Lesenswert?

...Mal ein Gedankenspiel. Der PB ist ja zum P binär kompatibel. Wenn man 
so tut als wäre er ein P könnte das ggf. "in 99%" der Fälle 
funktionieren...

Das habe ich gemacht und funktioniert. Nur gefällt mir es nicht, 
austricksen zu müssen.

von Arduino F. (Firma: Gast) (arduinof)


Lesenswert?

Veit D. schrieb:
> Eine Frage in die Runde. Kann ein Bootloader wirklich eine andere
> Signatur vorgaukeln?

Ja!
Wäre aber ein ganz schöner Schwachsinn, aus meiner Sicht.

von Jens M. (schuchkleisser)


Lesenswert?

Arduino F. schrieb:
> Wäre aber ein ganz schöner Schwachsinn, aus meiner Sicht.

Vielleicht auch einfach ein Zusaammenklopper dem es schegal ist was er 
da reinschreibt.
Das Programm ist geklaut, das Layout ist geklaut, die Platinen macht 
derjenige der den kleinsten Preis knapp über "auch geklaut" hat, die 
Chips sind vielleicht auch geklaut, ausgelötet oder uralt/vom Broker/neu 
beschriftet. Die Langnasen kaufen es, also warum drauf achten das der 
Bootloader der für den PB ist?

von Veit D. (devil-elec)


Lesenswert?

Hallo,

Danke für Bootloader Info.

Stimmt, hätte auch gleich "in 100%" der Fälle schreiben können. Muss ja 
gehen sonst wäre er nicht binär kompatibel. ;-)  Aber ich gebe dir 
recht, das macht keinen Sinn, dann wäre der Kauf extra des PB Typs 
sinnlos. Man will ja bewusst den PB und nicht nur den P. Davon abgesehen 
finde ich allein die Idee den PB binär kompatibel herzustellen schon 
irgendwie cool. Da hat jemand richtig mitgedacht. Ich schweife ab ...

von Rainer W. (rawi)


Lesenswert?

Veit D. schrieb:
> Eine Frage in die Runde. Kann ein Bootloader wirklich eine andere
> Signatur vorgaukeln?

Der Bootloader ist ein Programm, das lediglich an einer speziellen 
Stelle im Speicher steht.
Was meinst du mit deiner Frage?

Ein Programm kann irgendetwas ausgeben - kommt drauf an, was im 
Programmcode steht. Wenn das Programm nicht die aus den Signaturregister 
ausgelesenen Werte ausgibt, sondern irgendetwas anderes, tut es das 
halt.
Warum soll es das nicht tun können?

von Gerhard O. (gerhard_)


Lesenswert?

Jens M. schrieb:
> Arduino F. schrieb:
>> Wäre aber ein ganz schöner Schwachsinn, aus meiner Sicht.
>
> Vielleicht auch einfach ein Zusaammenklopper dem es schegal ist was er
> da reinschreibt.
> Das Programm ist geklaut, das Layout ist geklaut, die Platinen macht
> derjenige der den kleinsten Preis knapp über "auch geklaut" hat, die
> Chips sind vielleicht auch geklaut, ausgelötet oder uralt/vom Broker/neu
> beschriftet. Die Langnasen kaufen es, also warum drauf achten das der
> Bootloader der für den PB ist?

Moin,

Jetzt muß ich vehement widersprechen, was Deine Kritik betrifft. Alle 
Arduino Designs sind Open Source und es ist legal sie kommerziell auf 
den Markt zu werfen. Was Programm IP betrifft, habe ich keine Ahnung 
unter welchem Lizenzmodell die Arduino Bootloader existieren noch 
interessiert es mich.

Naja, und wenn der Preis stimmt und die Teile funktionieren, wäre mir 
ein ausgelöteter Original uC lieber als ein geklonter Neuer. Die 
Herstellungskosten sind halt in China billiger als irgendwo sonst und 
man ist mit weniger Gewinn zufrieden. Abgesehen davon finde ich die 
vernünftige Wiederverwendung von Elektronik Komponenten ohnehin nicht 
schlecht.

Der einzige Punkt über den man wirklich streiten sollte/könnte, ob es 
ethisch vertretbar ist, die Preise der Original so aggressiv zu 
unterbieten. Ich weiß nicht, wie die Arduino Gruppe darüber denkt. Fair 
gegenüber Arduino ist es bestimmt nicht. Andrerseits darf ich zumindest 
keine Steine werfen, weil selber bis jetzt im Verhältnis nur wenige 
Originale gekauft habe. Andrerseits, ein Schüler, der nicht genug Geld 
für ein Original Arduino hat, denkt vielleicht darüber ganz anders. So 
gesehen, tut Arduino wahrscheinlich das einzig Richtige, indem sie neue 
Werte schaffen und die Original Uno, Nano Welt mehr oder weniger 
abgeschrieben haben und fähigere Zukunftsprodukte geschaffen haben, für 
die sich billige Chinaklonen nicht lohnen. Allerdings finde ich die 
Arduino Nano Preise im Verhältnis viel zu hoch, wenn man bedenkt wieviel 
weniger ein Nano Every kostet. Irgendwie ist der Preisunterschied nicht 
im Verhältnis.

Jedenfalls will ich selber hier nicht den schuldfreien Apostel spielen - 
Guilty as Charged!

VG,
Gerhard

: Bearbeitet durch User
von Gerhard O. (gerhard_)


Lesenswert?

Rainer W. schrieb:
> Veit D. schrieb:
>> Eine Frage in die Runde. Kann ein Bootloader wirklich eine andere
>> Signatur vorgaukeln?
>
> Der Bootloader ist ein Programm, das lediglich an einer speziellen
> Stelle im Speicher steht.
> Was meinst du mit deiner Frage?
>
> Ein Programm kann irgendetwas ausgeben - kommt drauf an, was im
> Programmcode steht. Wenn das Programm nicht die aus den Signaturregister
> ausgelesenen Werte ausgibt, sondern irgendetwas anderes, tut es das
> halt.
> Warum soll es das nicht tun können?

Vielleicht dachte man damals, dass es genügen würde, die Signature Bytes 
vorzuspiegeln. Vielleicht war es aus Gründen der Bootloadergröße wichtig 
nur unbedingt notwendige Funktionalität zu haben. Damals gab es ja nur 
den ersten 328P. Ich kann mir schon vorstellen, daß die Entwickler sich 
vielleicht gedacht haben, diese Vereinfachung wäre vertretbar. Das 
Problem wurde erst dann akut als der 328pb seinen Kopf in die Welt 
streckte und man in China nicht aufpasste und sich nicht unbedingt der 
Wichtigkeit bewußt war. Oder man dachte, die Kunden sollten mit dem 
Problem fertig werden. Es ist schon etwas überraschend, daß die Bords 
erst einen FW Upgrade brauchen um mit dem Arduino IDE verwendbar zu 
sein. Leute die die Bords mit dem ISP Flashen, würden  diesem Problem 
gar nicht begegnen. Ist ja nur der "böse" avrdude, der dem Bootloader 
auf die Finger schaut.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Gerhard O. schrieb:
> Vielleicht dachte man damals, dass es genügen würde, die Signature Bytes
> vorzuspiegeln

Ist völlig normal, dass man das tut. Auslesen der richtigen Signatur ist 
doch viel aufwändiger (und damit platzraubender), als einfach die 
gewünschten Bytes zurück zu liefern. Bei ganz frühen AVRs konnte man die 
Signatur gar nicht per Software auslesen – Bootloader gab es auch damals 
aber schon.

Ein Bootloader sollte ja normalerweise auch wissen, auf welchem Chip er 
sitzt. ;-)

von Gerhard O. (gerhard_)


Lesenswert?

Jörg W. schrieb:
> Gerhard O. schrieb:
>> Vielleicht dachte man damals, dass es genügen würde, die Signature Bytes
>> vorzuspiegeln
>
> Ist völlig normal, dass man das tut. Auslesen der richtigen Signatur ist
> doch viel aufwändiger (und damit platzraubender), als einfach die
> gewünschten Bytes zurück zu liefern. Bei ganz frühen AVRs konnte man die
> Signatur gar nicht per Software auslesen – Bootloader gab es auch damals
> aber schon.
>
> Ein Bootloader sollte ja normalerweise auch wissen, auf welchem Chip er
> sitzt. ;-)

Ja. Ich sehe es genauso. Ist halt nur blöd, daß der Hersteller nicht 
aufpasst. Ich konnte mir zwar helfen; Ich könnte mir aber auch 
vorstellen wie es einen Anfänger nerven und herausfordern könnte damit 
klarzukommen. Ohne ISP Zugang hätte ich es nicht eindeutig nachprüfen 
können. Nicht jeder Anfänger/Schüler hat schon einen ISP wenn er nicht 
gerade einen zweiten Arduino hat, der das übernehmen könnte.

Ich denke, die Moral von der Geschicht', ist, daß es am Besten ist, bei 
Import Modulen, schon von Anfang an, einen bewährten B.L. wie Optiboot 
draufzuspielen, weil man ja keine Ahnung hat, welcher da drauf ist. Das 
ist auch aus einem weiteren Grund zweckmässig um sicher sein zu können, 
daß der Watchdog Reset vom B.L. korrekt behandelt wird.

von Jobst Q. (joquis)


Lesenswert?

Gerhard O. schrieb:
> Ich denke, die Moral von der Geschicht', ist, daß es am Besten ist, bei
> Import Modulen, schon von Anfang an, einen bewährten B.L. wie Optiboot
> draufzuspielen, weil man ja keine Ahnung hat, welcher da drauf ist. Das
> ist auch aus einem weiteren Grund zweckmässig um sicher sein zu können,
> daß der Watchdog Reset vom B.L. korrekt behandelt wird.

Um einen anderen Bootloader aufzuspielen, braucht man ja einen 
ISP-Programmer. Dann kann man auch gleich auf den Bootloader verzichten 
und über ISP programmieren.

von Gerhard O. (gerhard_)


Lesenswert?

Jobst Q. schrieb:
> Um einen anderen Bootloader aufzuspielen, braucht man ja einen
> ISP-Programmer. Dann kann man auch gleich auf den Bootloader verzichten
> und über ISP programmieren.

Naja, aber mit dem BL. ist es etwas bequemer. Ich bin ganz froh, dass es 
ihn gibt.

von Manfred P. (pruckelfred)


Lesenswert?

Gerhard O. schrieb:
> Der einzige Punkt über den man wirklich streiten sollte/könnte, ob es
> ethisch vertretbar ist, die Preise der Original so aggressiv zu
> unterbieten.

Der Nano war mit rund 35 €uro dermaßen überteuert, dass sie ihn 
scheinbar garnicht verkaufen wollten. Ganz sicher war es ein Fehler, für 
USB FTDI zu verwenden, deren Preise ich generell unverschämt finde.

Inzwischen ist der echte Nano günstiger geworden, aber die Diskrepanz zu 
China ist noch immer deutlich.

> Ich weiß nicht, wie die Arduino Gruppe darüber denkt. Fair
> gegenüber Arduino ist es bestimmt nicht.

Es wird ihnen nicht gefallen, aber mit OpenSource ist das eben so.

> Andrerseits darf ich zumindest
> keine Steine werfen, weil selber bis jetzt im Verhältnis nur wenige
> Originale gekauft habe.

Ich habe kein einziges Original gekauft.

Gerhard O. schrieb:
>> Ein Bootloader sollte ja normalerweise auch wissen, auf welchem Chip er
>> sitzt. ;-)
>
> Ja. Ich sehe es genauso. Ist halt nur blöd, daß der Hersteller nicht
> aufpasst. Ich konnte mir zwar helfen; Ich könnte mir aber auch
> vorstellen wie es einen Anfänger nerven und herausfordern könnte damit
> klarzukommen.

Wirklich? Ich benutze die Arduino-IDE, der Bootloader meldet sich und 
der Programmupload startet. Da die Softwarekompatibilität gegeben ist, 
muß die Arduino-IDE den tatsächlichen Typ PB nicht wissen.

> Ohne ISP Zugang hätte ich es nicht eindeutig nachprüfen
> können. Nicht jeder Anfänger/Schüler hat schon einen ISP wenn er nicht
> gerade einen zweiten Arduino hat, der das übernehmen könnte.

Hatte ich zu Beginn auch nicht, bis es dann mal ein Problem gab. Ich 
habe mir dann ein Programmierboard vom Chinesen gekauft, war um 4,50 USD 
schon die Luxusvariante.

von Gerhard O. (gerhard_)



Lesenswert?

Manfred P. schrieb:
> Wirklich? Ich benutze die Arduino-IDE, der Bootloader meldet sich und
> der Programmupload startet. Da die Softwarekompatibilität gegeben ist,
> muß die Arduino-IDE den tatsächlichen Typ PB nicht wissen.

Hallo Manfred,

nein, das stimmt nicht. Es war avrdude, das sich über den Nano genervt 
hatte. Guck mal auf die screen captures.

Das dritte Bild zeigt dieselbe Bord mit Optiboot_328pb wo es 
funktioniert. Sonst keine Änderungen.

Gerhard

von Gerhard O. (gerhard_)


Lesenswert?

Manfred P. schrieb:
> Gerhard O. schrieb:
>> Der einzige Punkt über den man wirklich streiten sollte/könnte, ob es
>> ethisch vertretbar ist, die Preise der Original so aggressiv zu
>> unterbieten.
>
> Der Nano war mit rund 35 €uro dermaßen überteuert, dass sie ihn
> scheinbar garnicht verkaufen wollten. Ganz sicher war es ein Fehler, für
> USB FTDI zu verwenden, deren Preise ich generell unverschämt finde.
Ja. Überteuert ist er auf alle Fälle dort.
>
> Inzwischen ist der echte Nano günstiger geworden, aber die Diskrepanz zu
> China ist noch immer deutlich.
Am Nano Every is zum Gegensatz nichts auszusetzen, was Preis betrifft.
>
>> Ich weiß nicht, wie die Arduino Gruppe darüber denkt. Fair
>> gegenüber Arduino ist es bestimmt nicht.
>
> Es wird ihnen nicht gefallen, aber mit OpenSource ist das eben so.
Das war auch so beabsichtigt.
>
>> Andrerseits darf ich zumindest
>> keine Steine werfen, weil selber bis jetzt im Verhältnis nur wenige
>> Originale gekauft habe.
>
> Ich habe kein einziges Original gekauft.
Hmmm. OK:-)
>
> Gerhard O. schrieb:
>>> Ein Bootloader sollte ja normalerweise auch wissen, auf welchem Chip er
>>> sitzt. ;-)
>>
>> Ja. Ich sehe es genauso. Ist halt nur blöd, daß der Hersteller nicht
>> aufpasst. Ich konnte mir zwar helfen; Ich könnte mir aber auch
>> vorstellen wie es einen Anfänger nerven und herausfordern könnte damit
>> klarzukommen.
>
> Wirklich? Ich benutze die Arduino-IDE, der Bootloader meldet sich und
> der Programmupload startet. Da die Softwarekompatibilität gegeben ist,
> muß die Arduino-IDE den tatsächlichen Typ PB nicht wissen.
Das stimmt nur zum Teil. Dem IDE ist es zwar gleich, aber avrdude führt 
ein strenges Regiment und lässt solche Schlampigkeiten nicht ohne -F 
Anweisung durchgehen:-)
>
>> Ohne ISP Zugang hätte ich es nicht eindeutig nachprüfen
>> können. Nicht jeder Anfänger/Schüler hat schon einen ISP wenn er nicht
>> gerade einen zweiten Arduino hat, der das übernehmen könnte.
>
> Hatte ich zu Beginn auch nicht, bis es dann mal ein Problem gab. Ich
> habe mir dann ein Programmierboard vom Chinesen gekauft, war um 4,50 USD
> schon die Luxusvariante.
Ja. Das stimmt.

...

: Bearbeitet durch User
von Rainer W. (rawi)


Lesenswert?

Gerhard O. schrieb:
> nein, das stimmt nicht. Es war avrdude, das sich über den Nano genervt
> hatte. Guck mal auf die screen captures.

Dann steht wahrscheinlich in deiner Boarddatei nicht die zu dem 
Board/Bootloader passende Signatur.

Statt den Bootloader zu ändern, könntest du auch die Erwartungshaltung 
von AVRdude anpassen ;-)

von Arduino F. (Firma: Gast) (arduinof)


Lesenswert?

Rainer W. schrieb:
> Statt den Bootloader zu ändern, könntest du auch die Erwartungshaltung
> von AVRdude anpassen ;-)

Das ist der richtige Umgang mit solch einer Lüge?

von H. H. (Gast)


Lesenswert?

Arduino F. schrieb:
> Rainer W. schrieb:
>> Statt den Bootloader zu ändern, könntest du auch die Erwartungshaltung
>> von AVRdude anpassen ;-)
>
> Das ist der richtige Umgang mit solch einer Lüge?

Im Zeitalter alternativer Fakten...

von Sebastian W. (wangnick)


Lesenswert?

Beim Händler geht in den Beschreibungen ja auch 328P und 328PB munter 
durcheinander. Ich kann nachvollziehen, dass der Hersteller das Board 
darum mit einem Bootloader ausliefert, der einen 328P meldet. Dann muss 
der Anwender nicht mühsam eine 328PB-Umgebung aufsetzen, sondern kann 
das Board wie einen üblichen Nano bespielen.

Sind die zusätzlichen Ports überhaupt hinausgeführt?

LG, Sebastian

von Veit D. (devil-elec)


Lesenswert?

Sebastian W. schrieb:

> Sind die zusätzlichen Ports überhaupt hinausgeführt?

Maximal fehlen PE0 und PE1, dafür müßte das Board 2 Pins mehr haben. 
Weil das auf dem 'P' VCC und GND ist. Damit fehlt nur die zweite I2C, 
welche man am Ehesten verschmerzen kann. Alles andere sind übliche 
Mehrfachbelegungen der Pin Funktionalität.

von Rolf (rolf22)


Lesenswert?

Jobst Q. schrieb:
> Um einen anderen Bootloader aufzuspielen, braucht man ja einen
> ISP-Programmer. Dann kann man auch gleich auf den Bootloader verzichten
> und über ISP programmieren

Ganz so einfach ist das nicht. Der ISP nutzt Pins der SPI-Schnittstelle. 
Wenn man da ein Device fest angelötet oder mit einem ohne Demontage des 
Geräts nicht zugänglichen Steckverbinder angeschlossen hat ...

Arbeitet ja nicht jeder mit Steckbrett.  ;-)

von Arduino F. (Firma: Gast) (arduinof)


Lesenswert?

Sebastian W. schrieb:
> mühsam
Welches "mühsam" magst du da wohl meinen?

Mit der Arduino IDE beschränkt sich das "mühsam" bei fremd Boards meist 
auf das kopieren einer Zeile und ca 5 Mausklicks.
Wer das nicht hinbekommt hat sicherlich noch mehr/andere Probleme.

Das ist hier (PB) nicht anders.

von Arduino F. (Firma: Gast) (arduinof)


Lesenswert?

Rolf schrieb:
> Wenn man da ein Device fest angelötet oder mit einem ohne Demontage des
> Geräts nicht zugänglichen Steckverbinder angeschlossen hat ...

Dann braucht /CS ein Pullup, damit das Device nicht dazwischen quatscht.
Das ist immer so, hat mit dem konkreten Board nix zu tun.

von Sebastian W. (wangnick)


Lesenswert?

Arduino F. schrieb:
> Mit der Arduino IDE beschränkt sich das "mühsam" bei fremd Boards meist
> auf das kopieren einer Zeile und ca 5 Mausklicks.

https://github.com/watterott/ATmega328PB-Testing/issues/52

LG, Sebastian

von Jobst Q. (joquis)


Lesenswert?

Rolf schrieb:
> Jobst Q. schrieb:
>> Um einen anderen Bootloader aufzuspielen, braucht man ja einen
>> ISP-Programmer. Dann kann man auch gleich auf den Bootloader verzichten
>> und über ISP programmieren
>
> Ganz so einfach ist das nicht. Der ISP nutzt Pins der SPI-Schnittstelle.
> Wenn man da ein Device fest angelötet oder mit einem ohne Demontage des
> Geräts nicht zugänglichen Steckverbinder angeschlossen hat ...
>
> Arbeitet ja nicht jeder mit Steckbrett.  ;-)

Ich mache es gerade über ISP, weil ich das fertige Gerät nicht immer 
aufschrauben will, wenn ich an der Software etwas ändern will. Ich nutze 
vorwiegend Pro Minis, um dezentral Daten zu sammeln, die dann per RS485 
von einem Raspi angefordert werden. Mit Bootloader brauche ich noch 
einen USB-UART-Adapter, der mit dem RS485-Modul konkurriert.

Für ISP habe ich einen Pro Micro als Programmer mit einem RJ-12 (6P6C) 
Stecker und jedes Pro Mini Gerät bekommt eine RJ-12 Buchse. Kann man 
auch als SPI-Interface nutzen, es braucht dann nur noch einen Umschalter 
zwischen /Reset und /CS Pin.

Und zum Hochladen einmal Strg-U zu drücken ist auch nicht viel 
unbequemer als das Klicken auf den Button.

Beim Pro Mikro mit USB-Schnittstelle schätze ich den Bootloader 
durchaus.

von Manfred P. (pruckelfred)


Lesenswert?

Gerhard O. schrieb:
>> Wirklich? Ich benutze die Arduino-IDE, der Bootloader meldet sich und
>> der Programmupload startet. Da die Softwarekompatibilität gegeben ist,
>> muß die Arduino-IDE den tatsächlichen Typ PB nicht wissen.
> Das stimmt nur zum Teil. Dem IDE ist es zwar gleich, aber avrdude führt
> ein strenges Regiment und lässt solche Schlampigkeiten nicht ohne -F
> Anweisung durchgehen:-)

Beachte bitte, in welchem Zusammenhang ich das geschrieben habe,
Anfänger war das Zauberwort.

Manfred P. schrieb:
>> Ich könnte mir aber auch
>> vorstellen wie es einen Anfänger nerven und herausfordern könnte damit
>> klarzukommen.
> Wirklich? Ich benutze die Arduino-IDE, der Bootloader meldet sich und
> der Programmupload startet. Da die Softwarekompatibilität gegeben ist,
> muß die Arduino-IDE den tatsächlichen Typ PB nicht wissen.

Gerhard O. schrieb:
> aber avrdude führt
> ein strenges Regiment und lässt solche Schlampigkeiten nicht ohne -F
> Anweisung durchgehen:-)

Mit avrdude gehörst Du nicht zur typischen Zielgruppe der Arduinos und 
bist auch kein Anfänger. Im Gegenteil, Du benutzt sie als günstige 
µC-Baugruppe außerhalb der vorgesehenen Umgebung.

von Manfred P. (pruckelfred)


Angehängte Dateien:

Lesenswert?

Jobst Q. schrieb:
> Ich mache es gerade über ISP, weil ich das fertige Gerät nicht immer
> aufschrauben will, wenn ich an der Software etwas ändern will.

Irgendwie muß man ja dran, also kein Argument für ISP.

Die aufwendige Lösung "Rueckwand.jpg", mit einem Adapterkabel den USB 
von A*Nano in die Rückwand gebraucht. Oder auch nicht, Du musst Deine 
RJ-Buchse ja auch irgendwie befestigen und verbinden.

Oder "USB_Kappe.jpg", da sitzt der Nano so, dass man seinen Mini-USB 
direkt erreichen kann.

ProMini mit Akkubetrieb "Gehaeuse_Rueck.jpg", da sitzt er auch so, dass 
ich den 6pol-Pfostenstecker direkt greifen kann, später ein Klebeschild 
drüber.

Um mir da keine Pegelprobleme zu fangen, Programmierzugang per ADUM1201 
getrennt "Gehaeuse_Rueck.jpg".

von Gerhard O. (gerhard_)


Lesenswert?

Moin,

Ich verwende manchmal solche USB Frontplatten montierbare Kabel um mit 
der Bord zu verbinden:

https://www.datapro.net/products/usb-panel-mount-b-to-socket.html

https://www.datapro.net/catalog/usb-panel-mount-cables.html

Die gibt’s auch billiger in der Bucht. Finde ich recht praktisch.

Gerhard

: Bearbeitet durch User
von Manfred P. (pruckelfred)


Angehängte Dateien:

Lesenswert?

Gerhard O. schrieb:
> Ich verwende manchmal solche USB Frontplatten montierbare Kabel um mit
> der Bord zu verbinden:
> https://www.datapro.net/catalog/usb-panel-mount-cables.html

Sowas habe ich in "Rueckwand.jpg" verbaut, Mini-USB-Stecker auf 
USB-B-Buchse.

> Die gibt’s auch billiger in der Bucht.

Ich kaufe nichts über ebay, meine kamen über Aliexpress und liegen 
preislich deutlich unter datapro.

> Finde ich recht praktisch.

Mir macht es keinen Spaß, das Loch für die Buchse zu feilen. Aber musste 
sein, weil nach Inbetriebnahme noch Optimierungen der Software notwendig 
waren.

von Gerhard O. (gerhard_)


Lesenswert?

Manfred P. schrieb:
> Gerhard O. schrieb:
>> Ich verwende manchmal solche USB Frontplatten montierbare Kabel um mit
>> der Bord zu verbinden:
>> https://www.datapro.net/catalog/usb-panel-mount-cables.html
>
> Sowas habe ich in "Rueckwand.jpg" verbaut, Mini-USB-Stecker auf
> USB-B-Buchse.
>
>> Die gibt’s auch billiger in der Bucht.
>
> Ich kaufe nichts über ebay, meine kamen über Aliexpress und liegen
> preislich deutlich unter datapro.
Die Bucht ist für uns hier weniger ein Problem. Ich habe bis jetzt immer 
gute Erfahrungen mit ALIExpress gemacht.
>
>> Finde ich recht praktisch.
>
> Mir macht es keinen Spaß, das Loch für die Buchse zu feilen. Aber musste
> sein, weil nach Inbetriebnahme noch Optimierungen der Software notwendig
> waren.
In Plastik kann man runde Löcher eigentlich recht einfach mit einer 
nicht zu feinen quadratischen Feile auf Maß bringen. Ich mußte das vor 
ein paar Wochen an meinen UV Belichter machen. Ich habe Feilen die das 
sehr leicht machen. Wenn vorhanden ist auch eine vertikale Tischfräse 
recht nützlich. Mit einem 6mm viernutigen Flach-Fräser kann man viele 
Aufgaben bequem erledigen (DB9...)

Was ich nicht ganz verstehe ist, warum der Adapterkabelhersteller um die 
USB-B Buchse herum kein rundes Führungsloch vorgesehen hat. Dann 
bräuchte man nur drei runde Löcher bohren und es sieht gleich gut ohne 
große Anstrengungen aus und man erspart sich das Feilen.

Beim Wasserhöhenmesser baute ich eine abnehmbare 12.7mm Schraubkappe ein 
um Zugang zur Nano USB Buchse zu haben. Der Kabelstecker hat dann noch 
genug Spiel.

Es ist definitiv gut, Zugang zum Nano UDB Port im eingebauten Zustand zu 
haben.

: Bearbeitet durch User
von Manfred P. (pruckelfred)


Lesenswert?

Gerhard O. schrieb:
> Beim Wasserhöhenmesser baute ich eine abnehmbare 12.7mm Schraubkappe ein
> um Zugang zur Nano USB Buchse zu haben. Der Kabelstecker hat dann noch
> genug Spiel.

https://www.mikrocontroller.net/attachment/604477/USB_Kappe.jpg

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Jörg W. schrieb:
> Ist völlig normal, dass man das tut. Auslesen der richtigen Signatur ist
> doch viel aufwändiger (und damit platzraubender), als einfach die
> gewünschten Bytes zurück zu liefern.

Aha, sicher.
Routine zum Flash auslesen und schreiben muss sowieso vorhanden sein.
Signature Bytes auslesen benötigt nur 3 zusätzliche Instruktionen.
Alles andere ist dasselbe wie beim Fusebits auslesen.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Marc V. schrieb:
> Signature Bytes auslesen benötigt nur 3 zusätzliche Instruktionen.

Ja, und? Zurückgeben einer Konstante ist trotzdem weniger Aufwand.

Sowas hat man schon vor Urzeiten gemacht, siehe AVR109:
1
$ fgrep SIGNATURE_ *
2
defines.h:#define  SIGNATURE_BYTE_1  0x1E
3
defines.h:#define  SIGNATURE_BYTE_2  0x93
4
defines.h:#define  SIGNATURE_BYTE_3  0x07
5
main.c:                sendchar( SIGNATURE_BYTE_3 );
6
main.c:                sendchar( SIGNATURE_BYTE_2 );
7
main.c:                sendchar( SIGNATURE_BYTE_1 );
8
preprocessor.sh:#define  SIGNATURE_BYTE_1  ${sig1}
9
preprocessor.sh:#define  SIGNATURE_BYTE_2  ${sig2}
10
preprocessor.sh:#define  SIGNATURE_BYTE_3  ${sig3}

Ja, natürlich kann man das auch anders machen, wenn man möchte (und 
einen hinreichend neuen AVR hat – zu Zeiten von AVR109 ließ sich sowas 
gar nicht im Programm auslesen), aber man muss es eben auch nicht, 
wenn man einen Bootloader hat, der eh nur auf genau einem vorher 
bekannten Controller läuft.

> Alles andere ist dasselbe wie beim Fusebits auslesen.

Viele Bootloader implementieren das gleich gar nicht erst, weil es 
ziemlich sinnlos ist: die lassen sich da eh nicht ändern.

von Arduino F. (Firma: Gast) (arduinof)


Lesenswert?

Jörg W. schrieb:
> weil es ziemlich sinnlos ist
Alles klar, lieber Mist zurückgeben, lügen, als auslesen.

Jörg W. schrieb:
> Ja, natürlich kann man das auch anders machen,
Ja das kann man!

Jörg W. schrieb:
> zu Zeiten von AVR109 ließ sich sowas
> gar nicht im Programm auslesen)
Das ist natürlich ein schlagkräftiges Argument: Weil es früher nicht 
ging, machen wir es heute auch nicht.
Früher war eben alles besser, sogar die Zukunft.

: Bearbeitet durch User
von Veit D. (devil-elec)


Lesenswert?

Manfred P. schrieb:

> Gerhard O. schrieb:
>> aber avrdude führt
>> ein strenges Regiment und lässt solche Schlampigkeiten nicht ohne -F
>> Anweisung durchgehen:-)
>
> Mit avrdude gehörst Du nicht zur typischen Zielgruppe der Arduinos und
> bist auch kein Anfänger. Im Gegenteil, Du benutzt sie als günstige
> µC-Baugruppe außerhalb der vorgesehenen Umgebung.

Hallo,

kennst du die Arduino IDE? Denn du verwechselt da was. Auch die Arduino 
IDE benötigt avrdude zum flashen mittels Bootloader. Weil das beim 
Gerhard nicht funktionierte, hat er danach!, seinen ISP Programmer 
angeschlossen und den BL ausgewechselt.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Arduino F. schrieb:
> lieber Mist zurückgeben, lügen

Wie kommst du auf den schmalen Pfad?

Ich sehe immer noch nicht das Problem: wenn ich einen Bootloader auf 
einen ATmega328P flashe, dann weiß ich doch, dass es ein ATmega328P ist, 
dann kann ich dem Bootloader sagen, dass er genau das als Signatur 
zurückgeben soll. Flashe ich ihn auf einen ATmega328PB, dann weiß ich 
das auch vor dem Flashen schon, und kann ihn so konfigurieren.

Warum sollte da jemand "lügen"?

Verpfuschen kann man natürlich immer alles.

"Lügen" muss ein Bootloader übrigens sowieso immer: wenn ihm gesagt 
wird, er solle ein "chip erase" machen, dann hat er dafür erstens 
schlicht gar nicht die Möglichkeit, das zu tun (was beispielsweise 
impliziert, dass er die lock bits nicht löschen kann), außerdem wird 
sich jeder sinnvoll gebaute Bootloader wohl schwerlich hüten, sich 
selbst zu entfernen. Dort "lügt" er also am Ende tatsächlich …

von Arduino F. (Firma: Gast) (arduinof)


Lesenswert?

Jörg W. schrieb:
> Ich sehe immer noch nicht das Problem: wenn ich einen Bootloader auf
> einen ATmega328P flashe, dann weiß ich doch, dass es ein ATmega328P ist,
> dann kann ich dem Bootloader sagen, dass er genau das als Signatur
> zurückgeben soll. Flashe ich ihn auf einen ATmega328PB, dann weiß ich
> das auch vor dem Flashen schon, und kann ihn so konfigurieren.
Offensichtlich hast du das Eingangsposting nicht gelesen.
Dort ist ihm die Lüge auf die Füße gefallen.

Jörg W. schrieb:
> wenn ihm gesagt
> wird, er solle ein "chip erase" machen, dann hat er dafür erstens
> schlicht gar nicht die Möglichkeit,
Ein Strohmann Argument, welches nichts mit dem Eingangsposting zu tun 
hat. Und keinesfalls die völlig unnötige Signaturlüge rechtfertigt.


Bemerke:
Der Bootloader hätte sicherlich einwandfrei funktioniert wenn er nicht 
gelogen hätte. Selber die Signatur gelesen.

: Bearbeitet durch User
von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Arduino F. schrieb:
> Offensichtlich hast du das Eingangsposting nicht gelesen.

Habe ich.

Ich halte das aber nicht für eine "Lüge" (die einen Vorsatz unterstellt, 
jemandem etwas falsches absichtlich zu erzählen), sondern schlicht für 
Schlampigkeit beim Erstellen der Teile.

> Ein Strohmann Argument

Es ist ein Hinweis darauf, dass sich ein Bootloader sowieso niemals 100 
% wie ein externer Programmer benehmen kann, egal, wie du das nun drehst 
und wendest.

von Gerhard O. (gerhard_)


Lesenswert?

Moin,

An sich ist das jetzt kein wirkliches Problem mehr. Die Moral von der 
Geschicht' ist, beim Kauf von den Chinabords immer selber den richtigen 
Optiboot via ISP draufspielen. Abgesehen davon, habe ich die Erfahrung 
gemacht, daß die China Klonen immer alte Bootloader drauf haben die mit 
dem Watchdog Reset nicht zurecht kommen.

Wenn es eben so ist, dass die Signature Bytes nicht aktuell vom BL 
gelesen werden, dann muß man eben selber aufpassen, daß der korrekte 
Optiboot draufgespielt wird. In meinen Fall bin ich davon ausgegangen, 
daß der Hersteller den korrekten Bootloader installiert hat und die sich 
vielleicht gedacht haben, daß es keine Rolle spielt. Wer weiß...

Die haben nur nicht bedacht, daß avrdude dem Bootloader wegen der 
Signature Bytes auf die Finger schaut und so eine Schummelei nicht 
übersieht und durchgehen lässt:-)

Jedenfalls, alleine wegen der Watchdog Funktion hat es Sinn, einen 
moderneren Bootloader wie Optiboot drauf zu haben.

VG,
Gerhard

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Gerhard O. schrieb:
> Abgesehen davon, habe ich die Erfahrung gemacht, daß die China Klonen
> immer alte Bootloader drauf haben die mit dem Watchdog Reset nicht
> zurecht kommen.

Das ist natürlich eh Mist.

> In meinen Fall bin ich davon ausgegangen,
> daß der Hersteller den korrekten Bootloader installiert hat

Davon würde ich natürlich auch ausgehen. Dann kann er die Teile auch 
gleich ohne Bootloader ausliefern, wenn die so mies sind und $KUNDE 
ohnehin noch mit ISP anfassen muss (egal, ob nun wegen der Signatur, dem 
Watchdog oder was anderem).

Andererseits, you get what you pay for. Solange sie da was verkaufen 
können, werden sie sicher an ihrer Strategie nichts ändern.

von Gerhard O. (gerhard_)


Lesenswert?

Jörg W. schrieb:
> Gerhard O. schrieb:
>> Abgesehen davon, habe ich die Erfahrung gemacht, daß die China Klonen
>> immer alte Bootloader drauf haben die mit dem Watchdog Reset nicht
>> zurecht kommen.
>
> Das ist natürlich eh Mist.
Ja. Deswegen bin schon seit vielen Jahren auf Optiboot umgestiegen.
>
>> In meinen Fall bin ich davon ausgegangen,
>> daß der Hersteller den korrekten Bootloader installiert hat
>
> Davon würde ich natürlich auch ausgehen. Dann kann er die Teile auch
> gleich ohne Bootloader ausliefern, wenn die so mies sind und $KUNDE
> ohnehin noch mit ISP anfassen muss (egal, ob nun wegen der Signatur, dem
> Watchdog oder was anderem).
>
> Andererseits, you get what you pay for. Solange sie da was verkaufen
> können, werden sie sicher an ihrer Strategie nichts ändern.

Ist nicht schlimm, solange man sich helfen kann. Mir würde nur ein 
unerfahrener Schüler oder User leid tun, der erst darauf kommen muß und 
möglicherweise keinen zweiten Arduino zum ISP Flashen hat oder ein 
anderes ISP Programmiergerät. An der Bord HW Qualität gibt es nichts 
wirklich auszusetzen. Die besagten Bords sind sauber gelötet und vom 
Flußmittel befreit. Kann mich eigentlich nicht beklagen. Für USD5.64 das 
Stück, nehme ich das BL Problem ohnehin ohne Murren in Kauf.

: Bearbeitet durch User
von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Gerhard O. schrieb:
> Mir würde nur ein unerfahrener Schüler oder User leid tun, der erst
> darauf kommen muß und möglicherweise keinen zweiten Arduino zum ISP
> Flashen hat oder ein anderes ISP Programmiergerät.

Der muss dann halt, wie oben beschrieben, den MCU-Typ auf der Seite der 
Arduino-IDE anpassen auf das, was der Bootloader behauptet.

von Gerhard O. (gerhard_)


Lesenswert?

Jörg W. schrieb:
> Gerhard O. schrieb:
>> Mir würde nur ein unerfahrener Schüler oder User leid tun, der erst
>> darauf kommen muß und möglicherweise keinen zweiten Arduino zum ISP
>> Flashen hat oder ein anderes ISP Programmiergerät.
>
> Der muss dann halt, wie oben beschrieben, den MCU-Typ auf der Seite der
> Arduino-IDE anpassen auf das, was der Bootloader behauptet.

Daran dachte ich einen Moment auch. Nur steht im Header der config.conf 
Datei, daß man diese Datei nicht verändern sollte, weil jene bei jedem 
IDE Upgrade erneuert wird. Da müsste man also aufpassen, daß man das 
dann nicht übersieht.

von Sebastian W. (wangnick)


Lesenswert?

Gerhard O. schrieb:
> Daran dachte ich einen Moment auch. Nur steht im Header der config.conf
> Datei, daß man diese Datei nicht verändern sollte, weil jene bei jedem
> IDE Upgrade erneuert wird. Da müsste man also aufpassen, daß man das
> dann nicht übersieht.

Versteh ich nicht. Der gemeine User kauft solch einen Nano, stellt einen 
Nano in der Arduino IDE ein, und legt los. Dass er eigentlich einen 
328PB und nicht einen 328P hat kümmert ihn dabei nicht. Oder?

LG, Sebastian

von Gerhard O. (gerhard_)


Lesenswert?

Sebastian W. schrieb:
> Gerhard O. schrieb:
>> Daran dachte ich einen Moment auch. Nur steht im Header der config.conf
>> Datei, daß man diese Datei nicht verändern sollte, weil jene bei jedem
>> IDE Upgrade erneuert wird. Da müsste man also aufpassen, daß man das
>> dann nicht übersieht.
>
> Versteh ich nicht. Der gemeine User kauft solch einen Nano, stellt einen
> Nano in der Arduino IDE ein, und legt los. Dass er eigentlich einen
> 328PB und nicht einen 328P hat kümmert ihn dabei nicht. Oder?
>
> LG, Sebastian

Es ist nur avrdude, der die falschen Signature Bytes beanstandet und den 
Programmier Zyklus abbricht. Schau Dir meine Screenshot Bilder höher im 
Thread an. Alles andere mit dem IDE ist in Ordnung. Es ist der falsche 
Bootloader der hier Zicken macht, weil er falsche Information liefert 
und avrdude dann abbricht.

Die Lösung ist halt, den offiziell richtigen Bootloader draufzuspielen.

Optiboot gibt es für die verschiedensten uC. Man kann Optiboot selber 
konfigurieren und bauen, weil das komplette Source Code Projekt frei 
erhältlich ist. (habe ich gemacht um z.B. einen 4MHz Pro-Mini zu haben)

Oder man geht zur Github Seite von Watterott und ladet sich dort die 
korrekte 328pb Optiboot herunter. Ich habe ein paar der Watterott Bords. 
Oder man kopiert einen funktionierenden BL für den gewünschten uC.

: Bearbeitet durch User
von Sebastian W. (wangnick)


Lesenswert?

Gerhard O. schrieb:
> Es ist nur avrdude, der die falschen Signature Bytes beanstandet und den
> Programmier Zyklus abbricht.

Ja, aber doch nur, weil in der IDE nicht Arduino Nano, sondern 
Atmega328PB konfiguriert ist! Oder was verstehe ich hier falsch?

LG, Sebastian

von Gerhard O. (gerhard_)


Lesenswert?

Sebastian W. schrieb:
> Gerhard O. schrieb:
>> Es ist nur avrdude, der die falschen Signature Bytes beanstandet und den
>> Programmier Zyklus abbricht.
>
> Ja, aber doch nur, weil in der IDE nicht Arduino Nano, sondern
> Atmega328PB konfiguriert ist! Oder was verstehe ich hier falsch?
>
> LG, Sebastian

Das stimmt. Deswegen erwartet avrdude beim Bootloader, dass er die 
korrekte 0x1E9516 zurück gibt. Aber der China Nano gibt 1e950F aus und 
dann bricht avrdude ab.

Ich verwende das Watterott Paket (da ich auch mit deren Pro-Mini mit dem 
328PB arbeite) und stelle natürlich den 328PB ein. Bei den Watterott 
Bords funktioniert ja alles auch einwandfrei. Es ist der "böse" China 
Nano der mit einem alten 328P BL geliefert wird. Der Fehler ist alleine 
auf den Fakt zurückzuführen, dass der China Hersteller irgendeinen alten 
328P BL drauf spielte.

Das ist auch kein Malheur wenn man das mal weiss, aber dem 
"unsuspecting" User wird vielleicht uebel mitgespielt.

Die Bottom Line ist, dass IDE Einstellung und Bootloader zueinander 
passen müssen, was avrdude betrifft und ein passender BL in der HW 
installiert sein soll. Das ist alles im Grunde genommen. Das Problem 
liegt ganz auf der Seite des Herstellers. Alles andere im Arduino 
Bereich ist in Ordnung.

von Veit D. (devil-elec)


Lesenswert?

Hallo,

Sebastian, verstehst du das Problem wirklich nicht? Kann doch nicht 
sein.

Wenn jemand der Lesen kann und bewusst den 'PB' bestellt und seine IDE 
demzufolge für 'PB' konfiguriert, der steht vor dem besagten Problem was 
Gerhard erfahren hat.

Wenn natürlich ein Brain irgendeinen Nano bestellt und keine Ahnung von 
der Bedeutung der Bezeichnungen hat, der hat Glück. Nur von solchen 
Brains sollte man nicht pauschal ausgehen.

von Chris K. (kathe)


Lesenswert?

Du verwendest 6.3.
Schon mal in den release notes zu avrdude nachgeschaut in Bezug zu 
328PB?

6.4:
 * New devices supported:

    - ATmega328PB
....
7.
- ATmega328P reported as lgt8fx328p #812
Fix avrdude.conf timings for ATmega328PB and other parts #1001

https://github.com/avrdudes/avrdude/blob/main/NEWS

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Chris K. schrieb:
> Schon mal in den release notes zu avrdude nachgeschaut in Bezug zu
> 328PB?

Was hat das damit zu tun?

Natürlich sind beide unterstützt (genau genommen alle drei, der 
ursprüngliche ATmega328 mit 0x1e 0x95 0x14, der ATmega328P mit 0x1e 0x95 
0x0f und der ATmega328PB mit 0x1e 0x95 0x16).

von Sebastian W. (wangnick)


Lesenswert?

Veit D. schrieb:
> Nur von solchen Brains sollte man nicht pauschal ausgehen.

Wie gesagt, ich denke dass der Hersteller genau von solchen Brains 
ausgegangen ist, die bei Konfiguration "Arduino Nano" ob der 
Fehlermeldung bei Rückgabe der 328PB-Signatur verzweifelt das Produkt 
als defekt retournieren würden.

Der umgekehrte Fall, dass ein User extra eine sonderliche Erweiterung 
"328PB" in die Arduino-IDE installiert, um auch ja alle tollen Features 
des 328PB nutzen zu können, der also zeigt dass es weiß was er tut, und 
dann an der Fehlermeldung durch die gefakte 328P-Signatur scheitert und 
dadurch das Produkt retourniert, ist für den Hersteller halt relativ 
unwahrscheinlicher.

LG, Sebastian

von Manfred P. (pruckelfred)


Lesenswert?

Veit D. schrieb:
> Sebastian, verstehst du das Problem wirklich nicht? Kann doch nicht
> sein.

Er hat das Problem verstanden, in gleicher Weise, wie ich es schrieb:

Manfred P. schrieb:
> Wirklich? Ich benutze die Arduino-IDE, der Bootloader meldet sich und
> der Programmupload startet. Da die Softwarekompatibilität gegeben ist,
> muß die Arduino-IDE den tatsächlichen Typ PB nicht wissen.

Manfred P. schrieb:
> Mit avrdude gehörst Du nicht zur typischen Zielgruppe der Arduinos und
> bist auch kein Anfänger. Im Gegenteil, Du benutzt sie als günstige
> µC-Baugruppe außerhalb der vorgesehenen Umgebung.

Sebastian W. schrieb:
> Veit D. schrieb:
>> Nur von solchen Brains sollte man nicht pauschal ausgehen.
> Wie gesagt, ich denke dass der Hersteller genau von solchen Brains
> ausgegangen ist, die bei Konfiguration "Arduino Nano" ob der
> Fehlermeldung bei Rückgabe der 328PB-Signatur verzweifelt das Produkt
> als defekt retournieren würden.

Genau so sehe ich die Zielgruppe: Nano auswählen, anschließen und fertig 
- egal, ob ein B oder PB drauf ist.

Ich habe keine Ahnung, ob Arduino eine neuere IDE hat, wo man 
ausdrücklich "328PB" angeben kann.

von Arduino F. (Firma: Gast) (arduinof)


Lesenswert?

Manfred P. schrieb:
>  ob Arduino eine neuere IDE hat, wo man
> ausdrücklich "328PB" angeben kann.

Arduino kennt das Konzept der hinzuladbaren Hardware Definitionen.
Auch für PB Boards.

Manfred P. schrieb:
> Ich habe keine Ahnung,
Offensichtlich.

Manfred P. schrieb:
> Genau so sehe ich die Zielgruppe: Nano auswählen, anschließen und fertig
> - egal, ob ein B oder PB drauf ist.
Welch ein Unsinn.

: Bearbeitet durch User
von Gerhard O. (gerhard_)


Lesenswert?

Manfred P. schrieb:
> Ich habe keine Ahnung, ob Arduino eine neuere IDE hat, wo man
> ausdrücklich "328PB" angeben kann.

Moin,

Was den 328PB betrifft, hat Watterott und ein paar andere Bord Packages 
dafür geschaffen, die alles berücksichtigen. Auch der ATMEGA1284 ist 
unterstützt, sowie die neuen AVR128Dx Typen.

Für 328PB:-
https://github.com/watterott/ATmega328PB-Testing
Man gibt dann in preferences diese commandline ein:
https://github.com/watterott/ATmega328PB-Testing/raw/master/package_m328pb_index.json
und alles wird vollautomatisch mithineingezogen.

Wenn das mal installiert ist, kann man den 328PB und Optionen anwählen.

https://github.com/topics/atmega328pb

Für ATMEGA1284 gibt es den MightyCore:
https://github.com/MCUdude/MightyCore

Für AVR128Dx:
https://github.com/SpenceKonde/DxCore

Mit diesen "Plug-Ins" werden dann alle diese Varianten im Arduino IDE 
kompatibel. Nur wenn man "bare Metall" programmiert, dann ist man mehr 
auf sich selber gestellt.

Gerhard

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

Manfred P. schrieb:
> Nano auswählen, anschließen und fertig
> - egal, ob ein B oder PB drauf ist.

Mit der Taktik kommst du nicht mehr weit, denn es gibt inzwischen 
zahlreiche völlig andere "Arduino Nano" Boards.
https://www.arduino.cc/en/hardware#nano-family

von Holger M. (derholger)


Lesenswert?

Hallo, ich hänge mich hier mal mit an. Habe das gleiche Problem.
Gekaufte China- Klone ATMEGA 328PB. Ich habe von Watterott / Github das 
genannte Board Package in der IDE installiert und über Bordverwalter 
eingestellt. Ich will mit Hilfe eines UNO diesem 328PB, welcher auf 
einem Nano Board einen defekten 328P ersezt, einen Bootloader per ISP 
brennen. Doch hier taucht eine andere Signatur auf:
0x1F 95 17, erwartet wird für den 328PB 1E 95 16. AVRDude bricht ab. 
Gibt es noch andere Board Packages, die diese Signatur beinhalten? Oder 
eine andere Lösung, den Bootloader zu brennen?

von Sebastian W. (wangnick)


Lesenswert?

Holger M. schrieb:
> Hallo, ich hänge mich hier mal mit an. Habe das gleiche Problem.
> Gekaufte China- Klone ATMEGA 328PB. Ich habe von Watterott / Github das
> genannte Board Package in der IDE installiert und über Bordverwalter
> eingestellt. Ich will mit Hilfe eines UNO diesem 328PB, welcher auf
> einem Nano Board einen defekten 328P ersezt, einen Bootloader per ISP
> brennen. Doch hier taucht eine andere Signatur auf:
> 0x1F 95 17, erwartet wird für den 328PB 1E 95 16. AVRDude bricht ab.
> Gibt es noch andere Board Packages, die diese Signatur beinhalten? Oder
> eine andere Lösung, den Bootloader zu brennen?

Bei welchem Schritt genau taucht diese Signatur auf? Beim Hochladen des 
ArduinoISP-Programms auf den Uno? Beim Benutzen des ArduinoISP-Programms 
auf dem Uno zum Programmieren des neuen Bootloaders auf den 
Atmega328PB-Nano? Oder wobei genau?

LG, Sebastian

von Holger M. (derholger)


Lesenswert?

Das taucht auf, wenn ich den Bootloader brennen will. Also auf dem UNO 
ist das Pog "ArduinoISP" geladen. Das hat problemlos funktioniert. Dann 
in der IDE "Arduino as ISP" gewählt, in "Werkzeuge" das Bord gewählt und 
dann "Bootloader brennen".

von Holger M. (derholger)


Angehängte Dateien:

Lesenswert?

Habe mal schnell einen Screen Shoot gemacht

von Holger M. (derholger)


Angehängte Dateien:

Lesenswert?

Hab gerade gesehen. das wichtigste hat gefehlt, daher noch ein Versuch

von Gerhard O. (gerhard_)


Lesenswert?

Moin,

Schau mal ins "config.conf" rein. Vielleicht kann man dort die Signature 
vorübergehend anpassen.

Es gibt such eine Commandline Option für avrdude "-E" um diesen Test zu 
unterdrücken.

Habe das nicht ausprobiert, weil ich lieber mit Atmel Studio 7.0 und dem 
AVR ISP MKII arbeite. Da stört das nicht.

Wenn Du das ähnlich machen könntest, dann brauchst Du nicht mit avrdude 
streiten bzw. sein Setup zu modifizieren.

Gerhard

: Bearbeitet durch User
von Holger M. (derholger)


Lesenswert?

Gerhard O. schrieb:
> Moin,
>
> Schau mal ins "config.conf" rein. Vielleicht kann man dort die Signature
> vorübergehend anpassen.
>
> Es gibt such eine Komnandoline Option für avrdude "-E" um diesen Test zu
> unterdrücken.
>
> Habe das nicht ausprobiert, weil ich lieber mit Atmel Studio 7.0 und dem
> AVR ISP MKII arbeite. Da stört das nicht.
>
> Wenn Du das ähnlich machen könntest, dann brauchst Du nicht mit avrdude
> streiten bzw. Zu modifizieren.
>
> Gerhard

Danke, da werd ich mal danach suchen.
Habe mir aber auch schon überlegt, ob ich das nicht mit Atmel Studio und 
USB-ISP mache. Ich besitze einen Elnec Programmer T51Prog2, auf dem ist 
dieser ATMEGA 328P auswählbar, in der letzten unterstützten 
Softwareversion (leider nur bis 2021) war auch der 328PB, aber der 
verweigerte auch das Brennen (noch außerhalb des Arduino in einem TQFP32 
Adapter). Per ISP könnte ich mein Prog doch eigentlich auch ohne den 
Bootloader brennen? Das erzeugte Hex- oder Bin File kann man doch sicher 
auch mit Atmel Studio brennen?

von Gerhard O. (gerhard_)


Lesenswert?

Holger M. schrieb:
> Gerhard O. schrieb:
>> Moin,
>>
>> Schau mal ins "config.conf" rein. Vielleicht kann man dort die Signature
>> vorübergehend anpassen.
>>
>> Es gibt such eine Komnandoline Option für avrdude "-E" um diesen Test zu
>> unterdrücken.
>>
>> Habe das nicht ausprobiert, weil ich lieber mit Atmel Studio 7.0 und dem
>> AVR ISP MKII arbeite. Da stört das nicht.
>>
>> Wenn Du das ähnlich machen könntest, dann brauchst Du nicht mit avrdude
>> streiten bzw. Zu modifizieren.
>>
>> Gerhard
>
> Danke, da werd ich mal danach suchen.
> Habe mir aber auch schon überlegt, ob ich das nicht mit Atmel Studio und
> USB-ISP mache. Ich besitze einen Elnec Programmer T51Prog2, auf dem ist
> dieser ATMEGA 328P auswählbar, in der letzten unterstützten
> Softwareversion (leider nur bis 2021) war auch der 328PB, aber der
> verweigerte auch das Brennen (noch außerhalb des Arduino in einem TQFP32
> Adapter). Per ISP könnte ich mein Prog doch eigentlich auch ohne den
> Bootloader brennen? Das erzeugte Hex- oder Bin File kann man doch sicher
> auch mit Atmel Studio brennen?

Damals kopierte ich einfach das Hex Image vom Watterott 328pb und 
brannte es dann in den anderen 328pb. Das ging ohne irgendwelche 
Schwierigkeiten. Allerdings kopierst Du ein irgendein schon geladenes 
Programm mit. Aber das macht ja nichts.

Ich habe nur den AVR-ISP und einen STK500. Seit letztes Jahr noch den 
ATMEL ICE wegen UPDI. Deinen Elnec kenne ich leider nicht.

Ist blöd, daß der Elnec beim 328pb nicht mitspielen will. Dann wäre es 
möglicherweise doch leichter den config.conf zu modifizieren, so daß die 
Signaturen wie vereinbart passen.

Du kannst avrdude auch mit Deiner eigenen Commandline aufrufen. Das habe 
ich einmal gemacht und hat funktioniert.

von Veit D. (devil-elec)


Lesenswert?

Hallo,

@ Holger:
Hast du den UNO als temporären Programmer auch richtig beschalten? Viele 
Leute  vergessen den Kondensator der den Reset des UNO verhindern muss. 
Wenn das nicht klappt versucht man beim Bootloader brennen immer wieder 
den UNO zu flashen statt den Ziel Controller der am UNO hängt. 
Glücklicherweise verhindert die Signaturprüfung immer wieder 
Schlimmeres.

Übrigens fragt avrdude in dem Fall hier vom 328PB die echte Signatur ab. 
avrdude will ja nicht mit dem möglicherweise vorhandenen Bootloader vom 
328PB reden. Das heißt die Signatur vom 328PB muss stimmen.

: Bearbeitet durch User
von Holger M. (derholger)


Lesenswert?

Hallo Veit,
am Reset Pin habe ich einen kleinen C 0,1µ. Eventuell zu klein? Ich hol 
mal nen 10µF. Ich meld mich gleich nochmal

von Veit D. (devil-elec)


Angehängte Dateien:

Lesenswert?

Hallo,

100nF sind zu klein. 10µF sollten es schon sein.

Desweiteren kannst du erstmal den Kontakt testen ohne Dateiangabe. Also 
eine Art Pingtest. Sowas in der Art.
avrdude -c avrispmkII -p m328pb -v
oder
avrdude -c avrispmkII -p m328pb -v -P usb

Parameter/Optionen anpassen.

Wenn die Signatur und alles andere passt sollte keine Fehlermeldung 
kommen. Erst wenn das passt kannste mit flashen weitermachen.

von Holger M. (derholger)


Angehängte Dateien:

Lesenswert?

Also mit 10µ ändert sich auch nichts. Immer diese Signatur 1F 95 17! 
Steckt da am Ende ganz etwas anderes drin? Aufdruck ist aber eindeutig 
Atmega 328PB

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

1E 95 17 wäre ein ATmega324P. Der sieht ganz anders aus. :-) 1F xx xx 
ist ein ganz anderer Hersteller …

Irgendwas ist an dem Chip nicht in Ordnung. Wie sieht er denn auf der 
Rückseite aus? Früher hatte Atmel da die Losnummer nochmal drauf 
geschrieben, Microchip scheint das nicht mehr zu machen.

: Bearbeitet durch Moderator
von Veit D. (devil-elec)


Angehängte Dateien:

Lesenswert?

Hallo,

die Beschriftung ist anders. Zum Vergleich ein Original ... entweder war 
es ein Sample von Microchip oder bei Mouser bestellt.
Wo hast du deine denn her?

: Bearbeitet durch User
von Björn W. (bwieck)


Lesenswert?

Kann auch einfach ein kaputter Chip sein.
In der falschen Signatur ist immer Bit0 gesetzt.

von Holger M. (derholger)


Angehängte Dateien:

Lesenswert?

Ich habe meine beim ALI gekauft. So langsam wundere ich mich nicht mehr. 
Es ist sicher so, dass da ein 324 drin steckt, wie Jörg schreibt. 
Neulich hatte ich Transistoren BD 237 bestellt und lt. Aufdruck auch 
bekommen. Beim probehalber Durchmessen habe ich festgestellt, dass da 
eine Freilaufdiode integriert war. Lt. Datenblatt gibt es im BD 237 aber 
gar keine und hätte in meiner Schaltung auch gestört! So langsam gehe 
ich davon aus, dass das wirklich kein 328PB ist, ebenso wie das bei den 
BD's war. Hatte ich damals reklamiert und habe mein Geld wieder 
bekommen, auf Rücksendung haben sie verzichtet. Musste ich allerdings 
beweisen, hatte dazu bei der Messung ein Video dazu gemacht und 
geschickt.

Jetzt werde ich erst mal darüber schlafen!
Es waren ja nur 10 St., die ich gekauft hatte......
Danke an alle und Gute N8!

von Holger M. (derholger)


Angehängte Dateien:

Lesenswert?

Hab mal noch die Rückseite abgebildet:

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Veit D. schrieb:
> Zum Vergleich ein Original

Der ist aus der Vor-Microchip-Zeit.

Meine aktuellen sehen ähnlich aus wie der gezeigte.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Holger M. schrieb:
> Hab mal noch die Rückseite abgebildet:

OK, meine sind in Taiwan montiert worden und nicht in Thailand, die 
sehen etwas anders aus (nur ein Punkt in der Mitte).

Bleibt natürlich die versemmelte Signatur. Du könntest probieren, auf 
der Kommandozeile diese mit der Option "-F" zu überschreiben und dann zu 
sehen, wie sich der restliche Chip benimmt.

Holger M. schrieb:
> Es ist sicher so, dass da ein 324 drin steckt, wie Jörg schreibt.

Nein, glaube ich nicht. Erstens ist da immer noch die falsche Vendor ID, 
zweitens ist der ATmega324 viel größer. Keiner macht den Aufwand, einen 
Chip aus einem existierenden Gehäuse zu extrahieren und neu zu verpacken 
/ bonden.

Da ist einfach die Signatur versemmelt worden, von wem auch immer und 
warum auch immer. Ob es dann wirklich ein "PB" ist, könnte man nur durch 
eine Firmware klären, die die erweiterten Features versucht zu benutzen. 
Möglicherweise ist es irgendwie ein recycelter "P".

von Björn W. (bwieck)


Lesenswert?

Holger M. schrieb:
> Ich habe meine beim ALI gekauft. So langsam wundere ich mich nicht mehr.
> Es ist sicher so, dass da ein 324 drin steckt, wie Jörg schreibt.

Für einen Mega324 hätte der Chip zuwenige Pins.

von Veit D. (devil-elec)


Lesenswert?

Hallo,

klingt zwar vielleicht immer komisch. Aber bei Ali, ebay & Co kauft man 
keine Halbleiter. Früher hatte man Pech wenn man eine Fälschung bekommen 
hat. Heute hat man Glück wenn es keine Fälschung bzw. ein 
funktionierendes Irgendwas ist. Und billiger sind die auf den diversen 
Plattformen im Grunde auch nicht mehr.

Nach der Info vom Jörg habe ich das Manual zum 324P aufgeschlagen. 
Danach gibt den nur im 44 Pin TQFP Gehäuse. Das passt mit deinem leider 
hinten und vorne nicht. Egal wie man es dreht und wendet. Wer weiß was 
da drin steckt. Warte auf die nächste Mouser Sammelbestellung im Forum 
Marktplatz und kauf Originale. Das erspart viel Frust und Zeit.

Ich kann es mir beim besten Willen nicht vorstellen das die mit falscher 
Signatur das Werk verlassen. Vorne raus.  :-)  Im dümmsten Fall landet 
Schrott durch irgendwelche dunklen Kanäle bei Ali & Co und damit 
schließt sich der Kreis das man bei denen keine Halbleiter kauft.

Wenn du ganz viel Zeit und Forscherdrang haben solltest, änderst du in 
der avrdude Config die Signatur und testet den durch. Ich würde mir das 
nicht antun. Dafür sind die zu billig.  :-)

von Holger M. (derholger)


Angehängte Dateien:

Lesenswert?

Jo, hast Recht. Muss mal sehen, was ich damit noch anstelle. Habe ja 
auch noch einen gewissen Vorrat an neuen NANOS hier liegen. Mit dem 
328P. Denen muss ich allerdings auch den neueren Bootloader verpassen, 
weil ich auch den Watchdog nutzen muss....
Aber damit funktioniert das ja, hatte ich schon gemacht.
Gruß Holger

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Wie gesagt, den Signatur-Test kannst du bei AVRDUDE mit -F 
überschreiben. Dann musst du halt nur sehen, was der restliche Chip denn 
wirklich ist. Ein alter ATmega328, ein ATmega328P, oder ein ATmega328PB?

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Veit D. schrieb:
> Ich kann es mir beim besten Willen nicht vorstellen das die mit falscher
> Signatur das Werk verlassen.

Gewiss nicht. Ich vermute eher, dass da alte Chips "aufgemöbelt" worden 
sind und man sich beim Umprogrammieren der Signatur vertan hat.

von Veit D. (devil-elec)


Lesenswert?

Hallo,

da kann im Keller zwischen neu bonden, vergießen und lasern schon einmal 
was schief gehen. Dabei wußte der Letzte nicht was der Erste vergossen 
hat.  :-)  :-)

von Rene K. (xdraconix)


Lesenswert?

Gerhard O. schrieb:
> nein, das stimmt nicht. Es war avrdude, das sich über den Nano genervt
> hatte. Guck mal auf die screen captures.

Dort hast du unter avrdude als Programmer "Arduino" dies liest den 
Bootloader aus. Mit dem ISP unter AVRDUDE müsste er selbstverständlich 
auch die richtigen Fuses und Signatur bringen. Unter AS7 mit einem ISP 
liest du selbstverständlich die fest gebrannten Fuses des Chips aus - 
den ISP interessiert logischerweise der Bootloader überhaupt nicht da er 
ja direkt auf Flash und Rom zugreift ohne über einen Bootloader zu 
gehen. (Deswegen kann man mit einem ISP ja auch den Bootloader 
schreiben)

: Bearbeitet durch User
von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Veit D. schrieb:
> Dabei wußte der Letzte nicht was der Erste vergossen hat.  :-)  :-)

Er hätte ja zumindest wissen können, dass der Chip von Atmel ist und die 
richtige Vendor ID in die Signatur schreiben …

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.