Hallo, um unter Linux gut die AVRs programmieren zu können, habe ich für Java eine GUI geschrieben die avrdude nutzt. Aber anders als beim burn-o-mat verwende ich eine GUI die sich dem OS anpasst, d.h. das Programm sieht aus wie ein natives Programm für das OS. Das Aussehen von Swing mit Java fand ich einfach schrecklich. Mehr auf meiner Homepage: http://docean.homelinux.org/
Erster der's ausprobiert hat :-) Oder zumindest der Erste, der Feedback gibt ;-) Hab's mir gerade die Linux-Version runtergeladen. Für eine 0.1.0-Version geht ja schon einiges, Respekt! Die Eingabemöglichkeiten und Informationen werden übersichtlich dargestellt, und das Programm ist intuitiv bedienbar. Ein paar konstruktive Anmerkungen und Verbesserungsvorschläge, die du wahrscheinlich auch schon im Kopf hast: - Mein Java (1.4.2, ok schon etwas älter) kenn die splash-Option nicht. Deswegen kann ich das Programm nicht mit start.sh starten. Vielleicht kannst du in das Shell-Skript eine Versionsabfrage einbauen. - Den AVR-Typ kann man erst auswählen, nachdem ein Programmierer ausgewählt ist. Das ist leicht verwirrend, zumal die AVR-Auswahl weiter oben im Dialog steht. - Cool wäre es, wenn nach der Auswahl des Programmierers für die Port-Einstellung eine Auswahl der für diesen Programmierer typischen Devices klickbar angezeigt würde, so dass man nur in Ausnahmefällen den Device-Namen von Hand eingeben muss. Ich habe bspw. einen Parallelportprogrammierer. In 99% der Fälle gehört dazu das Device /dev/parport0, evtl. noch /dev/parport1 usw. - Bei der Dateiauswahl für Flash und EEPROM können nur bestehende Dateien ausgewählt werden. Zum Lesen des Flashs bzw. EEPROMs wäre aber die Möglichkeit, eine neue Datei anzulegen, sinnvoll. - Ich habe auf meinem Rechner kein setserial installiert (das ist so 'ne Frickelinstallation), für meinen Parallelportprogrammierer sollte es auch nicht notwendig sein, trotzdem wird eine Exception geschmissen. Mein Workaround war ein Dummy-setserial, das einfach nichts tut. - Angenehm wäre natürlich die Möglichkeit, alle Einstellungen bis zum nächsten Mal abspeichern zu können. Die meisten von den Anmerkungen sind entweder Kleinigkeiten oder Dinge, die du wahrscheinlich sowieso für eines der nächsten Releases geplant hast. Ich bin schon auf das Release gespannt, mit dem erstmals auch die Fuses programmiert werden können. Das Programmieren des Flash mache ich normalerweise vom Makefile aus, für das Programmieren der Fuses gibt es aber so viele Möglichkeiten, dass so ein Tool wie burnAVRburn eine wertvolle Hilfe darstellt, insbesondere, wenn die einzelnen Bits AVR-typspezifisch mit Namen klickbar angezeigt werden. Also: Vielen Dank, und weiter so!
yalu wrote: > - Bei der Dateiauswahl für Flash und EEPROM können nur bestehende > Dateien ausgewählt werden. Zum Lesen des Flashs bzw. EEPROMs wäre > aber die Möglichkeit, eine neue Datei anzulegen, sinnvoll. Du kannst in dem durchsuchen Dialog einfach einen neue Datei eintippen dann wird unter den Namen gespeichert. Danke für die Ideen, ein paar Sachen waren geplant ein paar schau ich mal...
> Du kannst in dem durchsuchen Dialog einfach einen neue Datei > eintippen dann wird unter den Namen gespeichert. Das geht ja tatsächlich, aber das Eingabefeld erscheint erst, wenn man anfängt zu tippen. Das scheint ein Feature von diesem GTK-Dialog zu sein. Auf jeden Fall wieder was dazugelernt.
Neue Version: 0.1.1 * Brennen und lesen vom Flash/EEProm jetzt auch unter Windows * Port Auswahl verbessert ach ja jetzt 2 Startdateien einmal für jre 1.6 einmal für ältere Versionen
Neue Version: 0.2.0 * Möglichkeit Einstellungen zu speichern/ zu laden * Lesen/Schreiben von Fuses Windows Bild http://docean.homelinux.org/web/burnAVRburn/start_win.jpg Linux Bild (KDE+Beryl) http://docean.homelinux.org/web/burnAVRburn/start_linux.jpg
0.3.0 ist draußen... * Unterstützung von AVRs mit 3 Fuses * fuses Daeteiformat erweitert * AVR hinzugefügt/erweitert
Neue Version: 0.3.5 * Design Verbesserung im Fuse Reiter * Quellen veröffentlicht
Endlich wieder Neues... Neue Homepage http://www.jan-hendrikbade.de/burnAVRburn/ (werbefrei) 0.4.0 * Umstellung auf mehere Threads, GUI bleibt bedienbar
Hallo, ich habe gestern mal dein Programm ausprobiert und finde es zum programmieren der fuses unter Linux ganz praktisch. Leider konnte ich aus irgendeinem Grund nach einer Weile die fuses nicht mehr auslesen. An sich habe ich am System während dessen nichts verändert. Vielleicht hilft dir die Konsolenausgabe um mal nach einem Bug zu suchen:
1 | Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 7 |
2 | at java.lang.String.charAt(String.java:687) |
3 | at burnAVRburn.BurnAVRburn.setwertcheckboxen(BurnAVRburn.java:865) |
4 | at burnAVRburn.BurnAVRburn.access$12(BurnAVRburn.java:835) |
5 | at burnAVRburn.BurnAVRburn$18.widgetSelected(BurnAVRburn.java:660) |
6 | at org.eclipse.swt.widgets.TypedListener.handleEvent(Unknown Source) |
7 | at org.eclipse.swt.widgets.EventTable.sendEvent(Unknown Source) |
8 | at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source) |
9 | at org.eclipse.swt.widgets.Display.runDeferredEvents(Unknown Source) |
10 | at org.eclipse.swt.widgets.Display.readAndDispatch(Unknown Source) |
11 | at burnAVRburn.BurnAVRburn.main(BurnAVRburn.java:701) |
Zur Information: ich hab ein eigenes ini file für einen mega64 geschrieben. aber an sich ist das schon korrekt.
Könntest du deine Datei für deine Atmega mal posten? Vlt. ging da was schief..
ja klar, hier ist die Datei. Es ging ja mal, nur mit ein mal gings nicht mehr
Hab mal Version 0.4.1 erstellt 0.4.1 * Promer und AVR Liste wird sortiert * div. Bugs beseitigt * AVRs hinzugefügt/erweitert Vlt. geht es ja damit... Bzw. sicher das der AVR noch lebt?
Hallo, also die exception tritt nicht mehr auf und ich kann auch die fuses auslesen, allerdings setzt es die Häkchen bei den hfuses nicht richtig. Es liest sie zwar richtig aus (in der Textausgabe sieht man sie richtig), setzt sie dann aber gar nicht.
> http://docean.homelinux.org/
Nicht zu fassen, es gibt tatsächlich noch Leute, die ihren Lebenslauf
online stellen; und dann auch noch den des Partners...
Guten Abend, versuche gerade unter Ubuntu 8.04 meinen (unter WinXP mit avrdude laufenden) USBASB-Adapter (von Ulrich Radig) zum Laufen zu bekommen. Ich nutze die burnAVRburn als Oberfläche. Als Fehler wird folgendes ausgegeben
1 | setserial fehlgeschlagen. |
2 | avrdude -c usbasp -p m32 -P /dev/ttyUSB0 -b 115200 -U flash:r:/:i null |
3 | avrdude: Warning: cannot query manufacturer for device: error sending control message: Operation not permitted |
4 | avrdude: error: could not find USB device "USBasp" with vid=0x16c0 pid=0x5dc |
AVRDUDE ist in der Version 5.5.2 installiert. Soweit ich das verstanden habe brauche ich für Linux keinen extra Treiber für den Programmieradapter - das sollte avrdude ja schon können. Hat jemand ne Idee, wo es hakt? Gruß Mark
probier das Kommando erstmal von der Konsole aus (von Hand eintippen) Weiterhin würde ich auf der HP von dem Promer mal schauen was die als Parameter vorschlagen
Ich muss hier nochmal entschuldigen. Mit root-Rechten funktioniert es. langsam wirds peinlich...
Damit Du das auch als user nutzen kannst muß der Device-Node mit entsprechenden Rechten angelegt werden. Das passiert über udev Regeln, bei aktuellem Debian (Ubuntu müsste auch schon so weit sein...) in /etc/udev/rules.d/ eine Datei anlegen; bei mir z.B. mit Namen "015_usbprog.rules" und dem Inhalt:
1 | # Atmel AVR ISP mkII |
2 | ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2104", GROUP="avrdev", MODE="0660" |
3 | |
4 | # usbprog bootloader |
5 | ATTRS{idVendor}=="1781", ATTRS{idProduct}=="0c62", GROUP="avrdev", MODE="0660" |
6 | |
7 | # USBasp programmer |
8 | ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="05dc", GROUP="avrdev", MODE="0660" |
Damit werden für die genannten Programmer die /dev - Nodes mit der Gruppe "avrdev" angelegt, ich habe die Gruppe in /etc/groups eingefügt und die User, die programmieren entsprechend der Gruppe zugeordnet. Alternativ kann man in "015_usbprog.rules" auch eine Standardgruppe, z.B. "users", eintragen...
Im übrigen brauchtst Du beim Aufruf von avrdude den node nicht angeben, es reicht:
1 | avrdude -c USBasp -p m8 -P usb -e -U flash:r:/:i null |
Da der USBasp (mit avrdude) keine Sereinnummer unterstützt kann man eh nur einen am Rechner haben...und avrdude findet den dann mit der obne Kommandozeile selbst.
Hallo Bernhard, danke für deine Anleitung. Hab das ganze versucht umzusetzen. Als Gruppe habe ich nicht "avrdev" sondern "users" eingesetzt und die Datei in besagtem Ordner gespeichert. Mein Login gehört der Gruppe "users" auch an. Beim Starten von avr-dude kommt jedoch immer noch gleiche Fehlermeldung wenn ich avr-dude nicht als root ausführe.
Ist das Problem
1 | avrdude: Warning: cannot query manufacturer for device: error sending control message: Operation not permitted |
2 | avrdude: error: could not find USB device "USBasp" with vid=0x16c0 pid=0x5dc |
eigentlich inzwischen mal befriedigend gelöst worden? Ich benutze auf verschiedenen Rechnern Suse 11.1 (32 bit) bzw. 11.2 (64 bit). In beiden Fällen tritt der o.g. Fehler auf, wenn ich AVRDUDE als user starte - als root funktionierts, aber das kann es ja wohl nicht sein. Den Hinweis auf rules.d habe ich natürlich ausprobiert - ohne Erfolg. Woran könnte es noch liegen? Irgendwelche Ideen?
Ich hätte da mal ne Frage! Kann das GUI auch AVRISP mkII? Welche AVR's unterstütz es mittlerweile? Läuft es auf Knoppix?(Debian)? und Wo ist der Download Link... alle angegebenen links führen zu nichts...? Danke im Voraus;-) Gruss Mr.CookiePants
Hallo Halle-Wolf, kommt zwar nen bisschen spät ... aber immerhin habe ich jetzt eine für mich brauchbare Lösung (OpenSUSE 11.1) gefunden. Hatte auch das Problem, das trotz angelegter xxusb.rules Datei kein Zugriff als normaler User möglich war. Letztlich hat ein OWNER="eigenerUser" zusätzlich in der Zeile, das Problem gelöst. Danach dann /etc/init.d/boot.udev restart und nun funkts ;-) # USBasp programmer ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="05dc", OWNER="monitor", GROUP="users", MODE="0666" Gruß Ingo
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.