Arghduino

An der ein oder anderen Stelle habe ich schon einmal erwähnt, dass ich kein besonderer Fan von Arduino bin. Vielleicht bin ich noch immer etwas voreingenommen und schätze die Annehmlichkeiten einfach nicht, vielleicht liegt es auch an den Erfahrungen, die ich damit hatte.

Die erste Berührung mit der Plattform hatte ich im Studium – mein erster HiWi-Job war, einen Aufbau aus einer Bachelor-Arbeit zu überarbeiten. Sowohl Hard- als auch Software basierte auf Arduino. Keine Ahnung, was sich der Absolvent dabei dachte, aber er versorgte den Mikrocontroller samt Bluetooth-Modul über eine 12 V-Batterie (die auch in Funksteckdosen-Fernbedienungen zu finden sind), der vermutliche Grund: auf dem Board war ein Spannungsregler verbaut und die Batterie schön klein. Dass die meisten Energie des Aufbaus in Wärme verwandelt wurde (selbst die Batterie wurde warm), war wohl egal. Laufzeit: 10 Minuten. Auch die Software war nicht wirklich der Kracher: Das Teil sollte u. a. kapazitive Messungen durchführen und per Bluetooth übertragen. Nur leider war die verwendete Lib so geschrieben, dass sie gerne Mal die anderen Aufgaben länger blockierte. So lange, dass wichtige Ereignisse versäumt wurden.

Was schlimmer war – die Implementierung auf Seiten von Arduino oder des damaligen Kommilitonen – keine Ahnung. Wahrscheinlich eine Mischung aus beidem.

Schlussendlich habe ich das Teil komplett neu gemacht. Die Hardware wurde von der Größe einer Zigarettenschachtel auf die einer Streichholzschachtel geschrumpft und die Betriebsdauer dank Akku auf knapp 8 Stunden erhöht. Dazu gab es noch ein paar Zusatzfeatures, wie eingebauter Laderegler und einen Taster zum Ein- und Ausschalten. Ok, dafür konnte man den Akku nicht mehr richtig herausnehmen.

Muss ich überhaupt über die Software reden? Das einzige was blieb, war die Grundidee. Der Rest wurde komplett neu in „damals“ noch AVR Studio geschrieben. Der Code war kleiner, flotter und zuverlässiger. Nur das Gesamtsystem krankte etwas, aber aus anderen Gründen.

Vor kurzem hatte ich wieder Kontakt mit der Plattform. Es sollten ein paar Motoren angesteuert werden. Arduino und Treiber waren deutlich günstiger als man es selber jemals machen könnte, also wurde es genommen. Ersterer war ein China-Klon mit CH340 statt zweitem Atmel-MCU. Irgendwann habe ich auch herausgefunden, dass das Protokoll doch nicht STK500-kompatibel (mit entsprechender Änderung kann immerhin avrdude damit umgehen) ist und wie in den Bootloader gesprungen wird. Letzteres ist auch gleich potenziell verhängnisvoll für Linux-User: Der Sprung findet statt, indem die DTR-Leitung geschaltet wird – diese ist mit dem Reset über einen Kondensator verbunden. Doof, dass Linux beim Öffnen eines seriellen Ports kurz DTR anschaltet. Noch dümmer, wenn man mit dem Mikrocontroller über Batchfiles kommunizieren will und er dadurch den Port immer wieder öffnet und schließt und man eigentlich Variablen im Chip halten will. Schlussendlich ist ein Schalter zum Auftrennen der entsprechenden Leitung in der Schaltung gelandet.

Für den schrecklichen Aufbau des Kommilitonen und die etwas eigenwillige Schaltung vom Klon kann Arduino bzw. Genuino (oder wie auch immer die Firma heißt) natürlich nichts. Trotzdem habe ich das Gefühl das eher zweifelhafte Aufbauten oft (nicht immer) gemeinsam mit diesen Kits daherkommen, was vermutlich mit der Zielgruppe zusammenhängt. Diese umfasst nach meiner persönlichen Einschätzung oft Leute, die kein tieferes Verständnis für Elektronik haben und denen dadurch die Hardware primär egal ist, Performance eine eher eine untergeordnete Rolle spielt, dafür aber der Einstieg sehr einfach ist und der Aufbau nach kurzer Zeit irgendwie funktioniert. Als Beispiel fällt mir hierfür der „Heimwerkerking Fynn Kliemann“ ein.

Das fehlende Verständnis und oft leider auch Lernresistenz oder gar Komplettverweigerung der Realität (Lesen und Anwenden von Informationen aus von Datenblättern, um nur eines zu nennen) merkt man dann oft in Elektronik-Foren.

Hate the player, don’t hate the game? Leider nicht ganz.

Habt ihr mal versucht eine vernünftige Dokumentation zu den Arduinos zu finden? Ich habe bis jetzt immer suchen und sammeln müssen. Wo sind die Hexfiles der Bootloader? Wie ist das Pinmapping abseits der Wiring-Bibliothek? Klar, einen „normalen“ Arduino-User kümmert/interessiert das nicht, aber was wenn man aus dieser wattierten Welt ausbrechen will? Da ziehen schnell dunkle Wolken auf.

Zugegeben, ich habe auch schon Arduinos (genaugenommen zwei Pro Micros) gekauft, weil die Boards von der Preis/Leistung unschlagbar waren. Abgesehen davon, dass die Hardware teilweise mistig war (HWB fest verdrahtet, obwohl das auch über Fuses geht, 5V-Regler trotz Versorgung über USB, grauenhaften Schaltplan mit falschem Symbol für den Mikrocontroller) und dieser unsägliche Bootloader, obwohl im Auslieferungszustand ein guter mit DFU-Protokoll installiert wäre.

Ein etwas an die Gegebenheiten angepasster DFU-Bootloader kam sehr schnell auf das Board. Nachdem ich Kontakt mit den Jungs in Norwegen aufgenommen habe, funktioniert sogar das Flashen direkt aus der Ende-Februar-2016-Version von Atmel Studio 7 (Rev 790).

Bei der Software – Entwicklungsumgebung möchte ich es nicht nennen – man ist ohne tiefere Eingriffe auf eine Datei beschränkt, was Spaghetti-Code fördert, man sieht nahezu nichts vom Compiler und die Libs sind – wie schon erwähnt – oftmals grausig.

Dabei ist Atmel Studio doch erstaunlich benutzerfreundlich oder zumindest deutlich Angenehmer für den Einsteiger als IAR, Eclipse oder eine bare-metal-Lösung (als Männer noch richtige Männer waren und ihre Makefiles selber geschrieben haben).

Und dann wären da noch Nicht-Innovationen wie der AAduino, der über über diverse Online-Medien (Hack A Day, Atmel Studio Blog, sogar Heise Online um nur drei zu nennen) lief, ohne dass da besonders hervorzuhebende Leistung der Macher zu sehen war – zumindest das Funkmodul hätte komplett auf der Leiterkarte implementiert werden können.

So sehr ich Arduino und viele (nicht alle) nur einen Facepalm vergönne, so hat die Plattform einen ganz großen Pluspunkt: Sie hat Mikrocontroller und DIY näher an die Leute gebracht. Mit allen vor und Nachteilen. Ich bleibe jedoch dabei, davon allerhöchstens die Hardware zu verwenden.

Warum man niemals versuchen sollte, eine Micro-SIM…

…in den Reader für Mini-SIM zu stecken – und danach mit aller Gewalt sie wieder zu entfernen.

Da ich vor kurzem schon über defekte SIM-Karten schimpfte, hier mal eine Perle aus dem Sammelsurium des alltäglichen Wahnsinns, der hin und wieder auf meinem Basteltisch landet:
sim

Man sollte erwähnen, dass es irgendein Samsung-Telefon war, bei dem üblicherweise eine Schublade über dem SIM-Reader liegt und man nur an die Kante desselben herankommt.

Trotzdem sollte man es auf keinen Fall versuchen, zu weit hineingeschobene Micro-SIM unter Zurhilfenahme von Nadeln, Schraubendrehern unter Anwendung größerer Gewalt zu entfernen. Das Ding war auf jeden Fall hinüber. Internet-Auktionshaus sei Dank gab es Ersatz, wobei der in Form der kompletten „Reader-Flex“ (SIM- und SD-Reader + bisschen Hühnerfutter) daherkam. Mit knapp 20 Euro Einsatz funktionierte das Telefon wieder.

Dupont-Stecker, Baby!

Wenn man mit Devboards, also z. B. dem Arduino, Launchpad, Raspberry Pi oder Beaglebone bastelt, kommt man eher früher als später an den Punkt, dass man eigene Schaltungen daran anschließen will. Klar, man kann den Aufbau auf Lochraster machen und dann mit einer Stift- bzw. Buchsenleiste auf die Anschlüsse gehen, oder alle Kontakte über einen Pfostenverbinder und Flachbandkabel herausführen. Das geht aber auch deutlich einfacher.

Diese Teile, die man auch von Frontpanels (also Taster, LEDs und Lautsprecher) kennt, haben einen Namen (den ich bis vor kurzem auch nicht kannte): Dupont-Stecker.

Sieht wie folgt aus und man bekommt sie auf diversen Handelsplattformen unter den Namen „Dupont-Cable“ fast hinterhergeworfen:

dupont

Ich habe mir alle drei möglichen Kombinationen zugelegt, also Male-Male, Male-Female und Female-Female.

Will man die Enden noch etwas kompakter, kann man die Plastikhülsen auch sehr einfach herunternehmen, indem man die Lasche anhebt und die Hülse herunterzieht. Mit etwas Schrumpfschlauch (1,6 mm) isoliert sind die Kontakte dann sehr schön auf Stiftleisten anreihbar:

dupont_schrumpf

 

Neue Taster für den BC-900

Vor ein paar Jahren gab es endlich mal ein halbwegs vernünftiges Ladegerät zu Weihnachten: Einen BC-900, der auch unter vielen anderen Namen bekannt ist und von eigentlich allen großen Onlineversendern angeboten wird.

Vor dem Winterschlaf wollte ich heute nochmal die Akkus von diversen Solarleuchten reinwerfen und gleich mal schauen, wie viel Kapazität die Teile noch haben. Dazu muss man den ein wenig auf den Tastern herumdrücken. Diese waren schon beim Kauf etwas hakelig: manchmal wurde der Tastendruck direkt erkannt, dann musste man 5-mal drücken, bis was passierte. Heute passierte gar nichts mehr. Egal wie lang oder fest, es war dem Ladegerät egal. Also auf das Ding und gucken, was drin steckt:

BC-900_Schnappscheiben

Schnappscheiben – unverlötet. Die rechte habe ich gleich mal weggerissen, darunter sieht man, dass die vergoldeten Kontakte einigermaßen angelaufen sind. Zwischen Tasterkuppe und angekratzter Leiterbahn vermeldet das Multimeter beim Drücken nichts. Offen. Ist natürlich auch ideal, wenn die Scheiben nicht verlötet sind und es die Fähnchen beim Drücken so verbiegt, dass sie keinen Kontakt zum Via mehr haben. Auf dem Foto oben sieht man (mit etwas Fantasie) auch, dass ich versucht habe, die Pins festzulöten. Fehlanzeige. Auch das vermeidliche Entfernen einer Oxidschicht bringt keine Besserung.

Was tun? Lötstopplack wegkratzen:

BC-900_Angekratzt

und vernünftige(re) Taster auflöten:

BC-900_Taster

Die gab es quasi-gratis bei der letzten Conrad-Bestellung. Geklebt wurde nichts, die Taster halten durch die Lötverbindung mit der Massefläche – auch mechanisch passen sie gut ins Gehäuse.

Passenderweise hat der Hersteller des Laders für jeden Taster auf der Rückseite einen Testpoint angelegt, sodass man sehr bequem an die Signale herankommt.

BC-900_Testpins

Damit die Leiterplatte ins Gehäuse passt, müssen im Unterteil die zwei Nasen weggeschnitten werden, die vorher in die Aussparungen gefasst haben. Die Tastenköpfe, die aus dem Gehäuse heraus schauen, mussten auch knapp 4mm einbüßen.

Der Druckpunkt derselben hat sich etwas in Richtung „weicher“ verändert. Juckt aber nicht, Hauptsache es funktioniert.