Hey, bin eigentlich nicht der Typ, der sich in einem Forum anmeldet und direkt mit Fragen um sich schmeißt. Jedoch werde ich wohl wenig mit Arduinos zu tun haben und deswegen frag ich einfach mal.
Ich habe auf einer Website gesehen, dass man den nano nutzen kann um die Originalelektronik von meinem PC Lenkrad zu emulieren. Nun habe ich mir soweit alles nötige zugelegt und wollte anfangen ...
Nun meine frage: kann ich einen Nano mit dem anderen Nano als ISP überhaupt programmieren ? Ich muss halt den Bootloader vom target weg bekommen, da sonst der spaß nicht vom lenkrad erkannt wird
Einen Fehler hat dieser Artikel.
Da fehlt der Elko 10μF am Reset des Programmers gegen GND.
Der ist nötig, damit dieser nicht beim Flashen des Bootloaders selbst resettet und neu startet.
agmue:
Dachte ich auch, aber dann fand ich:
Allerdings sollte es viel besser plaziert sein!
Ah....ok.
Allerdings bin ich bei der Wärme zu bequem, den kompletten Text durchzulesen.
Sowas gehört auch in die Zeichnung.
Und schaden kann es nicht, wenn der zum Programmieren immer dran hängt.
Ok, ja den Artikel hab ich auch schon gelesen. Jedoch verstehe ich nicht so ganz wie es funktionieren soll ?
Ich habe alles so gemacht wie es in dem Artikel steht, trotzdem bekomme ich die meldung
expected signature for atmega328p is 1e 95 0f
Check all connections or use -F to overwrite
Nun, alle Verbindungen geprüft aber alles war ok. Als nächstes habe ich versucht mal Optiboot zu flashen, aber vergeblich. Ich bekomme einfach nichts auf den zweiten nano (target) drauf. Sie haben halt beide noch den alten bootloader da ich sie von einem kollegen abgekauft habe.
Er hat sich die irgendwann mal zugelegt aber nie genutzt.
Das mit dem ELKO hab ich auch gemacht. Dadurch erkennt er wenigstens dass irgendwas dran ist zum flashen und winkt nicht gleich ab.
[Old Bootloader]
In der Datei c:\Program Files (x86)\arduino-1.8.13\hardware\arduino\avr\boards.txt kannst Du die Reihenfolge der Einträge ändern, damit "Old Bootloader" zum Standard wird.
Nach einer Idee von combie.
[\Old Bootloader]
disnect:
Ich muss halt den Bootloader vom target weg bekommen, ...
disnect:
Ich habe alles so gemacht wie es in dem Artikel steht, ...
Das ist ein Widerspruch, denn der Nano hat ja einen Bootloader, den Du aber nicht willst. Du benötigst daher eine Variante mit einem leeren Bootloader.
Ich habe eine Erweiterung Mini Core, wo ich den Bootloader abwählen kann:
Da mir bislang die Notwendigkeit fehlte, habe ich das aber noch nicht probiert.
Dein derzeitiges Problem dürfte aber ein anderes sein, denn wenn es mit Bottloader nicht geht, funktioniert es auch nicht ohne.
Funzt alles nicht. Hat es vielleicht etwas damit zu tun, dass beide Boards identisch sind und die Arduino IDE die Boards nicht auseinander halten kann ?
Der Rechner 'sieht' nur den Arduino, Der am USB hängt.
Der Andere ist Ihm völlig unbekannt - Der ängt ja auch nur an ISP des Arduino!!
Hast Du am RST des USB-Arduino einen Kondensator?
Also, daß Der den Reset-Impuls der IDE 'überlebt'?
Den 10uF ELKO hab ich am Programmer zwischen GND und RST.
Um die ArduinoISP auf den Programmer zu laden habe ich AVRISP mkII ausgewählt und einfach nur Hochladen geklickt. Dann habe ich das Target über jegliche Anschlussmöglichkeit an den ISP Arduino angeschlossen und über den Arduino as ISP Programmer versucht mein Sketch, das ich von der Seite ganz oben habe, über den punkt "hochladen mit Programmer" zu flashen. Dabei kam die oben genannte Fehlermeldung.
das mit dem 5V zu 5V hab ich auch schon versucht... Kein anderes Ergebnis.
auch habe ich schon versucht die Zeile // #define USE_OLD_STYLE_WIRING im ArduinoISP Sketch zu entfernen und dann mit de Bearbeitet Sketch den Ablauf gemacht.
Den Bootloader muss ich runter bekommen, damit der Arduino direkt mit dem arbeiten anfängt und nicht erst 2 Sekunden nachdem er Strom hat. Ansonsten erkennt die Original Lenkradelektronik den Arduino nicht richtig und somit wird das Lenkrad im Treiber nicht richtig erkannt.
Schade das man auf deinem Foto nix richtig erkennen kann.
Warum baust du sowas nicht erst mal auf einem Steckbrett auf und verwendest unterschiedliche Farben für die Kabel.
Dann könnte man sicher etwas erkennen. So jedenfalls nicht.
Also bei mir hat jetzt alles funktioniert, danke für eure Hilfe. Zwar habe ich nichts anders gemacht als bei meinen anderen Versuchen auch, aber das war sicherlich der Vorführeffekt weil ich nun alles für euch dokumentiert habe. UNTEN SIND ALLE QUELLEN VERLINKT
Erstmal habe ich den ersten Arduino angeschlossen und das ArduinoISP Sketch aufgespielt.
In Bild 1 sieht man die von mir gewählten Einstellungen in der Arduino IDE.
Nun habe ich den ISP Programmer (ersten Arduino) mit dem zweiten (Target) verbunden, und zwar wie folgt.
und auf dem Programmer Arduino habe ich einen 10uF ELKO zwischen GND und RST gesteckt (kürzerer Draht zu GND).
Dies ist zu sehen in Bild 2,3 und 4.
Nun habe ich mein t150_wheel_emu_15buttons-1.03 Sketch geöffnet den Programmer Arduino wieder an den PC angeschlossen und meine Einstellungen geändert.
zu sehen in Bild 5
zu guter letzt habe ich das Sketch via Hochladen mit Programmer hochladen können ohne Probleme.
zu sehen in Bild 6
Was der Grund für mein anfängliches scheitern war, kann ich nicht sagen. Vielleicht kann es mir irgendjemand aus dem Forum erklären. Meines Wissens nach habe ich nichts anders gemacht als bei meinen ersten Versuchen.
Nein, das hat nichts mit den Farbigen Kabeln zu tun. Ich hatte ihn davor auch schon mit farbigen Kabeln genau so angeschlossen wie auf den Bildern zu sehen ist. Nur für die Verbindung mit den ISCP port habe ich mir nochmal 6 gleich lange stücke zurecht geschnitten.
Also soweit ich weiß, löscht sich doch der Bootloader wenn man überhaupt einen ISP flasht ? Oder bin ich da auf dem Holzweg.
Naja, und wenn schon ich habe das ganze nun so gemacht wie es in der Anleitung dazu gestanden ist und hoffe es funktioniert jz auch so wie es soll. Das wird sich dann die nächsten Tage zeigen.
HotSystems:
Und ja, wenn du per ISP den Sketch flashst, wird der Bootloader gelöscht.
Bist Du sicher? In der boards.txt steht: nano.menu.cpu.atmega328old.bootloader.file=atmega/ATmegaBOOT_168_atmega328.hex Ohne müßte es beispielsweise so aussehen: 328.menu.bootloader.false.bootloader.file=empty/empty.hex Also wird doch ein Bootloader übertragen, oder?