Peace Memorial Park, Hiroshima

Dev

CircuitPython and Fedora

The season of long winter nights is coming, so I got myself an AdaFruit Circuit Playground Express for some home decoration.

My plan is to program it using CircuitPython, a MicroPython derivate that is adapted to the AdaFruit hardware.

CircuitPython must be installed to the Circuit Playground first, which turned out to be difficult with Fedora Linux in a first attempt. The troublemaker was the ModemManager, which is still installed by default. It detects the serial port of the AdaFruit device, and then hogs this resource because, well, it might be a modem. ­čÖä

My older readers certainly still remember what a modem is. ­čśë But to make a long story short, almost no one is using a serial modem nowadays, so the ModemManager does not serve any useful purpose. However, it cannot be removed, because other important packages still depend on it. The only way is to stop it permanently:

sudo systemctl stop ModemManager
sudo systemctl disable ModemManager

After that, I could finally install CircuitPython to the Circuit Playground. First I downloaded the matching uf2 file. After that, I connected the Playground via USB, and changed to the bootloader mode by pressing its reset button twice (like a double-click).

The Circuit Playground is now mounted as an USB drive called CPLAYBOOT. All there is to do now is to copy the uf2 file to this drive. The Playground automatically reboots after that. If everything went fine, it will come back as an USB drive called CIRCUITPY.

The next step is to install the AdaFruit libraries to that drive. I downloaded the latest library bundle that matched my CircuitPython version, and just unpacked it to the CIRCUITPY drive.

That's it... All there is to do now, is to open the code.py file in an editor and change the code. It is immediately executed when it is saved.

For a start, there are a lot of code examples for the Circuit Playground Express on the AdaFruit web site.

Fedora 28 auf einem Ryzen 5

Es wurde Zeit f├╝r einen neuen Linux-PC. Und da Intel in letzter Zeit mit Meltdown und mit Sicherheitsl├╝cken in der Management Engine keine allzu gute Figur macht, dachte ich mir, es ist wieder an der Zeit, AMD eine Chance zu geben.

Was ich haben m├Âchte, ist ein Arbeitsrechner mit guter Rechenleistung und schnellem Massenspeicher. Die Grafikleistung ist sekund├Ąr, da ich nicht spiele. Wichtiger ist mir ein ruhiger Betrieb, was die Reduzierung von Abw├Ąrme durch einen Strom sparenden Prozessor beinhaltet.

F├╝r meinen neuen Rechenknecht im Retro-Look entkernte ich ein Cooler Master Cavalier 3-Towergeh├Ąuse von 2004, das ich noch hier stehen hatte und einen AMD Athlon 64 mit ├╝ppigen 4 GB DDR2-RAM beherbergte. Nach der Renovierung besteht der Rechner jetzt aus:

  • CPU: AMD Ryzen 5 2400G. Die eingebaute Vega 11-Grafikeinheit bringt bei Benchmark-Tests eine respektable Leistung und reicht f├╝r meine Zwecke locker aus. Zudem begn├╝gt sich der Ryzen 5 mit 65 W TDP. Eine f├╝r diesen Einsatz eigentlich ├╝berdimensionierte AIO-Wasserk├╝hlung sorgt daf├╝r, dass die CPU-Cores auch l├Ąngere Zeit im 3,9 GHz Turbo-Modus durchhalten, und l├Ąsst mir die Option f├╝r sp├Ątere Overclocking-Experimente.
  • Mainboard: Asus Prime X470 Pro. F├╝r diese Wahl gab es keinen besonderen Grund, au├čer dass ich in der Vergangenheit mit Asus-Boards gute Erfahrung gemacht habe. F├╝r die Linux-Kompatibilit├Ąt ist die Nennung des verwendeten Typs aber vielleicht interessant.
  • SSD: Samsung 970 Pro, 512 GB, PCIe M.2. Massenspeicher sind die Komponenten, die im Rechnerleben erfahrungsgem├Ą├č als erstes ein Upgrade erfahren, weil sie zu klein oder zu langsam geworden sind. Also lieber gleich schon beim Neukauf klotzen statt kleckern. Das z├Âgert das Upgrade ein wenig hinaus.
  • RAM: 16 GB DDR4-3000, als Kit mit 2x 8 GB. F├╝r meine Zwecke reicht das. Der Ryzen 5 unterst├╝tzt maximal DDR4-2933, so dass h├Âher getaktete RAMs wenig Sinn machen. Da sollte man lieber mehr Geld f├╝r eine m├Âglichst geringe CAS Latency ausgeben.

F├╝r Linux gibt es hier gleich mehrere Herausforderungen. Die Vega-Grafikeinheit ist verh├Ąltnism├Ą├čig neu, dementsprechend neu ist auch der Support im Linux-Kernel. Zudem ist die SSD nicht per SATA, sondern per PCIe angebunden, was ebenfalls - zumindest theoretisch - zu Treiberproblemen f├╝hren kann.

Der Versuch, eine Fedora 28-Live CD im Cinnamon-Spin zu starten, funktionierte auch prompt nicht. Das System startet bis zur Anmeldemaske, aber man kommt einfach nicht dar├╝ber hinaus. Erst ein Start im minimalen VESA-Modus erlaubte es, eine reduzierte Cinnamon-Oberfl├Ąche zu erreichen und den Installer auszuf├╝hren.

Zumindest meine Sorge, die PCIe-SSD w├╝rde nicht erkannt werden, erwies sich danach als unbegr├╝ndet. Der Installer erkannte die SSD und richtete problemlos und z├╝gig das Fedora-System darauf ein.

Beim ersten Reboot startete Cinnamon aber weiterhin nur im reduzierten Modus ohne Compositing. Abhilfe brachte, den nomodeset Kernel-Parameter aus den Grub-Einstellungen zu entfernen. Nach einem weiteren Reboot stand dann die volle Grafikleistung zur Verf├╝gung. Vermutlich hat das Live-Image einen zu alten Kernel, so dass das kommende Fedora 29 problemlos installierbar sein wird.

Von den anf├Ąnglichen Problemen mit der Grafik abgesehen, l├Ąuft das System rund. Netzwerk, Sound, SATA- und USB-Schnittstellen wurden von Linux erkannt und werden voll unterst├╝tzt. Selbst unter Last verh├Ąlt es sich stabil, bisher hatte ich keine Freezes oder unerwarteten Abst├╝rze.

Mein Ziel habe ich damit erreicht. Der neue PC bringt eine ordentliche Leistung und ist trotzdem leise, k├╝hl und sparsam.

Cura mag OpenSCAD nicht mehr

Zumindest vor├╝bergehend. Sobald man versucht, eine aus OpenSCAD exportierte stl-Datei in Cura zu importieren, erscheint die Fehlermeldung "Ung├╝ltige Datei".

Der Grund daf├╝r ist, dass Cura auf manchen Plattformen momentan Probleme hat, stl-Dateien im ASCII-Format zu lesen. Und OpenSCAD exportiert nur in ASCII-Format.

Als Workaround hilft ein Universal-Taschenmesser f├╝r stl-Dateien namens admesh. Neben etlichen anderen Transformationsm├Âglichkeiten konvertiert es eine ASCII-stl-Datei ins Bin├Ąrformat:

admesh -b example-bin.stl example-ascii.stl

Diese l├Ąsst sich dann in Cura problemlos ├Âffnen.

admesh ist im Fedora Repository verf├╝gbar und kann (auf Wunsch inklusive einer GUI) einfach per dnf installiert werden:

sudo dnf install admesh admeshgui
An Arduino TV Simulator

SimTV: Arduino Uno and RGB shield A simple method to keep burglars away from your home is a TV simulator. It's basically a device with some bright RGB LEDs showing color patterns that resemble those of a telly turned on. They are sold at many electronic retailers. However, some customer reviews say that the color patterns do not look very realistic, with some distinctive flashes and colors that are usually not to be seen on a regular movie. Besides that, the color patterns often repeat after about half an hour.

Actually, distinctive color patterns that repeat after a short time, are a major disadvantage. Experienced burglars might recognize the color patterns and figure out it's a TV simulator. This would rather be an invitation than a deterrent.

So, let's build a better TV simulator ourselves. It's also more fun than buying something ready.

Continue reading...
Wir bauen uns einen Feinstaubsensor

Das Projekt luftdaten.info bietet eine Bauanleitung f├╝r einen Feinstaubsensor an. Er ist g├╝nstig und auch mit wenig Elektronikkenntnissen leicht zusammenzubauen. Die Bauteile gibt es in verschiedenen Elektronikl├Ąden und mittlerweile sogar bei Amazon.

Der originale Bausatz benutzt zwei Kunststoffrohre als Geh├Ąuse. Die sind preiswert und in jedem Baumarkt leicht zu bekommen, sehen allerdings nicht besonders ansprechend aus. Ich w├Ąhlte stattdessen eine handels├╝bliche UV- und wetterfeste Au├čen-Abzweigdose als Geh├Ąuse. Ein selbst konstruierter Rahmen aus dem 3D-Drucker wird dort hineingesetzt und die Elektronik darauf montiert.

Der Rahmen bringt bereits einen Windkanal f├╝r die angesaugte Luft mit, so dass im Gegensatz zur Originalanleitung kein Schlauch notwendig ist. Gitter vor den Luft├Âffnungen verhindern, dass Insekten in das Geh├Ąuse kriechen k├Ânnen. Im Gegensatz zu manch anderer gedruckter L├Âsung ist der Feinstaubsensor au├čerdem wie vom Hersteller vorgeschrieben ausgerichtet und die Einsaug├Âffnung vor Licht gesch├╝tzt.

Im Gegensatz zur Originalanleitung kommt man hier allerdings nicht darum herum, den L├Âtkolben in die Hand zu nehmen.

Continue reading...