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


von ... .. (docean) Benutzerseite


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/

von yalu (Gast)


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!

von ... .. (docean) Benutzerseite


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...

von yalu (Gast)


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.

von ... .. (docean) Benutzerseite


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

von ... .. (docean) Benutzerseite


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

von ... .. (docean) Benutzerseite


Lesenswert?

0.3.0 ist draußen...

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

von ... .. (docean) Benutzerseite


Lesenswert?


von ... .. (docean) Benutzerseite


Lesenswert?

Neue Version:

0.3.5

    * Design Verbesserung im Fuse Reiter
    * Quellen veröffentlicht

von DOcean (Gast)


Lesenswert?

Endlich wieder Neues...

Neue Homepage

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

0.4.0

    * Umstellung auf mehere Threads, GUI bleibt bedienbar

von Thomas K. (tommes)


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:
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.

von Gast (Gast)


Lesenswert?

Könntest du deine Datei für deine Atmega mal posten?

Vlt. ging da was schief..

von Thomas K. (tommes)


Angehängte Dateien:

Lesenswert?

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

von ... .. (docean) Benutzerseite


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?

von Thomas K. (tommes)


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.

von ... .. (docean) Benutzerseite


Lesenswert?

also bei mir stimmts...

von ... .. (docean) Benutzerseite


Lesenswert?

0.4.2

    * Bugfix für SmartUSB

von Jupp (Gast)


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...

von Mark (Gast)


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
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

von ... .. (docean) Benutzerseite


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

von Mark (Gast)


Lesenswert?

Ich muss hier nochmal entschuldigen.
Mit root-Rechten funktioniert es.

langsam wirds peinlich...

von Bernhard M. (boregard)


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:
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...

von Bernhard M. (boregard)


Lesenswert?

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.

von Mark (Gast)


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.

von Halle-Wolf (Gast)


Lesenswert?

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?

von Mr.CookiePants (Gast)


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

von Ingo D. (ingo2011)


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

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.