Forum: Offtopic Wer macht denn sowas? (Arduino-Schimpfe)


von Baku M. (baku)


Angehängte Dateien:

Lesenswert?

Moin zusammen!
Mir fiel leider kein besserer Titel ein, deswegen habe ich das gleich 
selber nach 'Offtopic' verschoben.

Mir gingen bislang ja diese ganzen Arduino-bashing-threads am Arsch 
vorbei, soll doch Arduino so eine tolle Plattform sein, um auch bislang 
desinteressierte -insbesondere junge- Menschen für die spannenende 
Wunderwelt der Mikroprozessorei zu begeistern, was ich durchaus 
befürworte.
OK, daß Steckmodule heute 'Shields' heissen und Programmfragmente 
'Sketches', damit kann ich ja leben. Sprache ist stetigem Wandel 
unterworfen, und der 'Negerkuß' meiner Kindheit wird heute auch anders 
genannt.
Warum man heute Schaltpläne durch bunte Bilder, auf denen bunte Drähte 
in Steckbretter gesteckt werden, ersetzt, was meiner Meinung nach dem 
Verständnis des ganzen nicht förderlich ist, aber dafür dem dressierten 
Affen erlaubt, ein Erfolgserlebnis zu haben, verstehe ich ja noch. Bei 
einer Frustrationstoleranz von genau 0 ('Haben sie ihr Kind heute schon 
gelobt?') muß man mit den armen Seelchen feinfühlig umgehen, damit sie 
nicht gleich wieder den Spaß an der Elektronik verlieren und doch lieber 
Jura oder BWL studieren.
Kann ich ja alles noch irgendwie nachvollziehen.

Aber WARUM wird ein Arduino jedes mal, wenn man sich mit einem Terminal 
auf den eigebauten USB-seriell-Konverter mit einem Terminal verbindet, 
resetet???
Die haben da überall extra einen Kondensator (siehe Bild) eingebaut, 
damit der Prozessor beim Herstellen einer seriellen Verbindung 
zurückgesetzt wird!
Ja voll Supa! Und wenn man den nicht gleich weggeflasht hat, meldet sich 
zuerst der Bootloader.
Wenn man sich seriell darauf verbindet.

Na gut, sich seriell auf irgendwelche Geräte zu verbinden ist 
old-fashioned. Aber manchmal ist das eben das einfachste Mittel der 
Wahl! Ganz ohne WLAN- Ethernet oder Bluetoth-Shield kann ich mit dem 
Prozessor kommunizieren. An der Konsole.
HA, da bin ich auf den Punkt gekommen, dazu muß man Lesen und Schreiben 
können...


So! Dem langen Gegreine ein Ende:
Wenn man bei den ganz billigen Arduino-V3-Clones aus China den 
Bootloader wegflasht, das 'Boot reset vecor enabled' Bit löscht UND 
diesen bekloppten Kondensator zwischen DTR und 'Reset' auslötet, bekommt 
man für billig Geld echt brauchbare Bastlerhardware.

Was ich am Ende nicht verstehe ist, warum man diesen Kondensator 
eingebaut hat!
Mit einer entsprechenden Codesequenz lässt sich ein ATMega sowas von 
resetten. Und die Schwachmaten löten da extra einen Kondensator ein!!!
Wie doof ist das denn?

von Dirk J. (dirk-cebu)


Lesenswert?

Baku M. schrieb:
> Mit einer entsprechenden Codesequenz lässt sich ein ATMega sowas von
> resetten. Und die Schwachmaten löten da extra einen Kondensator ein!!!

Der Kondensator ist für diejenigen, die mit einer "entsprechenden 
Codesequenz" nichts anfangen können und die Schlauen brauchen eben nur 
den Kondensator rauskneifen. Das ist für alle Beteiligten der einfachere 
Weg.

von Baku M. (baku)


Lesenswert?

Dirk J. schrieb:
> Der Kondensator ist für diejenigen, die mit einer "entsprechenden
> Codesequenz" nichts anfangen können und die Schlauen brauchen eben nur
> den Kondensator rauskneifen. Das ist für alle Beteiligten der einfachere
> Weg.

Ja, da wirst du Recht haben...
IdS!
Baku

von Matthias X. (current_user)


Lesenswert?

Wann passiert der Reset? Beim anstecken an USB oder beim öffnen des 
Ports?

Du kannst das DTR Signal doch per Terminal steuern. Was passiert wenn du 
es vor dem verbinden auf High schaltest? Dann sollte kein Reset 
ausgelöst werden, man hätte aber den Vorteil dass man per USB einen 
Reset auslösen kann wenn nötig.

von Jan H. (jan_m_h)


Lesenswert?

Der Arduino wird vom DTR in Reset gezogen, damit der Bootloader von der 
IDE aus gestartet werden kann. Kondensator rauslöten funktioniert, macht 
aber mit dem Bootloader Ärger, da der eine halbe Sekunde timeout hat.

Du könntest aber auch DTR am Terminal ausschalten.

von Baku M. (baku)


Lesenswert?

Jan H. schrieb:
> Du könntest aber auch DTR am Terminal ausschalten.

Wo geht denn das bei putty?

von Paul B. (paul_baumann)


Lesenswert?

Baku M. schrieb:
> Wo geht denn das bei putty?

Frag Mutti.

mfG Paul

von Baku M. (baku)


Lesenswert?

Ich wollte aber ne Antwort...

von Vlad T. (vlad_tepesch)


Lesenswert?

wenn du die 'flow control' auf 'none' stellst, sollte er die anderen 
(außer RX, TX) Leitungen brav in Ruhe lassen

von Baku M. (baku)


Lesenswert?

Vlad T. schrieb:
> wenn du die 'flow control' auf 'none' stellst, sollte er die anderen
> (außer RX, TX) Leitungen brav in Ruhe lassen

Flasch :-)
DTR signalisiert die Betriebsbereitschaft des Endgerätes. Wenn 'flow 
control' ausgeschaltet ist, werden DTR und RTS dauerhaft aktiv 
geschaltet (z.B. um einem Modem zu signalisieren, daß es jetzt loslegen 
kann), sobald die Schnittstelle geöffnet wird.
Wenn 'flow control' eingeschaltet ist, werden -je nach Implementierung- 
die Steuersignale benutzt, um dem Sender zu signalisieren, daß er mal ne 
Pause machen soll, weil der Empfänger mit der Verarbeitung der 
Empfangsdaten nicht weiterkommt, dafür werden aber üblicherweise RTS/CTS 
benutzt, gelegentlich auch DTR/DSR.
Das wäre dann natürlich völlig Panne, weil jedesmal der Arduino resettet 
wird...
Eine Terminalsoftware müsste schon ganz bewusst DTR nicht setzen, wenn 
sie gestartet wird.
Also: Kondensator raus und gut :-)

Es grüßt
Baku

von Jan H. (jan_m_h)


Lesenswert?

Baku M. schrieb:
> Eine Terminalsoftware müsste schon ganz bewusst DTR nicht setzen, wenn
> sie gestartet wird. Also: Kondensator raus und gut :-)

Geht bei HTerm, aber man kann es nur bei geöffneter Verbindung 
umstellen. Bleibt dann aber auch nach dem Disconnect erhalten.

von Chris D. (myfairtux) (Moderator) Benutzerseite


Lesenswert?

Ich hatte bisher dasselbe Problem, wenn ich ein terminal zu unserem 
3D-Drucker (Arduino Mega 2560) öffnen wollte: unnötiger Reset

(Da ich da keine große Arbeit investieren wollte und wir sonst keinen 
Arduino nutzen, hatte ich das Problem bisher nicht weiter verfolgt.)

Habe ich das jetzt richtig verstanden: Kondensator rausnehmen reicht? 
oder ist der neue Bootloader zwingend?

von Thomas E. (thomase)


Lesenswert?

Chris D. schrieb:
> Habe ich das jetzt richtig verstanden: Kondensator rausnehmen reicht?
> oder ist der neue Bootloader zwingend?

Bei meinem 2560-Board steckt der noch drin. Hat mich bisher nicht 
gestört. Aber aus meinem Uno habe ich den rausgenommen, weil sonst dW 
nicht funktioniert. Der macht dann auch keinen automatischen Reset mehr.

mfg.

von Jan H. (jan_m_h)


Lesenswert?

Chris D. schrieb:
> Habe ich das jetzt richtig verstanden: Kondensator rausnehmen reicht?
> oder ist der neue Bootloader zwingend?

Kondensator raus reicht, aber dann musst du zum flashen über den 
Bootloader von Hand resetten und innerhalb einer halben Sekunde die 
Übertragung starten. Sollte der Bootloader also häufiger benutzt werden, 
wäre es ratsam, den timeout zu erhöhen.

von Chris D. (myfairtux) (Moderator) Benutzerseite


Lesenswert?

Jan H. schrieb:
> Chris D. schrieb:
>> Habe ich das jetzt richtig verstanden: Kondensator rausnehmen reicht?
>> oder ist der neue Bootloader zwingend?
>
> Kondensator raus reicht, aber dann musst du zum flashen über den
> Bootloader von Hand resetten und innerhalb einer halben Sekunde die
> Übertragung starten. Sollte der Bootloader also häufiger benutzt werden,
> wäre es ratsam, den timeout zu erhöhen.

Ah ok, alles klar.

Ich hab gerade nochmal im originalen MEGA2560-Schaltplan geguckt. Dort 
findet sich hinter dem Kondensator sogar eine Lötbrücke "Reset-En", die 
allerdings selbst wieder dauerhaft gebrückt wurde - warum auch immer.

Ich nutze hier gerne CuteCom. Leider scheint dort die Möglichkeit der 
DTR-Deaktivierung zu fehlen.

von Jan H. (jan_m_h)


Lesenswert?

Chris D. schrieb:
> Dort findet sich hinter dem Kondensator sogar eine Lötbrücke "Reset-En",
> die allerdings selbst wieder dauerhaft gebrückt wurde - warum auch
> immer.

Wenn's vom Abstand her passt, könnte man ja dort einen Jumper oder 
kleinen Schalter einlöten, dann kann man den automatischen Reset 
umschaltbar machen.

von Chris D. (myfairtux) (Moderator) Benutzerseite


Lesenswert?

Jan H. schrieb:
> Chris D. schrieb:
>> Dort findet sich hinter dem Kondensator sogar eine Lötbrücke "Reset-En",
>> die allerdings selbst wieder dauerhaft gebrückt wurde - warum auch
>> immer.
>
> Wenn's vom Abstand her passt, könnte man ja dort einen Jumper oder
> kleinen Schalter einlöten, dann kann man den automatischen Reset
> umschaltbar machen.

Ja, das werde ich auch tun - der Jumper ist ein wenig "Gepfriemel", aber 
es sollte gehen.

Die Brücke ist übrigens deswegen im Schaltplan gebrückt, weil man 
offenbar die sonst nötige Zinnperle einsparen wollte (sie dürfte bei 
maschineller Lötung schwierig bis unmöglich sein). Man muss also nur die 
dünne Leitung zwischen der Brücke mit einem scharfen Messer kappen :-)

von Robert L. (lrlr)


Lesenswert?

bitte nicht immer alle arduino in einen Hut werfen
der Leonardo (und alle klone mit ATmega32u4 ) z.b. resetten überhaupt 
nicht

und:

http://playground.arduino.cc/Main/DisablingAutoResetOnSerialConnection

steht da nicht alles ;-)

von Chris D. (myfairtux) (Moderator) Benutzerseite


Lesenswert?

@Robert:

Besten Dank für den Link - das wird ja immer einfacher ;-)

von Baku M. (baku)


Lesenswert?

Robert L. schrieb:
> http://playground.arduino.cc/Main/DisablingAutoResetOnSerialConnection
> steht da nicht alles ;-)

Au Ja! Da weiß ja jemand ganz genau, was er macht (und bestätigt damit 
den Ruf der Arduino-Gemeinde...):
"120 is hard to find so just combine resistors. Don't go below 110 ohms 
or above 124 ohms..."

Also: Einfach rauslöten, den Kondensator. Wenn man löten kann...
Den Bootloader wegschmeißen und durch einen anderen oder ISP ersetzen...
u.s.w. :-)

IdS,
Baku

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.