Archive for Januar 2017

Olimexino 32U4 Bootloader Update mit USBtiny-ISP

26. Januar 2017

Vor fast 4.5 Jahren hatte ich mir mal 2 Olimexino 32U4 gekauft und musste bei dem ersten Einsatz feststellen, dass dort ein so alter BootLoader drauf war, dass die Boards nur mit der uralten Arduino-IDE 1.0.0RC2 zu flashen waren.

Olimexino 32U4 aus 2012

Olimexino 32U4 aus 2012

Das dies in 2012 war – weiss ich – weil mich meinen eigenen Kommentar von damals im Internet wiedergefunden habe auf:
http://arduino-praxis.ch/2012/08/28/testbericht-olimexino-32u4/

Olimex hatte ich angeschrieben und gesagt bekommen „flashen Sie doch einfach einen neuen“ 😦
Zu der Zeit hatte ich keinen ISP-Programmer und die ISP-Pins waren auch nicht mit Headern versehen.
Zusaetzlich haetten die die Loetloecher auch keinen normalen ISP-Header-Abstand.

Zwar hatte ich damals schon einen USBtiny bestellt zum flashen, musste aber wie oben geschrieben feststellen, dass der ISP-Header fehlt, da Olimex Ihren eigenen Port – den UEXT – auf der Platine hatte.

So kamen die Teile in eine Kiste und reiften vor sich hin 🙂

Da ich nun  beim stoebern in meinen Kisten den USBtiny fand und ich gerade am ueberlegen war noch ein paar Arduinos zu kaufen, packte mich der Ehrgeiz 🙂

Ich besorgte mir das Pinout fuer den 6poligen Header des USBtiny und schaute welches Signal mit welchem zu verbinden waere.

Die ersten drei zu finden am Olimexino war nicht schwer, die liegen auf der Power-Leiste:
VCC (5V wie ich nachgelesen habe – es gibt ja auch 3.3V), GND/Masse und Reset (RST)

Bei den anderen 3 wollte ich fast schon aufgeben, da die nicht auf den normalen Leisten drauf sind und die – nicht vorhandenen -Mini-ISP-Header wollte ich nicht nutzen:
D14-MISO, D15-SCK und D16-MOSI

Aber dann kam ich auf die Idee, mal zu schauen was Olimex so auf dem UEXT fuer Signale bereithaelt.
Und – PRIMA – da waren die anderen 3 Signale doch zu finden 🙂

So machte ich mir einen Plan – mit Farbkodierung – um den Olimexino und das Flachbandkabel des USBtiny per Breadboard-Patchkabel zu verbinden.
Jedes Signal wird auf der „Gegenseite“ mit dem gleichnamigen Pin verbunden.

Breadboardkabel "Patchplan"

Breadboardkabel „Patchplan“

Also dann geplant / getan und alles verkabelt:

ISP Buchse oben

ISP Buchse oben

ISP Buchse unten

ISP Buchse unten

Olimexino UEXT

Olimexino UEXT

Powerleiste Olimexino

Powerleiste Olimexino

Verkabelung - gesamt - fertig

Verkabelung – gesamt – fertig

Also freudig das USB-Kabel des USBtiny an meinen PC angeschlossen….und mal wieder festgestellt, dass Windows 10 fuer solch tolle/aeltere/seltene Hardware keinen Treiber hat 😦
Bis Windows 7/8 gehts noch….Umwege probiert, aber der Treiber konnte trotz Installation nicht gestartet werden.

Also musste – mal wieder – unser liebes „Woelfchen“ an die Arbeit.
Das ist ein 900Mhz Celeron ASUS Netbook mit Windows XPSP3.

Den Treiber, der bis Windows 8 geht, nahm das XP ohne Probleme an 🙂
http://www.adafruit.com/downloads/usbtiny_signed_8.zip
Zusaetzlich wurde dann noch die Arduino-IDE 1.8.0 als .ZIP installiert (die Version hatte ich gerade da und wollte nicht die 160MB fuer die 1.8.1 runterladen).

In der Arduino-IDE stellte ich den Arduino-Typ dann auf den normalen „Arduino Leonardo“ ein, zu dem der Olimexino kompatibel ist.
Als Programmer wird der USBtinyISP eingestellt. COM-Port fuer den Arduino braucht man nicht, da dieser am USBtiny ISP-Programmer „nur“ angeschlossen ist:

Einstellungen zum flashen des BootLoaders

Einstellungen zum flashen des BootLoaders

Nach der Auswahl „Bootloader brennen“ weist einen die Arduino-IDE darauf hin, dass das flashen nun ca. 1 Minute dauert.
Nach der Minute gab es dann im ersten Versuch gleich die „Erfolgemeldung“:

Success - YES :)

Success – YES 🙂

Da es so schoen war, wurden die Kabel gleich auf den 2ten Olimexino umgesteckt und das auch da der neue Bootloader geflasht.

Nun wurde der der USBtiny abgezogen und der zuerst geflashte Olimexino per Micro-USB angeschlossen am „Woelfchen“.
Dieser suchte nun fleissig die Treiber fuer einen „Arduino Leonardo“ 🙂
Ich half ihm dann, und verwies ihn auf das Drivers Verzeichnis innerhalb der Arduino-IDE Installation.

Damit hat er es dann geschafft den „Arduino Leonardo“ sauber einzubinden:

"Arduino Leonardo" COM-Port

„Arduino Leonardo“ COM-Port

Beid den naechsten Arduinos vom Typ MEGA 2560- die mir ins Haus kommen – wird es einfacher, weil die einen ISP-Header in Standardgroesse haben 🙂

Advertisements

Sheevaplug im Jahr 2017

18. Januar 2017

Vor langer Zeit hatte bei einem Angebot zugeschlagen und eine Reserve-Sheeva angeschafft.
Die lag nun eine lange Zeit rum und nun packte mich kurz die Installationslust 🙂

Als erstes wurde wie bei meinem ersten Sheevaplug das „U-Boot“ upgedated auf die Version
https://people.debian.org/~tbm/u-boot/2013.10-2/sheevaplug/

u-boot.kwb              2013-10-21 21:13  374K  
uboot.elf               2013-10-21 21:13  406K

[EDIT]
Martin Michlmayr told me via eMail that a newer u-boot does exist:
U-Boot 2014.10+dfsg1-5 (Apr 07 2015 – 21:57:04)

This version for the SheevaPlug can be found at
http://ftp.debian.org/debian/dists/stable/main/installer-armel/current/images/kirkwood/u-boot/sheevaplug/u-boot.kwb

u-boot.kwb 2017-01-10 21:38 419K

as stated on this u-boot Upgrade-Page
http://cyrius.com/debian/kirkwood/sheevaplug/uboot-upgrade/

The file ist timestamp 2017 , but its the last version from 2014 🙂

After updating my SheevaPlug with this version I had to reconfigure it to boot from SD-Card:

setenv bootargs_console console=ttyS0,115200
setenv bootcmd_mmc 'ext2load mmc 0:1 0x00800000 /uImage; ext2load mmc 0:1 0x01100000 /uInitrd'
setenv bootcmd 'setenv bootargs ${bootargs_console}; run bootcmd_mmc; bootm 0x00800000 0x01100000'
saveenv
reset

After using the u-boot from 2014 I hadnt to include the  „mmc init“ in front of my bootcmd_mmc.


Das musste ich mit einem Windows XP Rechner machen, da Windows 10 die veraenderten .inf Dateien fuer den seriellen USB-Port nicht mochte.

Danach habe ich mit dem debian-Installer

uImage 2017-01-10 21:34 2.0M
uInitrd 2017-01-10 21:34 5.1M

vom USB-Stick auf die 8GB Sandisk-SD-Karte installiert per
usb start
fatload usb 0:1 0x00800000 /uImage
fatload usb 0:1 0x01100000 /uInitrd 

Nach der Installation muss man zum booten noch einige env-Variablen setzen/speichern.
Gesagt getan, aber leider blieb die Sheeva beim laden des uImage mit dem Fehler
** Bad device size – mmc 0 **
stehen 😦

Nun kam mir in den Sinn, dass es aehnliche Meldungen/Probleme gab, wenn man den Installer von USB starten will, aber kein
usb start
der Sheeva mitgegeben hat.

Ein aehnlicher Befehl fuer den SD-Slot lautet
mmc init

Nach dem „mmc init“ konnte ich manuell das uImage erfolfgreich laden 🙂

So lag es nahe den env-Eintrag fuer die Boot-Commandos vorne zu erweitern um das mmc init:
setenv bootcmd_mmc ‚mmc init; ext2load mmc 0:1 0x00800000 /uImage; ext2load mmc 0:1 0x01100000 /uInitrd‘

(Hochkommata am Anfang auch oben… WordPress macht es hier in der Ansicht vorne nach unten.
Kann es leider hier nicht als „Code“ formatieren)

Danach ein
saveenv
reset

Und schon bootete die Sheevaplug brav direkt in ihr Debian:

Linux sheevatwo 3.16.0-4-kirkwood #1 Debian 3.16.39-1 (2016-12-30) armv5tel GNU/Linux