Arduino als AVR ISP zum Brennen des Bootloader

Arduino als AVR ISP zum Brennen des Bootloader

Erstmal noch ein frohes neues Jahr 2016! Es ist lange nichts mehr passiert hier in diesem Blog. Gründe, oder besser Ausreden dafür fallen mir genug ein. Ein Grund ist der Selbstbau einer Garage im letzten Sommer bzw. Herbst. Das hat mich einiges an Zeit und Nerven gekostet. Jetzt steht aber alles und das Auto im trockenen und somit ist wieder Zeit für andere Dinge. Daher heute etwas zum Thema Arduino und des darin benötigte Bootloader und wie man einen Arduino als AVR ISP zum Brennen des Bootloader nutzt. (ISP: In-System-Programmer).

An einem der letzten Wochenenden habe ich mit zwei Bekannten ein Wortuhr-Bau-Wochenende gemacht. Dabei sind an zwei Tagen 3 Wortuhren entstanden. Nach dem Bestücken der Platinen, dem Erstellen der LED-Matrix und der Verkabelung sollte der Sketch auf den Mikrocontroller geladen werden.

Bei dem Versuch wehrte sich die Arduino IDE allerdings den Sketch auf den Mikrocontroller zu spielen. Grund dafür war ein fehlender Bootloader. Da hatte ich bei der Bestellung der Platinen und der Bauteile wohl das entsprechende Häkchen für einen bereits vorprogrammierten Atmel vergessen.

Warum ein Bootloader?

Der Bootloader auf dem Atmel AVR wird benötigt um den Arduino mittels serieller Schnittstelle einfach mit Programmen (Sketch) z.B. mit der Arduino IDE programmieren zu können. Hierbei übernimmt der Bootloader zwei Dinge:

  1. Der Bootloader versucht beim Start festzustellen, ob ein neuer Sketch vom PC auf den Mikrocontroller geladen werden soll. Ist das der Fall, wird das Programm vom PC auf den Mikrocontroller geladen. Daher wird der Mikrocontroller beim Versuch neuen Code hoch zu laden, vorher immer durch die Arduino IDE resetet.
  2. Wenn nicht mittels PC versucht wird ein Sketch auf den Mikrocontroller zu laden, wird der der bereits installierte Code ausgeführt.

Eine Möglichkeit um den Bootloader auf den Atmel zu laden, ist einen anderen Arduino als Programmer zu nutzen. Da ich noch einen Arduino Nano hier rumliegen hatte, musste der dafür herhalten.

Einen Arduino Nano als AVR ISP (In-System Programmer)

Folgende Schritte sind zu befolgen um den Bootloader auf einen Atmel AVR zu spielen:

1. ArduinoISP-Sketch auf Arduino laden

In der Arduino IDE das Beispiel “ArduinoISP” öffnen. Eine aktuelle Version ist auch auf GitHub zu finden.

isp1

Den Arduino Nano mittels USB an den Rechner anschliessen und ggf. unter “Werkzeuge->Port” den entsprechenden Port einstellen. Den geladenen Sketch anschließend mit der “Pfeiltaste” auf den Arduino Nano laden.

Mehr lesen

Wortuhr Bildschirmschoner – Update 2

Heute nochmal ein kleines Update für den Wortuhr Bildschirmschoner. Bei Geräten mit höheren Auflösungen gab es Probleme mit der Anzeigen der Umlaute. Die Buchstabenmatrix ist aufgrund der hohen Auflösung etwas zusammengeschoben worden, weshalb nicht alles korrekt dargestellt wurde. In den Bildschirmschoner-Einstellungen kann man nun die Schriftgröße und zusätzlich noch die Schriftart anpassen (dazu auf den Text hinter Schriftart klicken).

bildschirmschoner_einstellungen_neu

Download Wortuhr ScreenSaver (v1.1)

Gruß
Chris

Eclipse Uhr auf Basis der Liqiud-Clock

Neben den Wortuhren wollte ich auch mal eine Uhr bauen, die auf Basis von Christians Liquid-Clock basiert. Die Neopixel habe ich als 5m Rolle in der Bucht gekauft. Als Steuerplatine benutze ich das BBRTCAD von Christian.

Das BBRTCAD ist schnell aufgebaut. Wirklich etwas fisselig ist der Anschluss des Elkos und der Anschlusskabel an den LED-Stripe. Das ist aber etwas abhängig von der Größe der Anschluss-Pads des LED-Stripes die bei mir ziemlich winzig waren. Ich habe dann noch, anders wie in der Anleitung, nur einen Elko benutzt und den Stripe zu einem geschlossenen Ring zusammen gelötet. Das funktioniert auch tadellos anstelle der Nutzung von zwei Elkos wie in Christian´s Anleitung beschrieben. Der LED-Stripe und die Steuerplatine wurden dann auf einer rund ausgefräßten Leimholzplatte (~15mm Stärke) mit den entsprechenden Ausfräsungen für die Elektronik montiert. Nett ist, das der LED-Stripe mit doppelseitigem Klebeband daher kommt, was das Montieren des Stripes sehr einfach macht.

Die sichtbare Platte ist eine schwarze Acrylplatte von Evonik. Diese ist einigermaßen streuend und schön schwarz wo sie auf der Holplatte aufliegt. Befestigt ist die Acrylplatte mit doppelseitigem Klebeband. Das hält bombenfest und ich hatte echte Schwierigkeiten es nochmal ab zu bekommen weil ich die Platte im ersten Versuch etwas verdreht aufgesetzt hatte. Da ich vor dem Aufkleben leider keine Fotos gemacht hatte, gibt es daher auch keine weiteren Bilder vom Innenleben der Grundplatte.

In der Firmware habe ich alle der 60 Leds die aktuell nicht für die Anzeige von Stunde (blau), Minute (grün) und Sekunde (rot) benötigt werden, auf “Dauer an” (weiß)  gesetzt. Das gibt einen schönen Korona-Effekt. Daher auch “Eclipse Uhr”. Dieser Effekt könnte allerdings noch etwas diffuser sein. Ich habe aktuell nur keinen weißen durchlässigen Schaumstoff zur Hand mit dem man das erreichen könnte. Sobald ich was passenden gefunden habe wird ein Bild nachgereicht.

Die fertige Uhr schaut dann im Dunkeln fotografiert so aus:

eklipse_liquid_clock
Eclipse Uhr

 

Gruß

Chris

Rahmenlose Wortuhr

Heute habe ich es endlich geschafft die neue rahmenlose Wortuhr fertig zu bauen (die letzte war für den Bekannten der mir die Platten fräst). Als LED-Matrix-Treiber habe ich den Bausatz von Elmotex genutzt. Die Rost-Frontplatte kommt bei der neuen Uhr wieder zum Einsatz und wird von 7 Neodym-Magneten gehalten.

Der alte Prototyp mit dem klassischen Drei-Platinen-Aufbau und Ribba-Rahmen bekommt die ursprüngliche Glasplatte mit der schwarzen Folie und ziert jetzt unser Büro.

Wortuhr Frontplatte in Rost-Optik

Ingo, ein sehr guter Freund von uns ist Metallbauer und hat ein sehr schönes “Spielzeug” –  einen Wasserschneider. Ihm hab ich das PDF mit der maßstabsgetreuen Zeichnung der Frontplatte (50×50 cm) zugesendet. Die Idee ist eine aus Metall geschnittene Frontplatte im Rost-Look. Zuerst musste aber das PDF, welches ursprünglich für einen Folienplotter war, angepaßt werden. Problem ist, das beim Ausschneiden der Buchstaben die inneren Teile mancher Buchstaben (z.B. A, B, O, …) rausfallen würden. Ein paar Hilfsstege mussten also noch her.

Das Ganze wurde in 2mm Blech geschnitten. Um das Rosten zu beschleunigen, kam eine besondere Tinktur von unserem Freund Jochen zum Einsatz. Nach drei Wochen habe ich beschlossen, das genug gerostet ist (obwohl auf anraten von Jochen mehrere Wochen nötig sind) weil ich es nicht mehr abwarten konnte :-). Damit es im Wohnzimmer nicht fröhlich weiter rostet, habe ich dem Blech noch eine Lackierung mit mattem Klarlack verpaßt.

Das Ergebnis der Frontplatte ist m.E. sehr schön geworden…

front_rost1

Hier noch ein äteres Bild der Frontplatte im IKEA-Rahmen. Zwischenzeitlich nutze ich die Front an einer rahmenlosen Variante der Uhr.

front_rost2

Die DXF-Datei der Frontplatte hier zum Download!

Viele Grüße, Chris