mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik burnAVRburn (neue GUI für avrdude)


Autor: ... ... (docean) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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/

Autor: yalu (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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!

Autor: ... ... (docean) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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...

Autor: yalu (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> 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.

Autor: ... ... (docean) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: ... ... (docean) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: ... ... (docean) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
0.3.0 ist draußen...

    * Unterstützung von AVRs mit 3 Fuses
    * fuses Daeteiformat erweitert
    * AVR hinzugefügt/erweitert

Autor: ... ... (docean) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: ... ... (docean) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Neue Version:

0.3.5

    * Design Verbesserung im Fuse Reiter
    * Quellen veröffentlicht

Autor: DOcean (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Endlich wieder Neues...

Neue Homepage

http://www.jan-hendrikbade.de/burnAVRburn/ (werbefrei)

0.4.0

    * Umstellung auf mehere Threads, GUI bleibt bedienbar

Autor: Thomas Kühne (tommes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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:
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 7
  at java.lang.String.charAt(String.java:687)
  at burnAVRburn.BurnAVRburn.setwertcheckboxen(BurnAVRburn.java:865)
  at burnAVRburn.BurnAVRburn.access$12(BurnAVRburn.java:835)
  at burnAVRburn.BurnAVRburn$18.widgetSelected(BurnAVRburn.java:660)
  at org.eclipse.swt.widgets.TypedListener.handleEvent(Unknown Source)
  at org.eclipse.swt.widgets.EventTable.sendEvent(Unknown Source)
  at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source)
  at org.eclipse.swt.widgets.Display.runDeferredEvents(Unknown Source)
  at org.eclipse.swt.widgets.Display.readAndDispatch(Unknown Source)
  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.

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Könntest du deine Datei für deine Atmega mal posten?

Vlt. ging da was schief..

Autor: Thomas Kühne (tommes)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
ja klar, hier ist die Datei. Es ging ja mal, nur mit ein mal gings nicht 
mehr

Autor: ... ... (docean) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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?

Autor: Thomas Kühne (tommes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: ... ... (docean) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
also bei mir stimmts...

Autor: ... ... (docean) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
0.4.2

    * Bugfix für SmartUSB

Autor: Jupp (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> 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...

Autor: Mark (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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
setserial fehlgeschlagen.
avrdude -c usbasp -p m32 -P /dev/ttyUSB0 -b 115200 -U flash:r:/:i null
avrdude: Warning: cannot query manufacturer for device: error sending control message: Operation not permitted
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

Autor: ... ... (docean) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Mark (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich muss hier nochmal entschuldigen.
Mit root-Rechten funktioniert es.

langsam wirds peinlich...

Autor: Bernhard M. (boregard)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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:
# Atmel AVR ISP mkII
ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2104", GROUP="avrdev", MODE="0660"

# usbprog bootloader
ATTRS{idVendor}=="1781", ATTRS{idProduct}=="0c62", GROUP="avrdev", MODE="0660"

# USBasp programmer
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...

Autor: Bernhard M. (boregard)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Im übrigen brauchtst Du beim Aufruf von avrdude den node nicht angeben, 
es reicht:
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.

Autor: Mark (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Halle-Wolf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist das Problem
avrdude: Warning: cannot query manufacturer for device: error sending control message: Operation not permitted
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?

Autor: Mr.CookiePants (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Ingo DH1AAD (ingo2011)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.