Atmel Mikrocontroller Programmieren mit Olimex AVR-ISP-MK2

Ich wollte ein Projekt mit AVR Mikrocontrollern machen. Zum einen, weil ich glaube, dass das für mein aktuelles Problem eine gute Idee ist, zum anderen, weil ich mal einen µC programmieren wollte. Auf Mikrocontroller.net gibt es ein Tutorial, das am Ende der Hardwareeinführung schön schreibt, dass man erst weiter machen soll, wenn die IDE mit der Hardware spricht….

Dafür habe ich mir bei Pollin den Olimex AVR-ISP-MK2 Programmer gekauft. (Bei Pollin 34,95€ + 4,95€ Versand, bei Olimex direkt 19,95€ + 15,76€ Versand).
Mit dem Atmel Studio 7 unter Windows 7 wollte der zunächst nicht laufen, die Fehlermeldung war „Unable to connect to tool AVRISP mkII (000200212345)“. In dieser Diskussion habe ich zum Glück eine Lösung dafür gefunden: Zadig mit dem Treiber libusb-win32. Allerdings habe ich auch Meldungen gefunden, dass das nicht zuverlässig sei, mal sehen.

Alleine mit dem Umstellen des USB-Treibers hat es bei mir immer noch nicht funktioniert. Erst, als der Olimex Programmer direkt an einem USB-Port am Rechner hing, und nicht – wie vorher – an einem USB-Hub, konnte ich das erste Programm tatsächlich zum Laufen bekommen.

CnMemory: Support scheint nicht zu existieren

Vor einigen Tagen hatte ich etwas Probleme mit CnMemory beschrieben. Leider sind die bis heute nicht behoben. Unter der Telefonnummer geht immer noch nur ein Band dran, meine inzwischen mehrfachen Mails wurden nur mit dem selben Autro-responder beantwortet, es scheint, als wenn Support zwar groß geschrieben wird, aber leider nicht gelebt wird.

Egal, was die mögliche Antwort von CnMemory oder I-Onik gewesen sein könnte, wenn ich bei Problemen gar keine Reaktion kriege, ist das ganz klar für mich das Zeichen, dass dieser Laden gar nichts taugt. Zum Glück sind es bei mir nur recht billige Teile gewesen, aber der Laden produziert auch etwas teurere Geräte. Wenn ich mir nur vorstelle, dass ich etwas Teures von CnMemory oder IOnik gekauft hätte, bei dem etwas nicht funktioniert, dann wird mir ganz schlecht. So vollkommen ohne Support, das halte ich für fahrlässig und extrem kundenfeindlich.

CnMemory Spaceloop externes USB 3.0 Festplattengehäuse – Revision 1.1

Hier freute ich mich noch darüber, wie gut ich die Gehäuse finde, allerdings gilt das leider nicht mehr so ganz. Ich habe ein paar nach bestellt, und leider eine neue Variante erhalten. Diesmal kamen sie von Pollin auch nicht in einer Retailpackung, sondern in Plastiktüten, aber das nur am Rande.

CnMemory hat ein paar Sachen geändert, statt eines KTec-Netzteils gibt es jetzt eins von Asian Power Devices. Aber vor allem gibt es eine andere Platine, die Revision 1.1.

Der große Unterschied ist, dass die alte Version Festplatten mit einer Sektorengröße von 512 Byte meldete, die neue aber Sektorengrößen von 4096 Byte nimmt. Damit ist die gesamte Plattengeometrie durcheinander, und auf der Platte befindliche Daten sind nicht mehr lesbar. Schon die Partitionierungsdaten sind nicht lesbar. Damit ist die neue Revision nicht nur nicht kompatibel zu Platten, die mit der alten Version genutzt wurden, sondern insbesondere auch nicht mit Platten, die am internen Festplattencontroller eines PCs genutzt wurden.

Nur um auszuschließen, dass es sich um spezifische Probleme mit Treibern oder Festplatten handelt, habe ich verschiedene Kombinationen probiert. Windows 7 / 8.1, Linux auf PC und Raspberry Pi, Festplatten von Western Digital, Toshiba und Seagate, mit Größen von 160 GB bis 3 TB: immer das Gleiche.

 

Ich habe heute versucht, den „Technischen Support“ zu erreichen. Auf der Webseite sind 2 Telefonnummern angegeben 01805 / 00251 sowie eine Festnetzdurchwahl. Die 01805-Nummer funktioniert nicht, kann sie auch nicht, da eine 01805-Nummer immer 6-stellig ist. Bei der Festnetzdurchwahl kommt sofort Musik, und nach längerer Zeit die Meldung, dass alle Serviceplätze belegt seien, ich solle es später versuchen, oder eine Email schreiben. Sechs (6!) mal habe ich es versucht… Ich glaube nicht daran, dass dort wirklich jemand erreichbar ist.

Auf meine Email kam eine automatische Antwort:
Betreff:
Abwesend: CnMemory Spaceloop USB 3.0 externes Festplattengehäuse
Inhalt:
Sehr geehrter Kunde,

Ihre E-Mail ist bei uns eingegangen und wird umgehend von uns bearbeitet.

Ich bin gespannt, wahrscheinlich muss ich die 3 Gehäuse als defekt zurück schicken.

CnMemory – USB 3.0 – SATA – Gehäuse: Spaceloop

Bei Pollin gibt es von CnMemory ein Metallgehäuse mit USB 3.0 <-> SATA Interface für 7.95 €. Ich hatte ein paar bestellt, in der Hoffnung, damit aus meinem Raspberry Pi ein NAS zu machen. Bei einer 100MBit-Anbindung des Pis ist natürlich nicht viel Geschwindigkeit zu wollen, das war daher auch nicht der Grund für diesen Kauf. Wie immer möchte ich eigentlich keinen Strom verbauchen, wenn Geräte nicht gebraucht werden, daher sollte die externe Platte auch möglichst immer im Schlafmodus sein. Mein bisheriges USB-Festplatten-Gehäuse verstand den Schlafparameter von hdparm nicht, „hdparm -S 60“ wurde nur mit einer Fehlermeldung quittiert.

Deshalb habe ich es mit diesem Interface probiert, einzige Erwartung war, dass die Schlafeinstellung durchgeleitet wird. Und: ich bin mehr als zufrieden. Ja, Schlafen bei Nicht-benutzung funktioniert. Aber mehr noch: das alte Gehäuse machte an der USB-Schnittstelle maximal 21 MByte/s, das von CnMemory immerhin 27 MByte/s (direkt vom Raspberry Pi). Die Netzwerkübertragung stieg von max. 5,5 MBytes/s auf 7.8 MByte/s (mittels Samba).

An meinem Desktop, mit USB-3.0-Schnittstellen, ist quasi kein Unterschied zwischen dem On-Board-SATA-Controller und der externen Festplatte zu sehen. Rohe Geschwindigkeitstests zeigen bis zu 180 MByte/s, Kopieren über Windows liegt bei recht konstanten 130 MByte/s.

Einziger Nachteil ist die Wärmeableitung. Auch wenn das Gehäuse aus Metall besteht, existiert keine direkte Wärmekopplung zwischen Festplatte und Gehäuse. Abstandshalter sind alle aus Plastik. Das ist zwar besser als ein reines Plastikghäuse – so kann wenigstens die Luft über das Metallgehäuse besser gekühlt werden – aber eine direkte metallische Verbindung zwischen Platte und Gehäuse wäre schon besser.

Wie dem auch sei, ich bin sehr zufrieden, insbesondere auch mit dem Preis, alleine das 12 Volt Netzteil kostet einzeln fast soviel.

 

Update 2015-06-08: Neue Revision 1.1 reagiert etwas seltsam.

Starship Titanic unter Windows 7

Ich hatte ein Interview mit Douglas Adams gehört, und da von Starship Titanic erfahren, ich wusste ja gar nicht, dass das existiert. Auf ebay gibt es das noch zu kaufen, allerdings funktioniert die verkaufte Version nicht unter Windows 7 64 bit. Wie hier beschrieben, auch wenn es da um Vista geht, funktioniert es auch unter Windows 7.
Erstmal muss auf 1.00.42c gepatcht werden (hier zu finden). Im tech support findet sich auch die Cinepak DLL Version 1.10.0.11, die ins Programm-Verzeichnis von Starship Titanic kopiert werden muss.
Dann braucht es noch die SH33W32.dll (Smartheap library), Version 4.0.0.0 (z.B. über DuckDuckGo zu finden (ich habe die DLL von hier).
Dann noch in den Eigenschaften des Programm-Icons angeben, dass es im Kompatibilitätsmodus für Windows XP Service Pack 3 laufen soll, und als Administrator ausgeführt werden darf.
Auf 16:9-Monitoren kommt es öfter zu verzerrten Darstellungen, aber wenn man die Auflösung auf ein 4:3-Format einstellt, sieht es vernünftig aus.

Brother HL-1110 Treiber unter Linux/CUPS/Raspian

Da einer meiner Raspberry-Pis anderer Aufgaben wegen im Dauerbetrieb arbeitet, wollte ich ihn auch als Drucker-Spooler nutzen. Einer meiner Drucker ist ein Brother HL-1110, und wie alles, was ich betreibe, soll der nur dann angeschaltet sein, wenn er wirklich benötigt wird, außerdem soll er im gesamten Netzwerk verfügbar sein.

Um den Drucker per CUPS anzusprechen, muss natürlich erstmal CUPS installiert werden. Ich gehe mal davon aus, dass das schon geschehen ist. Um den Brother-Drcker darüberzu nutzen, muss aber auch ein entsprechender Treiber vorhanden sein. Von der Brother-Support-Seite sind DEB- und RPM-Pakete vorhanden, aber keins, dass direkt auf Raspian funktioniert. Aber es gibt die gute Nachricht, dass der Quell-Code verfügbar ist. Und letztlich braucht es für CUPS nur einen kleinen Teil davon.

Ausgepackt gibt es PPD/brother-HL1110-cups-en.ppd, was man CUPS beim Einrichten eines neuen Druckers direkt als File-Upload geben kann. Zusätzlich braucht es noch filter/brother_lpdwrapper_HL1110, das kopiert man auf dem Ziel-System nach /usr/lib/cups/filter kopiert.

Danach ist der HL-1110 über CUPS für jeden Rechner im Netzwerk verfügbar (je nach Sicherheitseinstellungen, natürlich). Vor allem aber kann ich erst den Druckbefehl abschicken, un später den Drucker anmachen.

 

Update 2017-06-25

Da fehlen wohl ein paar Informationen.

Meine Prämisse: ich drucke von Windows aus auf einen Netzwerkdrucker; die Treiber für den Drucker sind unter Windows installiert.

Wird auf den Drucker etwas ausgegeben, hängt offensichtlich die Verarbeitung davon ab, welcher Datentyp geliefert wird. Wird von Linux aus – z.B. die Testseite von der CUPS-Administration – gedruckt, ist der Datentyp „application/vnd.cups-postscript“. Für den wird brother_lpdwrapper_HL1110 als Treiber genommen (definiert in der PPD). CUPS testet, ob diese Datei vorhanden ist, meldet sonst aber einen Fehler.

Wird hingegen von Windows mit den GDI-Treibern gedruckt, ist der Datentyp „application/vnd.cups-raw“, für den kein Filter definiert ist, da er auch nicht benötigt wird. Der Drucker versteht die erzeugte Datei direkt.

Somit ist CUPS hier nur mit der Verwaltung beschäftigt.

Um den Drucker unter Windows zu installieren, kann man den Druckertreiber von Brother runterladen, tatsächlich den Drucker über USB anschließen (das dämliche Installationsprogramm geht davon aus, dass nur lokaler Druck möglich ist…), den Drucker wieder abziehen und an den Raspberry Pi anschließen.
Oder man entpackt das Paket (z.B. Download für Windows 10 64bit) mit 7zip, dann erhält man unter install\driver\gdi\32_64 die Treiber, die man beim Einrichten des Netzwerkdruckers braucht. Dann entfällt das physische Anschließen.

Mit dem „Source“-Paket, das Brother da anbietet kann kein voll funktionierender Druckertreiber gebaut werden. Da fehlen sehr viele Dateien, insbesonder der Source für rawtobr3, ansonsten könnte man sich alles noch aus den verschiedenen RPM- und DEB-Paketen zusammen suchen.

Nette Sammlung an Programmen

Link

Hier bin ich drauf gestoßen, als ich nach einem Cache-Optimierer für Windows suchte:

AnalogX

Da gibt es auch einiges an interessanten Musik-Tools, sowohl für Wave-Bearbeitung als auch MIDI und für DX-Plugings.

FCA1616 – Sampleraten

Ich muss nochmal etwas korrigieren, was ich hier schrieb: die zur Verfügung stehenden Sampleraten hängen nicht von USB/Firewire ab.

Die Betriebsanleitung schweigt sich leider darüber aus, was zumindest bei mir zu einiger Frustration geführt hat. Mit dem „Digital Select“ Knopf wählt man den digitalen Eingang aus. Die Möglichkeiten sind „Coax“, „Optical“, „ADAT“ und „S/MUX“. Je nach Auswahl ändern sich die möglichen Sampleraten des Geräts. Vielleicht ist das für Profis in dem Bereich völlig normal, mir war das nicht bewusst. Bei jedem Druck auf den Knopf resettet sich das Audiointerface, was im Übrigen echt störend ist, wenn man zufällig dran kommt, jede Aufnahme wird dabei natürlich unterbrochen. Wenn der Treiber (Windows) auf eine Samplefrequenz eingestellt war, die der neue Modus nicht unterstützt, gibt es keine Verbindung zum Gerät. Die LED am FCA1616 blinkt, und der Treiber meldet als Samplefrequenz z.B. „96.0 kHz (unavailable)“.

Zur Verfügung stehen folgende Sampleraten:

Digital Select 44.1 kHz 48.0 kHz 88.2 kHz 96.0 kHz
COAX Ja Ja Ja Ja
OPTICAL Ja Ja Ja Ja
ADAT Ja Ja Nein Nein
S/MUX Nein Nein Ja Ja

Natürlich, wenn ich mich erstmal über ADAT und S/MUX erkundige, habe ich die Information, ich hätte allerdings erwartet, dass es völlig egal ist, welchen digitalen Eingang ich wähle, wenn ich eh nur mit den eingebauten analogen Ein-/Ausgängen arbeite.

Behringer Firepower FCA1616, weitere Erforschung

Ein wenig Zeit konnte ich in das gerät mal investieren. Ich muss dazu etwas redigieren, was ich soeben erst geschrieben hatte. Unter OSX Lion mit USB funktioniert es (bei mir) doch nicht. Das System erkennt zwar das Interface an, aber wenn man dann mal versucht, ein wirklich anliegendes Signal aufzunehmen, kommt entweder nur Stille in Audacity an, oder der Behringer resettet sich regelmäßig bei Aufnahmeversuchen.

Mit ASIO-fähiger Software ist es unter Windows per USB dann doch möglich, alle 8 Kanaäle aufzunehmen, bzw. auf sie auszugeben.

Das Firewire-Problem ist in den Foren schon bekannt: die Dokumentation stinkt einfach. Um zwischen Firewire und USB umzuschalten, muss der Knopf „Digital Select“ gedrückt sein, wenn das Gerät Strom bekommt. Leuchtet bzw. blinkt die LED „USB/FW“ rot, ist der Firewire-Modus an, sonst USB. Das wird natürlich nicht in „Erste Schritte“ erklärt, sondern ist ein Hinweis in der Auflistung der Knöpfe und LEDs…

Mit Firewire war nun OSX bereit, von dem Interface aufzunehmen. Audacity kriegt über alle 8 Kanäle die Daten rein. Soweit so fein, da der Rechner Dual-Boot auf Windows 7 hat, wollte ich dann auch unter Windows das Interface per Firewire ansprechen können. Nach dem Installieren der Treiber aber meldete das Interface Kommunikationsprobleme (die „USB/FW“ LED blinkt, wenn die Verbindung nicht steht, z.B. während der Rechnerboots). Der Gerätemanager listete das FCA1616 aber als voll funktionsfähig. Verschiedenste Versuche wie Neubooten, Runterfahren und allen Strom abschalten, Neuinstallieren der Treiber, brachten kein Ergebnis. Ich startete das Control Panel, das auch der Meinung war, das Gerät wäre korrekt erkannt worden, und sah dann, dass die Samplerate auf „44.1 kHz (unsupported)“ eingestellt war. Über Firewire stehen unter Windows nur 88.2 und 96 kHz zur Verfügung, per USB allerdings 44.1, 48, 88.2 und 96.

Es ist schon etwas seltsam alles

 

Behringer FCA1616, heute angekommen

Endlich ist es da, UPS brachte heute Nachmittag das Audiointerface.

Erster Eindruck nach dem Auspacken: sieht gut aus! Neben dem Audiointerface war noch das Netzteil, je ein USB- und Firewirekabel und ein Papier mit den ersten Schritten.

Zweiter Eindruck: Firewire funktioniert nicht. 3 unterschiedliche FW Anschlüsse, Windows XP und 7 sowie MacOS Lion… keiner wollte das Gerät anerkennen. Weder mit dem mitgelieferten Kabel, noch mit einem anderen war einer meiner Computer bereit, mit dem Gerät Kontakt aufzunehmen. Mit USB geht es bei Windows erst nach einer Treiberinstallation, das Control Panel lässt zu wünschen übrig, schon alleine, weil der FCA1616 auf eine Samplefrequenz manuell eingestellt werden muss. MacOS war sofort mit dem Interface einverstanden.Audacity unter Windows ist nur bereit, jeweils Stereospuren aufzunehmen, alle 8 Eingänge gleichzeitig gehen nicht. Unter MacOS geht es.

Bald sehe ich mir das genauer an, der erste Eindruck war leider nicht so berauschend, wie ich erhofft hatte.