Wieso willst Du die ändern?
Anhand der VendorID erkennt der PC die Hardware und nimmt den entsprechenden Treiber/Initialisation.
Anhand der Product-ID erkennt der PC welcher Arduio dranhängt und benutzt dementsprechend einen anderen COM-Port.
Ich werkle an einem Keyboard-Projekt rum... und da brauche ich das das System das angeschlossene USB Device als Keyboard erkennt, und nicht als Dev Platine
"Btw - "make all" works, but if you haven't uncommented the PID/VID in the Makefile then make sure you do "make all VID=0x20A0 PID=0x0151"
Doch kann ich das nicht einfach so bauen (make), weil ich dazu auf dem Mac wohl ein Haufen Libraries installieren muss... und ich keinen Plan habe.
Deshalb wärs nett, wenn sowieso jemand das alles schon eingerichtet hat, einfach mal "make all VID=0x046a PID=0x0011" für das Leonardo Board ausführt und mir kurz erklärt wie ich das dann mit AVR in mein Leonardo transportiere
Das reicht aber bei weitem nicht... musste mich erstmal Stunden durch etliche Webseiten ackern, doch das hat auch alles nichts gebracht.
Erst als ich die Homebrew Seite gefunden hatte... dann war alles ganz einfach. Musste dann noch ca. 5 Sachen installieren, bis es halbwegs funktionierte (Mountain Lion ist bescheiden schön).
Gut, das .hex File habe ich nun... was mich nur stutzig macht, es sind nur 12 KB (das Caterina-Leonardo.hex ist 78 KB gross). Vielleicht fehlt die USB library?
Und ausserdem, wie kommt das .hex ins Leo ?
Uh, schon wieder 00:40 Uhr. Das hasse ich so an Computer... sie helfen Dir nicht, die rauben Dir die Zeit und den Schlaf = Tod. Ich geh schlafen.
Das HEX-File ist etwas aufgebläht, aus den 78kB werden im Binary-Format "nur" noch 32kB. Die bestehen zur Hauptsache aus 0xFF-Bytes, nur am Anfang und am Ende sind einige kB wirkliche Daten (bzw. Code) enthalten. Deine ca. 6kB kommen somit einigermassen hin, wenn alles am Stück ist. Wieso die beiden Blöcke im Original-Bootloader am Anfang und am Ende aufgesplittet sind, entzieht sich leider meiner Kenntnis. Meine Vermutung wäre, dass der Teil am Anfang der eigentliche Bootloader-Code ist, während der Teil am Ende überschrieben werden kann (und bei entsprechend grossen Sketches auch wird). Was dort allerdings drin enthalten sein soll, entzieht sich meiner Kenntnis.
Ok, also um das zu erreichen was ich vor 4 Tagen wollte (4 Tage habe ich an diesem Mist gesessen^^) ist das hier alles durchzuführen (auf Mac OSX Mountain Lion 10.8.2 clean install):
Ordner "Bootloader-Leonardo" irgendwo anlegen und dort einen Ordner "Source" und "LUFA" erstellen
In den "LUVA" Ordner das neuste LUFA reinpacken
In den Source Ordner kopieren alles was hier drin ist /Applications/Arduino.app/Contents/Resources/Java/hardware/
In den Ordner wechseln: "Bootloader-Leonardo/Source/arduino/bootloaders/caterina"
make clean
make all VID=0x046a PID=0x0011
Beim compilieren erscheint evtl. ein Fehler das LUFA betrifft, dann stimmt der Pfad im makefile ../../../../../../LUFA nicht, und muss auf ../../../../LUFA geändert werden
copy Caterina.hex Caterina-Leonardo_usb_fix.hex
Das .hex File hat dann 11 KB.
Das wars.
So, immer noch mit Fragezeichen:
Wie bekomme ich das .hex in den Leonardo?
Ich würds ja einfach mit meiner Arduino-IDE (Processing like) machen, aber wenn ich im Menü: "Tools-> Bootloader installieren" drücke kommt das:
"avrdude: usbdev_open(): did not find any USB device "usb"
Ich denke mal davon hat auch keiner eine Ahnung?
Ich denke ich muss avrdude per hand starten und die ganzen Parameter angeben... jemand der das schon mal gemacht hat?
Herzlichen Glückwunsch, das Teil bringt dir überhaupt nichts. Der USB-Chip ist nicht ausbaubar und passt außerdem nicht in so eine Fassung. Das gilt für den Leonardo genau so wie für den Uno, nur dass bei letzterem wenigstens der andere Chip, der mit dem eigentlichen Programmcode, entfernt, umprogrammiert und gewechselt werden kann (sofern es nicht die SMD-Variante ist).
Was du brauchst ist ein In-System-Programmer oder ISP. Den kannst du dir notfalls auch aus einem anderen Arduino zusammenbauen, aber der muss auf jeden Fall an die 6 ISP-Pins am rechten Rand vom Arduino angeschlossen werden können.
Und Uwe, deine Beschreibung von VID und PID stimmt auch nicht ganz. VID und PID stellen gemeinsam eine Gerätesignatur dar, die für alle gleichartigen Geräte (und manchmal auch etwas mehr) identisch ist. Der Unterschied ist lediglich, dass die VID vom USB-IF an einzelne Hersteller vergeben wird, welche dann 65536 verschiedene Gerätetypen damit herausgeben können.
DreiMalNull, wenn du soweit bist dass du eine Hex-File draufgebrannt kriegst kannst du ihn beim Schreiben einer falschen Hex-Datei auch ohne weiteres wiederherstellen, wenn er nicht mehr antwortet. Das einzige was du so kaputt machen kannst dass du den Chip mit einem Programmiergerät nicht mehr beschreiben kannst sind die Fuses, und an die solltest du bei deinen Programmieraktionen gar nicht drankommen.
Gut, streng genommen könntest du deinen Chip noch elektrisch zerstören, aber das liegt dann nicht an der falschen Hex-Datei, sondern an falschen Spannungen. Ein ordentliches Programmiergerät sollte sowas aber nicht ermöglichen, wenn du den Stecker richtig draufsteckst.
Ok, gut, dann brauch ich keinen brenner für den Leonardo... nur, was soll ich dann machen? Ich gebe wirklich bald auf, das bringt doch alles nichts.
Habe mit avrdude rumgespielt ( avrdude -c avrispmkII -p atmega32u4 -P /dev/tty.usbmodem1d1311121 -v ) und das hier erhalten:
Last login: Tue Jan 22 13:48:22 on ttys000
meinserver:~ mApple$ avrdude -c avrispmkII -p atmega32u4 -P /dev/tty.usbmodem1d1311121 -v
avrdude: Version 5.11.1, compiled on Jan 22 2013 at 11:44:50
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2009 Joerg Wunsch
System wide configuration file is "/usr/local/Cellar/avrdude/5.11.1/etc/avrdude.conf"
User configuration file is "/Users/mApple/.avrduderc"
User configuration file does not exist or is not a regular file, skipping
Using Port : /dev/tty.usbmodem1d1311121
Using Programmer : avrispmkII
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_getsync(): timeout communicating with programmer
AVR Part : ATmega32U4
Chip Erase delay : 9000 us
PAGEL : PD7
BS2 : PA0
RESET disposition : dedicated
RETRY pulse : SCK
serial program mode : yes
parallel program mode : yes
Timeout : 200
StabDelay : 100
CmdexeDelay : 25
SyncLoops : 32
ByteDelay : 0
PollIndex : 3
PollValue : 0x53
Memory Detail :
Lustig dabei ist, ich habe ja auch im Internationalen Forum gepostet... und mir wird immer nur die Frage gestellt warum ich da machen will, und ich soll das doch lieber bleiben lassen :=)
Anscheinend mache ich immer das was keiner normalerweise macht^^
Hmmm... also brauch ich doch Hardware zum brennen. Ich werde mal ein paar Arduinos verschalten (habe zig davon) und sehen ob sich damit irgendein programmer ergibt mit dem man was anfangen kann... nur frage ich mich, warum braucht ein Leonardo eine Hardware zum brennen, der hat doch den super neuen 32u2 ... dachte das ist so ein intelligentes flexibles Teil, dass man dazu keine extra Hardware mehr benötigt, so wie beim UNO und Del.
kannst du ihn beim Schreiben einer falschen Hex-Datei auch ohne weiteres wiederherstellen
das ist schon mal gut... habe da negative Erfahrungen mit Android Tabletts = Brick = 500€ futsch und das 2 mal 2x