Forum: Compiler & IDEs Arduino UNO R4 HID "verprogrammiert" , wie zurückstzen


von Uwe (guenst)


Lesenswert?

Hallo

Alle haben mich gewarnt, hab nicht gehört, nun hab ich den Salat.
Wer kann mir helfen?

Ich habe einen neuen Arduino Uno R4 als Mouse/ keybord device 
programmiert.
Nennt sich Human Interface Device (HID). Funktioniert auch, er schickt 
jede Sekunde Keyboard befehle über seine USB Schnittstelle .
Leider lässt er sich dann aber nicht mehr ueber die Arduino IDE neu 
programmieren.
(In der Docu. steht sogar eine explizite Warnung).

Wie kann ich das nun rückgängig machen ?
Hat jemand das schon mal jemand gemacht?
Wer kann helfen ?

Grüsse

von Wastl (hartundweichware)


Lesenswert?

Uwe schrieb:
> Wie kann ich das nun rückgängig machen ?

Über die ISP Schnittstelle löschen.

von Sebastian R. (sebastian_r569)


Lesenswert?

Wenn du einen zweiten Arduino hast, mach daraus nen ISP und flashe den 
Bootloader neu.

von Steve van de Grens (roehrmond)


Lesenswert?

Sebastian R. schrieb:
> Wenn du einen zweiten Arduino hast, mach daraus nen ISP und flashe den
> Bootloader neu.

Ansonsten kaufe dir einen ISP Programmieradapter, zum Beispiel in einen 
"USBASP"
http://stefanfrings.de/isp_programmieradapter/index.html#usbasp

von J. S. (jojos)


Lesenswert?

und der usbasp funktioniert bei einem 32 Bit Renesas µC?

Wenn der Bootloader überschrieben wurde, dann hilft vielleicht das hier:
https://docs.arduino.cc/tutorials/uno-r4-minima/cheat-sheet/#bootloader

: Bearbeitet durch User
von Sven B. (mainframeosx)


Lesenswert?

Ich nutze bei den Arduinos den sogenannnten HOODLoader 2.0.5, der ist 
Arduino Kompatibel und man kann auch die USB Funktionen ohne 
einschränkung nutzen und das Reprogramming geht auch über die IDE.

https://github.com/NicoHood/HoodLoader2

Getestet mit Arduino Mega, Arduino Leonardo, Arduino Leonardo Micro Pro.

Dabei brauchst du aber den USBasp, Aber danach haste keine Scherereien.

: Bearbeitet durch User
von J. S. (jojos)


Lesenswert?

Schön, der R4 hat aber keinen AVR Controller.

von Sven B. (mainframeosx)


Lesenswert?

J. S. schrieb:
> Schön, der R4 hat aber keinen AVR Controller.

Wenn ich vom ersten Post ausgehe (ohne R4), dann schon, ansonsten den 
Post Ignorieren.

: Bearbeitet durch User
von Sebastian R. (sebastian_r569)


Lesenswert?

J. S. schrieb:
> Schön, der R4 hat aber keinen AVR Controller.

Fuck. Das habe ich übersehen. Ja, nein, dann hilft mein Tipp nicht. Mea 
culpa.

von N. M. (mani)


Lesenswert?

Ansonsten wäre es ja evtl ganz nett einen zusätzlichen Pin zu spendieren 
der wenn er gedrückt ist dafür sorgt dass der Arduino Bootloader 
angesprungen wird.

Dann hast du einen Pin mit dem du in den DFU Bootloader kommst falls der 
Mal kaputt ist und einen mit dem du den normalen Boot unterbrechen 
kannst falls du etwas neues laden musst.

Musst du aber halt kurz selbst kompilieren.

von Wastl (hartundweichware)


Lesenswert?

Eine einfache suche mit

arduino uno r4 bootloader

ergibt z.B.

https://forum.arduino.cc/t/source-code-for-arduino-uno-rev4-bootloaders/1174284

von Wastl (hartundweichware)


Lesenswert?

N. M. schrieb:
> Musst du aber halt kurz selbst kompilieren.

Er muss gar nix selbst kompilieren. Er nimmt einen fertig
kompilierten Bootloader (als *.hex oder *.bin Datei) und
muss ihn nur in den Controller flashen.

von Steve van de Grens (roehrmond)


Lesenswert?

J. S. schrieb:
> der R4 hat aber keinen AVR Controller.

Dann taugt ein ISP Adapter nicht.

von N. M. (mani)


Lesenswert?

Wastl schrieb:
> Er muss gar nix selbst kompilieren. Er nimmt einen fertig
> kompilierten Bootloader (als *.hex oder *.bin Datei) und
> muss ihn nur in den Controller flashen.

Und welcher Pin hebelt dann den Start der FW aus?

von J. S. (jojos)


Lesenswert?

Der Boot Pin, steht doch alles in dem schon geposteten Link.

Der Namenswirrwarr von Arduino ist wirklich nicht gut, hier wollte man 
wohl das erfolgreiche UNO verkaufsfördernd einsetzen.

: Bearbeitet durch User
von N. M. (mani)


Lesenswert?

J. S. schrieb:
> Der Boot Pin, steht doch alles in dem schon geposteten Link.

Du meinst um in den DFU Bootloader zu kommen? Das ist mir schon klar.
Bringt dem TO ja aber nur was wenn er den Arduino Bootloader überbügeln 
will oder er muss dementsprechend anders linken damit sein eigentliches 
Programm ganz vorne liegt, oder?
Und mit der Arduino IDE geht dann ja auch nichts mehr wenn der Arduino 
Bootloader weg ist.

von Oliver S. (oliverso)


Lesenswert?

N. M. schrieb:
> Und mit der Arduino IDE geht dann ja auch nichts mehr wenn der Arduino
> Bootloader weg ist.

Uwe schrieb:
> Leider lässt er sich dann aber nicht mehr ueber die Arduino IDE neu
> programmieren.

Und jetzt gleitet die Diskussion in eine nicht endende Rekursion ab...

Oliver

von Uwe (guenst)


Lesenswert?

Danke an alle fuer die umfangreichen Antworten.

Vielleicht aber nochmal zur Erlaeuterung.

Der Human Interface Device (HID) wird in der Arduino IDE per Library und 
anschliessender Aktivierung gestartet.

Der Bootloader ist dann immer noch aktiv und er kann immer noch von der 
Arduino IDE angesprochen werden und auch neu programmiert werden.

Wenn man dann aber (so wie ich :-(    alle Sekunde einen Status auf den 
USB port ausgibt, geht das nicht mehr.

(Vielleicht doch einen neuen Bootloader aufspielen)

Gruesse

von Axel R. (axlr)


Lesenswert?

https://forum.arduino.cc/t/programming-boot-loader/1202560/5
Reset bei gezogenen Bootpin und dann zweimal schnell reset drücken?
Kann man evtl. unter werkzeuge den passenden DFU-Bootloader auswählen?

Hab nen Uno R4 leider gerade nicht zur Hand der blackpill hat keinen 
renesas, sondern einen stm32. Beide vergleichen zu wollen, ist ja 
Quatsch

von Thomas W. (dbstw)


Lesenswert?

Uwe schrieb:
>
> (Vielleicht doch einen neuen Bootloader aufspielen)

Ueblicherweiser wird beim Arduino-Bootloader-Programmieren der 
Bootloader und ein "Blink"-Sketch (Blinken der OnBoard-LED mit 
1Hz-Frequenz) geschrieben.

von Wastl (hartundweichware)


Lesenswert?

Thomas W. schrieb:
> Ueblicherweiser .....

Nö.

Was ist bei dir "üblicherweise"?

Beim Bootloader programmieren wird ein Bootloader geflasht und
beim Blinky programmieren wird ein Blinky-Code geflasht.

von Steve van de Grens (roehrmond)


Lesenswert?

Er hat schon Recht. Zumindest bei allen Arduino Modellen, die auf einem 
ATmega basieren, wird der Bootloader immer zusammen mit einem Blinker 
Sketch installiert.

Ich sehe das Arduino Systen auseinander fallen. Mit zunehmender 
Modellvielfalt verliert es seine Einfachheit. Wenn es nicht mehr einfach 
ist, ist es überflüssig.

Und einen Arduino Uno 4 anzubieten, der weder ein Uno ist, noch dazu 
kompatibel, das war ein doppelter Fehler.

: Bearbeitet durch User
von J. S. (jojos)


Lesenswert?

Er ist ja zur 'Arduino Sprache' kompatibel, also solange man beim 
Arduino API bleibt. Das ist allerdings zu spartanisch und viele Libs 
programmieren daran vorbei, und da ist der Renesas eher ein Exot.
Richtig blöd ist das der wieder einen eigenen core hat und damit die 
Mbed Basis nicht genutzt werden kann. Das hat Arduino CC bei den letzten 
Entwicklungen ja mehrfach genutzt.

von Manfred P. (pruckelfred)


Lesenswert?

Steve van de Grens schrieb:
> Er hat schon Recht. Zumindest bei allen Arduino Modellen, die auf einem
> ATmega basieren, wird der Bootloader immer zusammen mit einem Blinker
> Sketch installiert.

Nö. Wenn ich aus der A*-IDE einen Bootloader flashe, blinkt da nichts.

'Blink' wird lediglich bei der Fertigung mit aufgespielt.

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.