Sonntag, 30. Juni 2019

Kurzschluss Junkies [0x0e]: Selbstmordkabel

Feedback

Soundqualität ist ein leidiges Thema. Aber wir verbessern uns stetig, hoffentlich.
Es gibt im Moment viel zu tun, aber wir hoffen am zwei mal im Monat Rhythmus festhalten zu können.

Basti hat mit seinem Schmartwatch Projekt beim Hackaday Price in der Kategorie Flex Designs gewonnen.

Common-Sense-Tipps

Beim Bestellen von Bauteilen für Prototypen schlägt Basti vor, einfach den Bezeichner als kundenspezifische Nummer angeben. Also "R1, R3, R6" für den 10k und "R2, R14, R5" für den 100k usw.

Chris schlägt vor bei Ableitstrommessungen und kabelgebundenen Störern den worst-case Fall zu testen und zu entstören, sodass auch für zukünftige Änderungen der Grenzwerte in einer neuen Norm die Schaltung vorbereitet ist. Dazu hat er ein Selbstmordkabel gebastelt.

In der EMV-Messung vor ein paar Tagen hat Basti ein Video von den WS2812 Single Wire LEDs getwittert.

Als zweiten Tipp erzählt er von seiner Erfahrung mit Vertretern von Distributoren und Halbleiterherstellern. Hier ist eine offene Diskussion über die einzelnen Themen oft hilfreicher als eine hinten rum und 'unehrliche'. Die meisten FAE's und Vertriebler wollen euch helfen und keinen Scheiß andrehen.

Schmartwatch

Basti kommt mit dem Platzieren der BGA Bauteile auf der flex Leiterplatte nicht voran. Die Oberfläche ist zu uneben um den DC/DC Konverter und das Funkmodul sicher mit der Hand zu platzieren. Deshalb hat er sich einen Fineplacer organisiert.
Wenn das nicht hilft, muss er über eine Rigid-Flex-Leiterplatte nachdenken.

Pick and Place

Die STM286 Software nimmt Gestalt an. Stepperansteuerung ist zu 90% fertig portiert, als nächstes kommen die GPIO für Endschalter an die Reihe.

Mini Knöpfchen

Basti hat ein Projekt angelegt, aber der Code mit der kompletten StdLib und touch-lib ist zu groß für den STM8. Jetzt muss verschlankt werden.

Chip der Woche

Der EFM32HG. Ein low power 32-bit µController von Silicon Labs.
Den gibt es bei uns als Evaluation Board zu gewinnen.

Schickt uns Vorschläge, welche physikalischen Schalter ihr mit kapazitiven Tasten ersetzen würdet an: feedback@kurzschlussjunkies.de
Der Gewinner wird von uns nach den Kriterien Praktikabilität und Orginalität bewertet.

Freitag, 14. Juni 2019

Kurzschluss Junkies [0x0d]: Schwarze Knöpfchen

Feedback:

Basti erzählt, wie er vor ein paar Jahren alle Bilder im Blog gelöscht hat. Leider auch die der Kaffeemaschine. Der Text ist aber noch hier zu finden: WLANKaffee
Das Thema: "Wann Bachelor, Master oder Ausbildung machen" wird besprochen. Beide sind einer Meinung, es gibt mehrere richtige Wege.
Der Kurzschluss Blog hat einen neuen Author: Rapha. Er schreibt aktuell gerade an einer Serie zu seinem Git Command Line Tool

Common Sense Tips:

Basti gibt den Tipp, alle Software und Quellcodes zur Inbetriebnahme einer Leiterplatte zusammen zu packen und abzulegen. Optimal geht das in einer virtuellen Maschine. Die kann man nämlich auch noch in 5 Jahren starten, kleine Änderungen vornehmen und eine angepasste Testsoftware für die eigene Schaltung flashen. Das Gleiche gilt für Leiterplatten. Auch hier spricht nichts dagegen alles was zum Erstellen verwendet wurde, also Software, Bibliothek, Datenblätter, usw. in ein Archiv zu legen und mit den Gerberdaten zu archivieren. So können in der Zukunft Änderungen an den Daten vorgenommen werden ohne die Daten in die aktuellsten Versionen und Tools umziehen zu müssen.
Chris gibt den Tipp, sich immer wieder an Neues heranzutrauen, auch wenn es mit einem Risiko verbunden ist, die Technik entwickelt sich ständig weiter.

Schmartwatch:

Es gibt nicht viel Neues, die letzte Runde im Lötofen sah vielversprechend aus, muss aber noch ein wenig nachgearbeitet werden.

Pick and Place:

Das Board wurde von Basti zum STM286 umgetauft. Es regt sich was: UART funktioniert und GRBL lässt sich ansprechen. Jegliche anderen Funktionen funktionieren noch nicht. Es beginnt die Portierung zur CubeMX HAL

Mini Knöpfchen:

Die von Chris das letzte Mal vorgestellten Boards sind angekommen und er hat auch schon ein paar Bauteile bestückt. Dann geht die Platte an Basti, der macht dann dafür eine Software.

Chip der Woche:

Chris stellt diese Woche die MBR180S vor, eine Schottkydiode mit 80V Sperrspannung. Sie hat bei 1A nur 800mV Spannungsabfall, der sich bei 50mA auf 400mV verringert. Es gibt die Diode im SOD123 Gehäuse, das ist klein, aber gut handlebar und sie ist billig. Mit 3 Cent in größeren Stückzahlen ist man dabei.
Basti erzählt von einem Besuch von Murata, und wie die Situation mit den MLC-Kondensatoren in Zukunft aussehen wird.

Donnerstag, 13. Juni 2019

NAGCL [I]

In dem Eingangsartikel zu meinem Software-Projekt NAGCL (das habe ich jetzt als Interimsnamen auserkoren) bin ich kurz auf die angedachten Features des Programms eingegangen, sowie auf die Historie und Motivation dazu.
In diesem Artikel möchte ich ein kurzes Update zum aktuellen Stand des Projekts geben, sowie ein paar Implementierungsdetails vorstellen.

Für die wichtigsten Elemente des Programms bestehen mittlerweile erweiterbare Gerüste. Das trifft vor allem auf die Benutzung im Shell-Modus und auf die Übergabe von Parametern beim Programmaufruf zu.
Ebenfalls kann bereits eine Textdatei mit Pfaden zu git-Repositories eingelesen werden. Diese Pfade werden auf Existenz, Zugriffsrechte und ob diese auf ein gültiges git-Repository zeigen geprüft.

Um alle Einträge der Textdatei verwalten zu können, werden diese in einer einfach verlinkten Liste (Linked List) abgelegt. Diese Liste wird bei jedem Programmaufruf bzw. -start neu angelegt.
Im Shell-Modus bzw. als Parameter beim Programmaufruf können Elemente der Liste hinzugefügt oder entfernt werden. Ob die Liste verändert wurde, wird beim Beenden des Programms dem Nutzer gemeldet. Als letzter Schritt wird die Textdatei - sofern eine Änderung der Liste vorgenommen wurde - aktualisiert, d.h. Pfade von Repositories werden hinzugefügt oder entfernt. Die Implementierung einer einfach verlinkten Liste war notwendig um einen dynamischen Datentyp zur Verwaltung der Repositories zur Laufzeit zu erhalten. Die Implementierung ist allerdings bei Weitem nicht so elegant wie die von Linus Torvalds' Liste in der Kernel-Implementierung. Eine derart generische Implementierung einer Liste wird an dieser Stelle von mir aber auch nicht benötigt.

Aktuell arbeite ich daran, den Log (entspricht dem Befehl git log) eines git-Repositories auszugeben sowie den ersten Versuchen einer GUI-Implementierung. Die Implementierung der git-Funktion erfolgt mit der API libgit2, die Implementierung der GUI-Funktionen mittels der Bibliothek ncurses.

Die größte Veränderung für mich selbst war die Umstellung von Makefile zu cmake als Build-Setup.
Der Hauptgrund für den Wechsel des Build-Setups war, mich mit cmake auseinander zu setzen und einzuarbeiten. Aktuell kann das Projekt mit allen benötigten Bibliotheken gebaut und verlinkt werden, wenngleich das Setup im Moment unübersichtlich ist und noch nicht dem gewünschten Stand entspricht.
Im endgültigen Stand sollen alle benötigten Bibliotheken heruntergeladen und mitkompiliert werden. Zudem soll die Erstellung der Dokumentation mittels Doxygen unterstützt werden, sowie Testcases zur Überprüfung der korrekten Ausführen der Software bei der Installation.
Als Editor benutzte ich vim zusammen mit cscope und dem Plugin Conque-GDB zum graphischen Debuggen des Programms.

Zuletzt möchte ich erwähnen, dass ich noch offen bin für Namensvorschläge und wie immer gilt:
Schreibt, kommentiert, diskutiert und abonniert den Podcast!

Dienstag, 4. Juni 2019

Nicht noch ein GIT-Client

Vor ein paar Jahren hatte ich ein Bash-Skript geschrieben um git-Repositories automatisiert zu aktualisieren, also ein git pull auf dem aktuell ausgecheckten Branch des Repositories.
Das Skript funktioniert mit einer Textdatei in der die Pfade zu den Repositories angegeben sind und aktualisiert diese, sofern keine Konflikte vorhanden sind.
Die Ausgabe der Informationen welche Repositories überprüft werden und welche aktualisiert wurden, werden nicht nur über das Terminal angezeigt, sondern auch in einer Log-Datei gespeichert. Dieses Log kann entweder immer wieder neu erzeugt werden bei jedem Aufruf des Skripts oder als fortlaufende Datei.

Um mich in Python einzuarbeiten hatte ich im Anschluss einen Wrapper für das Bash-Skript implementiert, mit welchem man die Repository-Liste zur Aktualisierung bearbeiten kann (Reposietories hinzuügen oder entfernen) und in einem Shell-Modus läuft. Zusätzlich kann das Python-Program das Bash-Skript aufrufen, die Log-Infos der Repositories anzeigen und ein neues Terminal-Fenster mit dem Pfad eines gewünschten Repository öffnen (zumindest für die gängigsten Unix-Terminal-Programme). Letzte Funktion hat den Zweck einfach zwischen den Repositories wechseln zu können und git per CLI zu bedienen.
Da das Python-Programm im Shell-Modus läuft, habe ich zusätzlich eine Auto-Komplettierung für Repositories und Befehle implementiert.
Das Bash-Skript sowie das dazugehörige Python-Programm sind auf Github veröffentlicht und über die Jahre gab es doch den Einen oder Anderen clone des Projekts. Darüber freue ich mich auch, aber ich habe bisher leider keine Rückmeldung zur Nutzbarkeit erhalten.

Nun ist es so, dass ich persönlich kein großer Fan von Python bin und habe daher beschlossen ein C-Programm zu implementieren, dass die Funktionalitäten des ursprünglichen Bash-Skripts und des Python-Programms beinhaltet.
Das neue Programm kann als Terminal-Befehl, im Shell-Modus und mit einem Terminal-UI (ncurses) ausgeführt werden. Zusätzlich sollen weitere grundlegende Funktionalitäten implementiert werden um einen git-Client zu erhalten.
Der größte Unterschied stellt wohl die Art und Weise wie mit git von den Programmen aus interagiert wird dar. Während beim Bash-Skript und dem Python-Programm die git-Befehle als Systembefehle in einem Subprozess ausgeführt werden, soll das bei der C Implementierung mittels API funktionieren. Dazu verwende ich libgit2.
Über den aktuellen Status und die Implementierungsdetails gehe ich in Folgebeiträgen ein. Veröffentlich wird das Projekt auf Github, wenn ich die ursprüngliche Funktionalität fertig implementiert habe, also die Auto-Aktualisierung von Repositories in einer Liste.
Aktuell trägt das Projekt noch den unkreativen Namen gitmanager, aber ich denke über eine Umbenennung in yagcl (Yet Another Git CLient) oder nagcl (Not Another Git CLient) nach. Für kreative Vorschläge bin ich offen (bitte nicht Git McGitFace).

Links:

Montag, 3. Juni 2019

OSICs - Open Source Integrated Circuits

In der sechsten Folge der Kurzschluss Junkies habe ich mit Basti und Chris über FPGA- und
ASIC-Entwicklungen gesprochen. In dieser Beitragsreihe möchte ich Open Source Software zur IC-Enticklung vorstellen und auf deren Fähigkeiten, bzw. Möglichkeiten eingehen.

Ein Beispiel, dass mit freier Software ein IC erstellt werden kann, ist die Realisierung eines auf einem RISC-V basierenden SoCs. Der verwendete Softcore ist der PicoRV32 in einem QFN-48 Package der mit ADCs, DACs und einer seriellen Schnittstelle (SPI) erweitert und bei efabless gefertigt wurde.
Die Toolchain die dafür hauptsächlich verwendet wurde heißt Qflow und verbindet Tools zur Synthese, Logikminimierung, Placement und Routing von Standardzellen-Logik. Die Firma efabless bietet die Möglichkeit eigene Designs zu realiserun und hostet eine Toolchain die selbst teilweise auf Qflow basiert.

Der Hauptentwickler von Qflow heißt Tim Edwards und dieser hat bei eeweb.com ein Interview gegeben in dem er seine Arbeit und Philosophie zur freien Software für den Chip Entwurf vorstellt und erklärt. Der Aufbau von Qflow ist auf opencircuitdesign.com in Detail beschrieben, dennoch möchte ich nachfolgend einen kurzen Abriss über die wichtigsten Elemente der eingebundenen Software geben.

Qflow nutzt zur Synthese yosys, eine offene Synthessuite für FPGAs und ASICS, die von Clifford Wolf entwickelt wurde. Diese synthetisiert Verilog Designs und bietet - bei vorhandener Bibliothek - nicht nur eine Logikminimierung an, sondern auch ein Mapping auf Standardzellen. Die Logikminimierung erfolgt mittels abc, einem Tool das bei der Universität von Berkley entwickelt wurde und auch eine Verifikation von Logikschaltungen zur Verfügung stellt. Die Stärke von yosys liegt in den implementierten Durchläufen zur Synthese und Verifikation. Diese können je nach Anforderung adaptiert werden um so die Optimierungdurchläufe auf mögliche Besonderheiten anzupassen. Solche Besonderheiten können zum Beispiel der Standardzellenbibliothek des Herstellers geschuldet sein.
Eine weitere Stärke ist die Möglichkeit yosys über Skripte bedienen zu können.

Die Platzierung erfolgt mit graywolf, einem Tool das mittels Simulated Annealing Standardzellen plaziert. graywolf ist ein Fork des mittlerweile kommerziellen Tools Timberwolf, das für eine Lizenz einen Preis von 50k USD ausruft und in Yale entwickelt wurde.

Qrouter schließlich verbindet die Standardzellen mittels dem Lee-Algorithmus und unterstütz bis zu sechs Metalllagen. Damit lassen sich, wie das Beispiel des RISC-V basierenden SoCs zeigt, recht komplexe und große Designs realiseren.
Abgerundet wird die Toolchain mit einem LVS-Checker (netgen) swoie einem Layout-Editor mit der Fähigkeit zum DRC (magic).

Die größten limitierenden Faktoren stellen letztlich die Bauteilbibliothek und die Zieltechnologie dar. Die Bauteilbibliothek insofern, als dass diese von den einzelnen Halbleiterherstellern i.d.R. gekauft werden muss und die Zieltechnologie dahingehend, dass es eine Sache ist, ein Design mit einer 120nm-Struktur oder größer zu realisieren oder 90nm und kleiner. Die Hauptschwierigkeit stellt hier die Abschätzung der Laufzeitverzögerungen dar. Wer sich aber einfach für Chip-Entwicklung, Algorithmen und DIY-Realisierungen mit offenen (beispielhaften) Bibliotheken interessiert, oder gar mit einem Start-Up/kleinem Unternehmen Chips realiseren möchte, bekommt mit diesen Projekten einen wunderbaren Einstieg und nützliche Software an die Hand mit der wirklich etwas realisiert werden kann. Dank Quelloffenheit können diese Programme sogar angepasst und erweitert werden.

Abschließend möchte ich erwähnen, dass diese Projekte nicht nur einen tiefgehenden Einblick in die Herausforderungen für CAE-Tools zur Realisierung von integrierten Schaltungen bietet, sondern auch exzellente Beispiele für gut implementierten und dokumentierten Code sind (überwiegend C und C++).

In weiteren Beiträgen möchte ich die erwähnten Algorithmen genauer vorstellen, sowie weitere freie Software für den Chip-Entwurf sowie eine freie, erweiterbare Suite für Xilinx FPGAs. Auch kleine Tutorials und Anleitungen zur Nutzung der Software sind angedacht.
Schreibt, kommentiert, diskutiert und abonniert den Podcast!

Links:

Dienstag, 21. Mai 2019

Knöpfchen mal in klein

Es wird ein Evalboard geben, auf Basis des STM8L151 Mikrocontrollers.
Geplant ist später die Firmware mittels dem UART Bootloader von ST hoch zu laden. Es wird also kein zusätzlicher Programmer benötigt. Nichts desto trotz sind die Signale SWIM und NRST, sowie 3V3 und GND Lötpads geführt. Man weiß ja nie ;)

Das Board wird follgende Schnittstellen haben:
  • Cap-Touch (16 Button)
  • RGB OneWire LED
  • UART mittels micro USB
  • IR-UART
  • 3Dig 7Seg (Diskret)
Der Schaltplan sowie das Layout sind bereits fertig. Bei den Cap-Touch-Tasten muss darauf geachtet werden, welcher Typ des STM8L151 verwendet wird. Abhängig vom Typ ändert sich die Density Angabe und es können mehr oder weniger Tasten realisiert werden. Das findet man am schnellsten im UM1606 von ST auf Seite 54. Vermutlich wird das restliche Die für den Flash benötigt, da ST eine Cap-Touch Hardwareunit hat. WICHTIG: Sollte nachträglich mehr Flash benötigt werden muss dass vorher bei der Tastenzuweisung berücksichtigt werden.


Als Knöpfchen sollen SK6812 LEDs verwendet werden. Diese LED ist ähnlich der WS2812, die SK6812 ist aber reflow-tauglich, zumindest laut Datenblatt.
Der IR-UART kann rein theoretisch auch zum Firmwaredownload verwendet werden. Dies wollen wir auf jeden Fall auch überprüfen.

Da eine 7-Segment Anzeige kostspielig ist, wurde eine "diskrete" 7Seg Anzeige realisiert. Wir werden sehen, wie gut diese ablesbar ist. Sollte es zu schlecht sein, wurde ein "Heissklebe- bzw. Silikonrahmen" in das Layout integriert. Evtl, ist es möglich dieses Stück FBG als Maske zu nutzen.

Ein weiteres Feature ist, dass die Anzeige nicht einfach ein flacher Teil der FBG ist, sondern als "Aufsteller" an die FBG stirnseitig angelötet werden kann. Mal sehen wie gut das Alles so funktioniert.


Kurzschluss Junkies [0x0c]: Knöpfchen in klein

Feedback:

Danke für den Wera-Flaschenöffner von einem anonymen Spender.
Herzi, viel Spaß mit dem MP1 Evalboard von ST.

Kleine Vorstellung von Chris:

Realschule -> Azubi -> Fachabitur -> Studium -> Entwickler mit Leib und Seele
Hier der versprochene Steam Link und der Code: SB5HW-HQAA

Geschenke Geschenke:

Basti hat einen Echo Dot bekommen für seinen Alexa Skill: Was würde Rolf Sagen?

Aus Fehlern lernen:

Heißt ab sofort: Common-Sense-Tipps:
Wenn mehrere Spannungen zur Versorgung eines Boards verwendet werden, dann sollte das Board diese Spannungen an allen Eingängen abkönnen. Beispielsweise können Transzorb-Dioden eingesetzt werden, die sollten aber nicht dauerhaft belastet werden, sonst werden sie warm und gehen kaputt. Gedacht sind die für einen Spannungspuls und nicht für Dauerhafte Überspannung. Ein 'Feldversuch' hat gezeigt, dass auch ein Raspberry Pi zwei Wochen mit 12V laufen könnte.

Nerds halt:

Verpackungsmaterial ist sehr Interessant. Vor Allem das Material auf dem fremde Leiterplatten gebohrt werden. Das wird zum Beispiel als Schutz beim Versand von Lötpasten Schablonen verwendet.

Pick and Place:

Wir haben unsere erste Platine bestückt. Die Lösung der Probleme vom vorherigen Versuch war den Kompressor mit genug Druck zu betreiben. So hatte die Maschine konstanten Arbeitsdruck. Außerdem haben sich die Gurtabschnitte im Feeder verklemmt. Ab sofort werden nur noch Rollen geordert.

Wieder neues Projekt:

Chris hatte schon erzählt, dass er 50 STM8L Mikrocontroller gefunden hat. Basti hatte die Idee daraus ein Evalboard auf Basis des Knöpfchenspiels zu entwickeln. Dieser werden wir evtl. auch verlosen, verkaufen oder ähnliches. Ein Blogpost dazu folgt. Es wird das Knöpfchenspiel in klein mit einer IR-UART Kommunikation und diversen Extras.

Zur Info:

Chris baut sich einen Home-Server auf. Dieser solle eine doppelter Redundanz der Daten bsitzen und hat daher 4 Festplatten. Dabei läuft ein Dauerversuch, der WD Red mit Seagate Ironwolf vergleicht. Chris setzt aber auf die allseits bekannte Mediamax und WD Green. Wenn die erste Platte ausfällt, haben wir einen Verlierer gefunden.

Chip der Woche:

Diesmal kein neuer, aber Basti kann jetzt endlich Gehen, Radfahren und Laufen unterscheiden, da das PC-Interface Board für den LSM6DSOX angekommen ist. Jetzt hat er eine Lösung, kennt aber das Problem noch nicht.

Montag, 6. Mai 2019

Kurzschluss Junkies [0x0b]: And the winner is...

Neuigkeiten

In einem komplexen Losverfahren mit dezentraler Ziehung haben Chris und Basti einen Gewinner ermittelt.
Der Sieger steht fest: Herzi! Wir melden uns dann bei dem Gewinner.

Aus Fehlern lernen

Basti hat die EMV Probleme vom LAN behoben. Die RGMII Signale sind jetzt mit Serienwiderständen und reduzierter Treiberleistung wesentlich weniger 'gifitg'. Ob das alles wirklich geholfen hat, wird eine Messung in der EMV Halle zeigen.

Projekt Schmartwatch

Schablone für die Leiterplatte ist bestellt, aber noch nicht angekommen, daher gibt es von dieser Seite nicht viel zu berichten.
Basti hat den Code angeschaut und sich gefragt, wer so einen Unsinn programmiert hat. Die kurze Antwort ist: Er.

Projekt Pick and Place

Basti hat die Wette von letzter Folge gewonnen. Die Daten auf der Pick and Place Maschine sind binär gespeichert. Allem Anschein nach ein direkter Memcopy aus dem RAM des 286er.
Die Maschine läuft, hat aber noch keinen Namen. Trotzdem haben Chris und Basti schon ein paar Zyklen mit der Maschine gefahren. Dabei haben sie gelernt, dass der Luftdruck eine entscheidende Rolle spielt.
Chris will immernoch die Retrofit Platte mit Hilfe der alten Software bestücken.
Basti hat mit der Software für das Retrofit Board angefangen. Da kommt dann grbl rein und Basti ersetzt die AVR Hardware Codes mit Code für die CubeMX HAL.

Chip der Woche: SK6812Mini

One-Wire RGB LED. Ist auf den selbstklebenden LED RGB Strips. Lässt sich reflow löten. Kostet nur je 8ct. bei 100 Stück.
Aus dem LED Vorrat von Chris wollen wir Miniknöpfchenspiele bauen.

Samstag, 27. April 2019

Pick and Place: Teil2 JUKI Placemat 460 Retrofit Board

Wie im Podcast schon erwähnt, haben wir uns überlegt den 286er der JUKI Placemat 460 durch einen STM32F4 zu ersetzen. Also gesagt getan. Erst war die Überlegung das Steuerboard inkl. PC zu ersetzen und die neue Flachbaugruppe an die gleiche Stelle wie die alte Steuerplatine zu possitionieren. Sozusagen ein Retrofit Board. Alle alten Stecker sollten verwendet werden. Als dann die alten Schaltunterlagen gesichtet wurden, wurde diese Entscheidung kurzerhand überdacht und verworfen. Es wurde ein Board entwickelt, welches zwar den 286er ersetzt, aber nicht die Steuerplatine. Dazu musste einfach nur die 3V3 Welt des STMs in die 5V Welt der Steuerplatine umgesetzt werden.
Wie es so ist, wurden noch ein paar Interfaces neu ergänzt. Da noch Unsicherheit besteht, welches das Richtige ist, sind hier mehrere zum Einsatz gekommen. Es wurden Interfaces für eine µSD Karte, ein 100MBit LAN und ein USB zu UART bereitgestellt. Da auch die Überlegung besteht, den Bestückkopf um mehr als nur 90° drehen zu lassen wurden auch noch 2 Polulu Steckplätze vorgesehen. Alles in allem ist die Platine doch sehr kompakt geworden. Geradeeinmal 100x85mm.

So in der Art soll das Board später mal eingebaut sein. Im Idealfall werden nur die 2 Flachbandkabel benötigt und das Board ist fertig zur Verwendung. Bei den Bauteilen wurde darauf geachtet, möglichst wenig Varianz zu haben. Für das komplette Board, kommen nur 15 verschiedene SMD und nur 5 verschiedene THT Bauteile zum Einsatz. Alle Bauteile waren bei JLCPCB  bzw LCSC bestellbar. Genug Bauteile für 2 Flachbaugruppen, 5 Rohleiterplatten und eine Schablone haben zusammen nur ca. 80€ gekostet. Sobald alles da ist wird es spannend. Mal sehen ob die Flachbaugruppe als erste mit dem Bestückautomat herzustellen geht.

Donnerstag, 18. April 2019

Kurzschluss Junkies [0x0a]: Hasendraht gegen Elektrosmog

Neuigkeiten

Wer das STM32MP157C-DK2 Evaluationsboard gewinnen möchte, kann uns eine Email schreiben an: feedback@kurzschlussjunkies.de Wir melden uns dann bei dem Gewinner.

Aus Fehlern lernen

Basti hat EMV Probleme mit LAN. Die RGMII Signale sind in der Abstrahlung weit über dem Grenzwert. Er hat aber schon einige Ideen, wie er die Störaussendung beheben kann.
Um die Precompliance Messungen zu vereinfachen haben Chris und Basti einen geschirmten Raum mit Hasendraht zugeflickt. Jetzt können da besser nach Störern im Bereich 30 - 1000 MHz gesucht werden.

Projekt Knöpfchenspiel

Das Knöpfchenspiel hat über das letzte Wochenende 400 Spiele gesehen. Dabei sind nur zwei Schalter und eine LED ausgefallen. Das Projekt ist also erfolgreich beendet worden. Jetzt steht es erst einmal im Keller.

Projekt Schmartwatch

Die Flex-Leiterplatten sind angekommen. Das Löten gestaltet sich aber etwas schwieriger als bei normalen FR4 Boards.
Zur Stabilisierung hat Basti die Flex-Leiterplatte auf eine FR4 Leiterplatte geklebt. So ist sie besser handhabbar und kann im Reflow-Ofen gelötet werden. Es gibt eine komplett verlötete Leiterplatte, allerdings ist die Schaltung nicht funktional. Zwischen + und - befindet sich in beide Richtungen eine 0,4V Diodenstrecke. Jetzt versucht Basti es mit einer neuen Siebdruckschablone.

Projekt Pick and Place

Chris hat ein Interfaceboard entworfen, dass den 286er ersetzt. Darauf befindet sich ein STM32F4 und der soll mit der Software grbl die Steuerung der Maschine übernehmen.
Chris möchte das Board noch mit der originalen Steuerung bestücken. Basti sieht das sehr skeptisch und ist der Meinung, dass die Daten, die die Maschine abspeichert nur im Binärformat auf den Disketten sind. Chris wettet dagegen. Es geht um eine Kiste Bier.

Chip der Woche: DRV8323(R)

Chris stellt den BLDC Motortreiber vor, der sowohl über Widerstände, als auch SPI konfiguriert werden kann. Der Chip an sich bietet jede Menge Funktionalität unter Anderem:

  • Drei Halbbrücken
  • 100% PWM Duty Cycle
  • Buckregler mit 60V Input oder Linearregler
  • Integrierte Strommessung

Für alle Interessierten gibt es die Info hier bei TI: DRV832x

Dienstag, 16. April 2019

Schmartwatch [14]: Flex Baugruppe bestücken

Die flexieblen Leiterplatten wurden geliefert und ich kann jetzt mit der Bestückung beginnen. Die Bestückung der ersten Leiterplatte werde ich in einzelnen Phasen durchführen. Zuerst wird der DCDC Konverter U2 bestückt. Dieser sitzt auf 6 BGA Bällchen und ist nicht leicht zu platzieren.
Wie man in den Aufnahmen bereits sehen kann, ist die Referenzierung der Siebdruck, Lötstopp und Kupfer Maske nicht ganz akkurat. Daher wurde an den Stellen der kleinen Landepads auch nachgearbeitet. Mit dieser Modifikation sollte es nun möglich sein die Bauteile korrekt und ohne Kurzschluss zu verlöten. Wenn ich die TPS61099 verlötet habe, kann ich mit dem Multimeter die Lötstellen auf Kurzschlüsse prüfen. Das Verlöten wird mit dem Heißluftfön passieren. Dabei wird mit Flussmittel eine Barriere zur Athmosphäre hergestellt (viel hilft viel) und der Chip erhitzt, bis das Lötzinn flüssig ist. Die suaerstoffhaltige Athmosphäre soll absgeschottet werden, um ein oxidieren (verbrennen) des Lot zu vermeiden. Im industriellen Herstellungsprozess wird das mit zum Beispiel einer Schutzathmosphäre erreicht. Anschließend kann dann mit dem Lötkolben die restliche Beschaltung dazugelötet werden. Wahlweise kann auch hier die Heißluft eingesetzt werden um die Bauteile zu verlöten.



Wenn der Regler aus den 3V Eingangsspannung die gewünschten 3,3V Ausgangsspannung erzeugt, kann die MCU, also der Microcontroller U3 bestückt werden. Dieser hat ebenfalls Landepads, die allerdings größer sind als die kleinen Kreisförmigen des Spannungsreglers. Hier musste nicht nachgearbeitet werden um die Pads mit Lötstopplack zu trennen. Diese Trennung ist wichtig, denn sonst könnnen sich Brücken bilden, die man von Außen nicht sehen kann. Für den Microcontroller kann ebenfalls eine Kurzschlussmessung erfolgen, ebenso wie eine optische Inspektion unter dem Mikroskop. Wenn der Lötvorgang für Gut befunden wird, kann die restliche Peripherie um den Controller gelötet werden. dazu gehören: Stützkondensatoren, und Vorspannungswiderstände. Wenn alle diese Komponenten verlötet sind, sollte der Controller über den Debug-Port erreichbar sein.
Sollte das der Fall sein, kann mit der Bestückung der externen ePaper Beschaltung begonnen werden. Diese, zusammen mit dem Stecker J3 ist für sie Uhrenfunktion absolut notwendig. Die Echtzeituhr und der Bewegungssensor werden nacheinander dazugelötet und auf Kurzschlüsse überprüft. Jede der Komponenten sollte dann einzeln in Betrieb genommen werden.

Die Bilder zeigen, dass der Offset des Siebdrucks leider so stark ist, dass der Rahmen um die Komponenten nicht als Referenz zum Platzieren herangezogen werden kann. Das ist schade, denn jetzt muss ich mich auf die optische von der Seite erfolgende Bewertung der Platzierung verlassen.


Die Rückseite der Flexplatine ist mit einer dicken Schicht Polyimid (PI) versehen. Da auf der Rückseite allerdings auch einige Messpunkte anfgebracht sind, wurde in der Schicht Öffnungen vorgesehen.

Diese Öffnungn sind groß genug um mit dem Tastkopf an das darin liegende Pad zu gelangen. Somit ist das Testen in einem Testadapter möglich. Diesen habe ich allerdings noch nicht entworfen.
Um die Uhr weiter zu stabilisieren wird der Batteriehalter in der Mitte mit einem thermisch aushärtenden Kleber fixiert. Das Kunststoffgehäuse des Halters kann so Längs und Quer Kräfte aufnehmen, die die Platine in der Mitte durchbiegen würden.


Beim Auflöten der zusätzlichen Komponenten habe ich an eine noch unbekannten Stelle einen Kurzschluss, oder besser gesagt eine Diodenstrecke von  0,4V in beide Richtungen. Hier muss ich also erst noch ein bisschen nacharbeiten, bevor ich mit dem Prototyp eine Funktion testen kann.

Wenn die Funktion gegeben ist, werde ich als nächsten Schritt die Software so weit fertig machen, dass sie initial released werden kann. Dazu fehlt noch ein wenig Code, vor allem die Funktion die Updatemuster des ePapers zu kontrollieren.

Montag, 8. April 2019

Schmartwatch [13]: Flex Baugruppe bestellen

Wie bereits von Anfang des Projekt an vorgesehen, soll die Leiterplatte der Schmartwatch gleichzeitig auch das Armband sein. Dazu ist eine flexible Leiterplatte vorgesehen. Diese Art von Leiterplatte ist im Gegensatz zu herkömmlichen Leiterplatten aus eine Kunststofffolie hergestellt und nicht aus Glasfaser verstärktem Epoxid-Harz (FR4). Gewöhnliche Leiterplatten aus FR4 lassen sich mit einer Mindestdicke von 0.4mm herstellen. Das ist aber nicht flexibel genug für unsere Anwendung als Armband.
Eine wichtige Eigenschaft einer Leiterplatte ist die Möglichkeit sie im Reflowprozess zu verlöten. Dazu muss das Leiterplattenmaterial allerdings auch tempertaurresistent sein. Bleifreies Lötzinn schmilzt bei 217°C und ein gewöhnlicher Reflowprozess steigt bis auf 245-250°C an um die Löttemperatur für ca. 30 Sekunden aufrecht zu halten. [Quelle]

Quelle: http://www.gp-ics.com/pdf/far1.pdf
Die flexible Leiterplatte muss diese Temperaturen aushalten können, ohne ihre Form und Festigkeit zu verlieren. Aus diesem Grund ist das Basismaterial der Leiterplatte ein Polyimid mit einer Stärke von 12,5µm. Auf dieses Basismaterial wird eine 13µm dicke Kleberschicht und 18µm Kupfer aufgebracht. Das Kupfer bekommt dann eine Deckfolie aus Polyimid mit 25µm Stärke. Zur Stabilisierung der Leiterplatten an den Stellen an denen Bauteile bestückt werden, sind zusätzlich zu der 170µm dicken Leiterplatte 150µm dicke Stabilisierungplatten aufgeklebt, ebenfalls aus Polyimid.

Somit ergibt sich eine Dicke von 0,325mm für die Leiterplatte mit Stabilisierungsplatte. Diese soll die benötigte Stabilität mitbringen, um die Bauteile nicht durch einfache Biegung abreißen zu können. Für das Handhaben wird allerdings noch ein stabilerer Rahmen benötigt. Dieser soll ebenfalls reflow geeignet sein und muss daher auch aus einem temperaturstabilen Kunststoff hergestellt werden. Aktuell werde ich eine unbestückte FR4 Leiterplatte als stabilisierendes Element verwenden und die flexible Leiterplatte mit Kapton Klebeband befestigen. Kapton ist ebenfalls ein Polyimid und kann einen Reflow-Prozess locker verkraften. Wenn die Bauteile der Uhr einmal verlötet sind, sollten sie für mehr Eigenstabilität sorgen. Im Design ist zu erkennen, dass der Batteriehalterung in der Mitte der Schaltung sitzt. Dieser ist selbst noch zusätzlich mit doppelseitigem Klebeband fixiert und somit eines der stabilisierenden Elemente.

Wenn die Uhr trotzdem zu instabil ist, werde ich eine gefräste Aluminiumplatte als Basis verwenden können. Die Testpunkte am Boden der Leiterplatte sind nur mit Messspitzen durch kleine Öffnungen in der stabilisierende Folie erreichbar, sind aber nicht durch eine flache Metalloberfläche kontaktierbar.

Bestellt habe ich die Flex Boards bei PCBgogo. Mit 8 Tagen Herstellungszeit sind die Flex-Boards bereits fertig und zur Zeit befinden sich die Leiterplatten bei der Post in Hongkong. Kann also nur noch ein paar Tage dauern, bis sie geliefert werden. Dann sehen wir weiter, Bauteile sind genügend vorhanden.




Sonntag, 7. April 2019

Pick and Place: Teil1

Wir haben uns einen Bestückautomat gekauft. Wie das mit unseren Käufen meistens so ist, spontan. Chris hat den Automat bei ebay Kleinanzeigen gesehen und 2 Tage später haben wir ihn in den Keller von Basti gebracht. Der Automat wiegt stolze 300kg und besteht hauptsächlich aus Stahl.

Der Automat  besitzt einen Transformator, der die Eingangsspannung von 230VAC in 100VAC umwandelt. Dieser wiegt stolze 12 kg und besteht aus ziemlich viel Kupfer. Die 100VAC Spannung wird im Automat in zwei DC Spannungen konvertiert. 24V und 5V. Bei Kauf und Erst-Inbetriebnahme im Keller zeigt der Steuerungsrechner eine Fehlermeldung an. Diese war leider in den Unterlagen nicht dokumentiert und lautete "Notstop betätigen! PWB-Stecker nicht verbunden." Der Steuerungsrechner ist ein 286er der mit dem Automaten über parallele Schnittstellen kommuniziert. Die parallelen Schnittstellen sind zwei Einsteckkarten in den ISA-Bus des Rechners. 

Bei der Fehlersuche wie wir die Fehlermeldung loswerden, hat Chris herausgefunden, dass die LED des 5VDC Nezteil nicht leuchtet. Wir haben uns mit einem Labornetzteil an den 5V Kreis gehängt, nachdem wir mit einem Multimeter auf Kurzschluss nach Masse getestet haben. Die Stromaufnahme war ca. 500mA und die Fehlermeldung verschwand. Also haben wir uns entschlossen das Netzteil zu reparieren. Bei näherer Untersuchung hat sich gezeigt, dass einer der Elektrolyt -Kondensatoren ausgelaufen ist und das ganze Netzteil mit klebriger Pampe verschmiert hat. Das hat wohl zu einem Kurzschluss geführt. Ziemlich erstaunlich, dass in einem 30 Jahre alten Gerät die Elkos noch flüssiges Elektrolyt haben. Spricht für deren Qualität.

Wir haben also eins der super kleinen 230VAC auf 5VDC/2A Netzteile anstelle des alten Netzteils eingebaut und siehe da, die Kiste läuft und reagiert auf Steuerbefehle vom Rechner. Beeindruckend ist auch der Unterschied in der Bauform der Netzteile. Das kaputte Netzteil konnte aus den 100VAC 5VDC mit 1A Strom erzeugen. Das neue Netzteil ist ist ungefähr so groß wie eine Briefmarke, hat einen breiteren Eingangsspannungsbereich und kann den doppelten Strom am Ausgang liefern.


Wir haben einen Initialisierungstest durchgeführt uns alle Funktionen einmal getestet. Wie nicht anders zu erwarten ist die Bedienung etwas umständlich. Es gibt kein USB (Verison 1.0 wurde erst 4 Jahre nach Baujahr der Maschine veröffentlicht) und eine serielle Schnittstelle ist auch nicht zu finden, also werden wir um ein Update nicht herum kommen wenn das Teil sinnvoll eingesetzt werden soll. Denn irgendwie wollen wir unsere Daten automatisch vom PC in den Bestückautomaten bekommen.

Wir haben uns entschlossen die Kiste auf eine aktuelle Hard-/ und Software zu bringen. Dazu werden wir ein neues Interface-Board entwickeln, dass so aufgebaut ist, dass es mit den originalen Bedingungen des Bestückautomats herstellbar ist. Quasi ein selbst replizierendes Ersatzteil. Das soll später an die gleiche Stelle wie die aktuelle Interface Karte, und mit den gleichen Steckern arbeiten.
Wie genau müssen wir noch besprechen. Das ist dann eine Sache für den nächsten Eintrag.

Donnerstag, 4. April 2019

Kurzschluss Junkies [0x09]: Pick and Platz

Neuigkeiten

Wer das STM32MP157C-DK2 Evaluastionboard gewinnen möchte, kann uns eine Email schreiben an: feedback@kurzschlussjunkies.de Wir melden uns dann bei dem Gewinner.


Aus Fehlern lernen

Basti hat beim Knöpfchenspiel im Schaltplan des Mikrocontroller Boards die Data+ und Data- Signale des differenziellen I2C Interfaces verdreht. Daher kam keine Kommunikation zustande. Chris hat das gefunden und jetzt geht es.

Chris hat ebenfalls lange nach einem Fehler gesucht. Schlussendlich lag es daran, dass die Software den falschen ADC Kanal aufgezeichnet hat.


Projekt Knöpfchenspiel

Der Endspurt hat begonnen. Das Knöpfchenspiel ist in den letzten Zügen und wird am Samstag verwendet. Alle Funktionen sind vorhanden, jetzt fehlt nur noch etwas Politur.


Projekt Schmartwatch

Die Flex-Leiterplatten sind unterwegs, Bauteile sind ebenfalls bestellt. 10 Muster wird es geben.
Zur Stabilisierung hast BAsti vor die Flex-Leiterplatte auf eine FR4 Leiterplatte zu kleben. So ist sie besser handhabbar und kann im Reflow-Ofen gelötet werden. Später wird eine Vorrichtung benötigt, die die Flex-Leiterplatte zuverlässig und reproduzierbar fixiert. Das ist für einen Pick-and-Place Vorgang zwingend notwendig.

Pick and Place

Chris und Basti haben sich einen Bestückautomaten gekauft. Der ist zwar ziemlich alt, aber nach einer kurzen Untersuchung und Reparatur auch wieder lauffähig. Ein Kondensator ist geplatzt und hat das interne 5V Netzteil zerstört. Der nächste Schritt ist dann die Modernisierung des Systems. Es geht quasi von 16-bit auf 32-bit.

Chip der Woche: LSM6DSOX

Der Chip der Woche ist ein smarter Bewegungssensor mit Gyro- und Beschleunigungssensor.
Mit einer dreistufigen Pipeline kann der Chip ermitteln, welche Art der Bewegung gerade stattfindet. Das macht er mit Hilfe eines Entscheidungsbaums. Basti hat den Chip zwar auf dem Tisch liegen, aber um den Entscheidungsbaum zu generieren, muss der Sensor in ein spezielles Evaluation Board um mit dem PC konfiguriert zu werden. Das ist ebenfalls bestellt, aber noch nicht da.
Für alle interessierten gibt es die Info hier bei ST: LSM6DSOX

Montag, 25. März 2019

Bandpass TTL Opamp und Rigol DS1054Z

Ich habe mir die Idee einen Mosfet als Verstärkereingang mal genauer angesehen und dieses System übernommen. Der Vorteil ist, dass ein Mosfet welcher nur kapazitiv angesteuert wird schon ein Hochpass ist. Mit dem Vorwiderstand für den Mosfet kann die Tiefpasskarakteristik beeinflusst werden. Wenn einem die Gatekapazität zu ungenau ist, kann auch ein zusätzlicher Kondensator verwendet werden um das Tiefpassverhalten genauer zu definieren. Die nachfolgende NPN-PNP-Verstärkerstufe ist da, um dieses Signal "belastbar" zu machen. Um den Mosfet im Analogmodus zu halten, kann entweder ein DAC eines µControlers verwendet werden oder wenn es "standalone" funktionieren soll einen Operationsverstärker verwenden. Die Gesamtschaltung verbraucht nicht mehr als 3mA bei 3,3V.

Durch das kapazitive Messen des Signals erfolgt eine Phasenverschiebung, welche nicht zu vernachlässigen ist, wenn Strom und Spannung Bezug zueinander haben sollen.

Hier ist die Schaltung. Diese kann man Easy in Spice nachbauen und mit experimentieren. Wichtig ist, dass man reelle Bauteile verwendet und nicht die idealen Modelle von Spice.


Das ist die gelötete Schaltung in Nahaufnahme auf einer eigens dafür angefertigten Leiterplatte. 



Ich habe ein paar Aufnahmen mit meinem neuen DS1054Z gemacht. Alle Messwerte welche angezeigt werden, sind mit einem Druck auf den "MessMalAlles" Button erledigt. Auch die angezeigten Werte habe ich nicht extra im Offset oder Amplitude angepasst. Diese sind mit dem AUTO Button gleich richtig skaliert worden. Echt top wie gut das Funktioniert.

Hier einmal die Phase gemessen bei 1KHz Eingangssignal.

Dann einmal auf den magischen "MessMalAlles" Button gedrückt ohne Offset.

Dann einmal die gleiche Messung mit einem Offset von ca. 3V.

Jetzt mal das Tiefpassverhalten im Detail. Hier 20KHz vs. 40KHz.



Mittwoch, 20. März 2019

Knöpfchenspiel 2 - Bus-Interface auf Raspberry Pi

Das Differenzielle I²C Interface für den Komminikations-Bus im Knöpfchenspiel ist für den Raspberry Pi ein Hat mit dem PCA9615 Treiber Chip. Die Knöpfcheninterfaces haben den Treiber selbst on Board. Dieser Treiber Baustein konvertiert die normalen I²C Signale in differenzielle Signale um sie stabiler gegen elektromagnetische Störung zu machen. Auf der Empfängerseite werden die Signale dann wieder zurück konvertiert in 3,3V Open-Drain.

I²C Bus

Dieser Bus wurde bereits 1982 von Phillips Semiconductor (heute NXP) entwickelt und dient zur seriellen Datenübertragung zwischen integrierten Schaltungen. Daher auch der Name: Inter Integrated Circuit oder IIC. Der Bus besteht aus zwei Signalleitungen: Serial-Clock (SCL) und Serial-Data (SDA). Am Bus können mehrere Teilnehmer gleichzeitig hängen, aber immer nur einer ist der Master. Die Signalleitungen sind mit einem Widerstand auf eine Spannung voreingestellt. Meistens 5V, manchmal auch 3,3V je nach Interface Spannung. Daten werden auf diesem Bus übertragen, indem die Signalleitungen mit einem Transistor auf Masse Potential geschaltet werden, also auf 0V. Das SDA Signal nach Masse schalten können sowohl Master als auch die Slave Geräte am Bus. Der Master gibt den Takt vor indem er die SCL Leitung auf Masse zieht, oder los lässt und der Widerstand das Signal wieder auf Betriebsspannung ziehen kann. Die Datenleitung wird entweder vom Master, oder von den Slaves auf Masse gezogen, je nachdem wer gerade mit einer Datenübertragung beschäftigt ist. Dieses Prinzip sorgt dafür, dass bei einem Kurzschluss gegen Masse die Signale lediglich ungültig werden, der Chip aber nicht kaputt geht.

Die Adressierung auf dem I²C Bus ist 7-bit lang, kann also 127 Geräte bedienen. Das 8te Bit dient der Lese/Schreib Aktivierung. Dabei sind allerdings einige Adressen reserviert unter Anderem um eine Adressraum-Erweiterung auf 10-bit zuzulassen. Effektiv können also 112 Adressen angesprochen werden.
Adresse Funktion
00000000 General Call Adresse
00000001 Start Byte
0000001X CBUS Adresse*
0000010X Reserviert für ein weiteres Busformat
0000011X Reserviert für zukünftige Erweiterungen
00001XXX Reserviert für zukünftige Erweiterungen
11111XXX Reserviert für zukünftige Erweiterungen
11110XXX 10-Bit Adressierung
*CBUS ist ein veraltetes System.

Signalform

Aus den I2C Spezifikationen Rev.6 April 2014 Fig.9
Die Signale SCL und SDA sind so genannte Single-Ended Signale. Sie haben ein Spannugnspotential gegen Masse (0V). Dabei können Störungen durch die Schaltflanken in die angrenzenden Leitungen übersprechen. Beispielsweise kann die konstanten Änderungen der Taktleitung (SCL) einen Spannungspuls in der Datenleitung erzeugen, die zwar vom Slave auf Masse gehalten wird, aber über den Leitungswiderstand und die Kapazität der Leitung gegen umliegende Masse trotzdem als Spannung (digitale 1) am Master Eingang erkannt wird. Dies wird zum Beispiel als Bitfehler in den Empfangenen Daten sichtbar. Je länger die Leitungen sind, desto stärker kann das Problem auftreten. Daher muss für eine länger Verbindung Vorsorge getroffen werden. Eine der Vorkehrungen ist zum Beispiel das Konvertieren in differenzielle Signale.

Dabei werden die oben gezeigten Signale von zwei auf 4 Drähte erweitert. Die zusätzliche Leitung ist das Komplementär der Signalleitung und dient als Referenz.

Hardware

Rasperry Pi 3B mit DIIC Hat
Das DIIC Hat ist die Hardware, mit der der Raspberry Pi I²C Signale auf die Differenzielle Leitung bringen kann. Es besteht aus mehreren Teilen: Dem 40-poligen Interface Stecker zum Pi, dem I²C EEPROM, das den Devicetree Patch mitbringt, die 12V Spannungsversorgung für die Bus Leitung und der Differenzielle I2C Transmitter.
Raspberry Pi 40-poliger Verbindungsstecker
Auf dem 40-poligen Verbindungsstecker liegen neben den 26 GPIO Signalen ebenfalls die beiden Signale ID_SC und ID_SD. Diese gehören zum Konfigurationsinterface des Hats. An diese beiden Signale wird das I2C EEPROM mit Adresse 0x50 angeschlossen. Im SPeicher des EEPROMS liegen Informationen zu dem Hat. In diesen Daten wird dem Linux auf dem Raspberry mitgeteilt, welches Hat aufgesteckt ist, welche Version, welcher Hersteller und welche Hardwarekonfiguration notwendig ist um das Hat zu betreiben. In unserem Fall ist das das Aktivieren des I2C Interfaces an GPIO02 und GPIO03, sowie das Resetsignal an GPIO5. Ohne dieses EEPROM ist die Hardware nicht konform mit der Anforderung an ein Raspberry Pi Hat und darf sich so auch nicht nennen.
EEPROM für das Hat. Angeschlossen an ID_SC und ID_SD
Das Hat stellt neben der Information zur Konfiguration des I2C Interfaces auch noch die Übertragungshardware zur Verfügung. Der PCA9615 ist der Transceiver und hat zwei Spannungsdomänen. Die klassische I2C Seite wird mit 3,3V betrieben und die differenzielle Seite mit 5V. Zum Starten der differenzielen Strecke, muss der Chip mindestens 11ms im Reset (low) gehalten werden, damit der Bus idle/stop Detektor ordnungsgemäß funktioniert. So lange ist die READY LED aus. Wenn der Resetimpuls beendet ist, geht die Leitung GPIO05 auf high und die LED leuchtet.
Beschaltung des differenziellen I²C Buffers PCA9615
Die LED wird vom Linux beim Booten angesteuert, so ist sicher gestellt, dass der Treiberbaustein ordentlich starten kann. Wenn das Linux gebootet ist, kann über die internen Tools wie i2cdetect oder i2cget/set der Bus verwendet werden. Als Gegenstelle steht der STM32 als I2C Slave zur Verfügung. dieser wartet auf den Adressen 0x30 und 0x31/0x32 auf Kommunikation mit dem Master.
Diese Software ist zur Zeit leider noch nicht funktionsfähig. Aber das sollte sich in den nächsten Tagen ändern.

Montag, 18. März 2019

Kurzschluss Junkies [0x08]: Lack oder Keinlack

Neuigkeiten

Wir haben knapp 5000 Downloads und ca. 50 Abonnenten. Danke dafür.
Wie werden ein Gewinnspiel starten, sobald wir ca. 100 Abonnenten haben.
Es gibt ein super interessantes Evalboard ab zu stauben. Das STM32MP157C-DK2
https://www.st.com/en/evaluation-tools/stm32mp157c-dk2.html

Handson Rigol DS1054Z

Das Rigol DS1054Z ist ein richtig gutes Hobby-Oszilloskop für wenig Geld. Eines der besten Features ist der "MessMalAlles"-Button. Da bekommt man per Knopfdruck alle Information welche einen interessieren könnten auf einmal angezeigt. Ein Softwareupdate geht ohne lästiges Anmelden oder Registrieren.

Aus Fehlern lernen

Der Pegel macht's. Basti musste den BOOT0 Pin eines STM32 niederohmig genug auf ein Potential ziehen um auch ohne Debugger in den richtigen Bootmodus zu kommen.
Notizen machen und eine Gespräch leiten ist in der Kombination schlecht möglich. Am besten einen Schriftführer und einen Leiter bei wichtigen Gesprächen.

Der Mosfetverstärker

Chris hat einen ultra-lowcost Verstärker gebaut. Dieser ist allerdings nur für Wechselspannungssignale geeignet.

Knöpfchenspiel

Das Spiel geht weiter. Ein Holztisch wurde gelöchert. Er wurde angemalt aber nicht lackiert. Alles wird älter und das darf man auch sehen. Die LED und Knöpfe werden bereits ausgewertet. Die Software auf dem Raspberry funktioniert auch schon. Jetzt noch die Kommunikation zwischen STM32 und Raspberry Pi in Betrieb nehmen und eine Webcam mit ausreichend guter Qualität anstecken.

Schmartwatch

Review auf Twitter war gut und hilfreich. Platine wird wohl lieber selbst bestückt, was mit dem bald funktionierenden FinePlacer auch kein Problem sein sollte.
Handauflage zum einfachen Platzieren von SMD Komponenten

Chip der Woche

Der STM32MP15x hat es diesmal geschaft. ST kommt in den Bereich der Media-Prozessoren. mal sehen was die Zukunft bringt. Leider preislich noch etwas über der Konkurrenz.
STM32MP151 5,30$ <-> MCIMX6Z0DVM09AB 3,62$
STM32MP153 8,10$ <-> MCIMX6Y0CVM05AB 6,76$
STM32MP157 9,50$

Sonntag, 3. März 2019

Kurzschluss Junkies [0x07]: Eingebettet


Wir sind mit dem Handy unterwegs auf der Embedded World und haben uns mit Thomas getroffen. Er ist in der Hackaday Community aktiv und so haben wir uns auch getroffen. Er arbeitet beruflich mit Multicore Systeme in Sicherheitskrittischen Systemen.

In der Kategorie Fehler machen erzählt er von seinem größten Fehler: Eine Projekt nicht angehen, weil man Angst hat, dass das Thema zu kompliziert ist. Einfach mal loslegen und machen.

Thomas hat sein Hobby zum Beruf gemacht, somit sind Hobbyprojekte jetzt nicht mehr Gebastel. Er arbeitet auch an der Hochschule, dort bauen sie einen Roboter mit LIDAR Sensor, die Daten daraus sollen dann in der 3D Engine Unity visualisiert werden. Das kombiniert mit eines Oculus Rift ist ein interessantes Projekt. LIDAR wird zum Beispiel genutzt um 3D Modelle von großen Gebieten zu erzeugen. Das macht zum Beispiel Phoenix LiDAR

Ein weiteres Projekt war mit dem ESP32. Er hat einen CAN-Bus Treiber entwickelt um den ESP32 als günstigen Controller mit WLAN zu verwenden.

Ein weiteres Projekt war die Umsetzung einer realen virtuellen Realität. Dazu hat Thomas eine Stereokamera mit drei Achsen in das Führerhaus eines Spielkrans eingebaut. Dieses Telepräsenz System ist ebenfalls mit einer Oculus Rift verbunden. Somit kann der Kranführer außerhalb des Krans sein und trotzdem aus der gewohnten Perspektive den Kran führen. Dieses Projekt hat auf Hackaday einiges an Interesse ausgelöst und Thomas erzählt von seinen zwei Wochen Internet-Fame. Sogar die ESA hat sich bei ihm gemeldet. Leider ist aus diesem Projekt noch nicht mehr geworden.

Zum Schluss haben wir noch über die Messe gesprochen. Unsere Tipps für die Besucher: Kommt früh, da gibt es noch Parkplätze. Redet mit den Leuten vor Ort über eure Projekte. Nehmt euch nicht zu viel vor, weniger ist mehr und zieht euch bequeme Schuhe an.


Freitag, 22. Februar 2019

Kurzschluss Junkies [0x06]: Gemischte Tüte


Feedback zur letzten Folge war positiv. Ob wir YouTube Videos machen, werden wir sehen. Firma in der wir arbeiten ist unbekannt. Ob wir die irgendwann erwähnen werden wir sehen.
3000+ Downloads in diesem Jahr.

Podcast wird auf jeden Fall fortgeführt. Wir machen weiter.

Allgemeines:

RIGOL1054Z das kleine Osziwunder für <400€ mit Sofwareencoder, FFT und das Beste ist es kann ein eigenes Augendiagramm erstellen. Hat 1G/Sample und 50MHz Bandbreite. Top Hobby-Oszi.

Aus Fehlern lernen:

DRC ist immer von Vorteil und sollte man nicht vergessen.
Zuken ist nicht das beste Tool wenn es darum geht Busse von Subsheet zu Subsheet zu führen. Daher der "gesunde" Blauton im Bild (Videosignal) auf einer seiner Baugruppen. Wir nutzen das etwas ältere CR5000 mittlerweile gibt es CR8000.

Layoutsoftware:

KiCad, Zuken, Pulsonix und Altium mal kurz erwähnt.
KiCad ist ein kostenloses Layouttool was durchaus mit den professionellen Tool mithalten kann.
Zuken ist zumindes bei uns etwas buggy aber durchaus nutzbar für Großprojekte.
Pulsonix ist das modernere Zuken welches auch etwas günstiger ist.
Altium ist ein Tool welches etwas besser sein soll jedoch auch teuerer, aber vom Hörensagen ein sehr gutes Programm ist.

Basti hat für KiCad einen Bugfix bereit gestellt für einen Haken und Stacked-Vias in seine Version implementiert.

Projekt Genesis:

Das Alexagame für zwischendurch. Wer wollte schon immer mal ein KI sein und über die Zukunft der Menschheit entscheiden? ;)

Der Minidrucker:

Beim Minidrucker geht der Stepperdriver von ST zumindest wenn das Board extern ist. Um das Mini-Drucker-Mainboard richtig bestücken zu können brauchen wir einen Fineplacer. Der Bausatzlink folgt. Bei motedis kann man günstig mechanische Teile kaufen.

PC Hardware:

Ein paar Geheimtipps für PC Hardware. Netzteil aus dem T7500 (1KW für unter 60€)
Aktuelle Preis/Leistungssieger ist die RX580.

Schmartwatch:

Neue Schmartwatchversion ist öffentlich zum Review, da das Board für Prototypen sehr teuer ist.

Chip(s) der Woche:

Microchips MCP6411. Ein Sehr günstiger OPAMP für ca. 25ct.
Analogs AD8515. Auch nicht schlecht für grad mal 5ct mehr.




Mittwoch, 20. Februar 2019

Schmartwatch [12]: Finales Layout Review


Es ist so weit, ich habe mein Layout in ein Stadium gebracht, dass so weit komplett ist. Jetzt steht die Entscheidung im Raum: Bestellen, oder sind noch Verbesserungen möglich? Daher habe ich das Design der Öffentlichkeit zur Verfügung gestellt und möchte, dass so viele Augen wie möglich auf das Design schauen und Fehler finden, die ich nicht finden konnte.

 Ich habe schon einige Rückmeldungen bekommen und einige Änderungen eingepflegt. Wie die GitHub Historie zeigt, sind zum aktuellen Zeitpunkt 6 Änderungen eingeflossen. Jeder, der seine Meinung einbringen möchte ist eingeladen das zu tun. Schließlich kostet der nächste Produktionsschritt erheblich mehr Geld als die Leiterplatte aus FR4 zu bestellen und dann selbst die Bauteile aufzulöten.
Ich erwarte Herstellungskosten von ca 120€ pro Baugruppe, da ich lediglich 10 Stück bestellen werde. Das ist dann die Uhr inklusive Display. Für Fans einer ziemlich nerdigen Armbanduhr, die garantiert nicht wasserdicht ist, kann ich einen der Prototypen für 150€ anbieten. Wenn die Anzahl der bestellten Prototypen groß genug ist, wird der Preis sicher sinken.
Dazu werde ich allerdings eine eigene Seite im Blog einrichten, wenn es so weit ist die Bestellung aufzugeben. Zeitgleich mit der Bestellung soll auch die Firmware für die Uhr öffentlich verfügbar sein. Zur zeit liegt sie noch in einem privaten Repository und wartet auf ein klein wenig Politur und Dokumentation. So fehlt zum Beispiel noch einiges beim BLE Teil der Software, oder beim Powermanagement. Ich habe zwar schon ein paar Dinge mehr implementiert, als im letzten Artikel zu dem Thema stand, aber es ist noch nicht perfekt. Ebenso wie die Ansteuerung des Displays zur Zeit noch keine eigene LUT Muster kann, sondern nur den 12 Sekunden langen Updatezyklus, der im OTP Speicher der Uhr liegt. Auf jedem Fall könnt ihr in der nächsten Zeit mit einer Reihe neuer Artikel zum Schmartwatch Projekt rechnen.
Für den einfachen Zugriff auf den Schaltplan findet ihr hier die aktuelle Version. Ich habe für das Layout noch keine Gerber-Daten erzeugt, aber als PDF findet ihr die einzelnen Lagen der initialen Version hier.

Das GitHub Projekt findet ihr hier: 

Über Kommentare und Verbesserungsvorschläge, sowie über Fragen freue ich mich natürlich.

Sonntag, 17. Februar 2019

Spielen mit Amazon Alexa - Das Projekt Genesis


Projekt Genesis ist ein Amazon Alexa Skill. Es ist ein Spiel in dem der Spieler in die Rolle einer KI schlüpft, die versucht einen geeigneten Planeten für die 10000 Siedler an Board eines Raumschiffs zu finden. Dabei lauern viele Gefahren aber auch viele Geheimnisse in den Weiten des Universums.

Der Beta Test hat begonnen und es gibt eine spielbare Version. Wer mithelfen möchte zu testen, der kann sich unter www.projekt-genesis-spiel.de anmelden und wird dann für das Beta-Programm freigeschaltet.

Ein Spiel beginnt man, indem man sagt: "Alexa, starte Projekt Genesis". Daraufhin startet ein neues Spiel oder setzt das vorherige Spiel fort. Ein Spiel besteht aus mehreren Spielrunden, die das Raumschiff an verschiedene Orte bringt. Das Raumschiff hat verschiedene Funktionen, die allesamt wichtig sind um eine stabile Kolonie zu errichten.
  • Stasekammern mit Siedlern
  • Planeten Scanner
  • Landungssonden
  • Wissenschaftliche Datenbank
  • Energiereserve
Ziel ist es einen geeigneten Planeten zu finden, dessen Umgebungsbedingungen den Siedlern das Leben vereinfacht. Auf den Wegen zwischen den Planeten lauern viele Gefahren aber auch Chancen. 
Ein Planet hat immer folgende Eigenschaften:
  • Gravitation
  • Atmosphäre
  • Temperatur
  • Wasser
Zusätzlich gibt es auf einigen Planeten noch verschiedene Ressourcen, die ein Leben vor Ort vereinfachen können. Sofern in der Datenbank das Wissen zur Verarbeitung noch vorhanden ist.

Im Orbit um einen Planeten könnt ihr den Planetenscanner verwenden. Dieser lässt sich mit dem Befehl "Planet Scannen" starten. Der Scanner liefert je nach Funktionsgrad des Scanners die Information zu dem Planeten. Die Landungssonden liefern ebenfalls Scan-Ergebnisse, falls der Scanner beschädigt wurde. Eine Sonde kann mit "Sonde ausschicken" gestartet werden.

Wenn das Schiff sich in der Umlaufbahn eines geeigneten Planeten befindet, dann kann mit dem Befehl "landen" die Landung eingeleitet werden. Achtung! Landen ist endgültig und beendet das Spiel, daher werdet ihr gefragt, ob ihr wirklich landen wollt. Das könnt ihr mit "ja" beantworten, oder sagt ein weiters mal "landen".

Die Gefahren, die auf dem Weg auf euch warten sind dann eine Überraschung.