Blog

  • [new book] Systems Engineering for Automotive Powertrain Development

    [new book] Systems Engineering for Automotive Powertrain Development

    Finally, it’s available. This book contains the essentials of today’s & tomorrow’s automotive powertrain engineering. Glad to be one of the many contributors along this journey – congrats to all other contributors who dedicated their precious time!

    Here’s the link to the book: https://link.springer.com/referencework/10.1007/978-3-319-99629-5#toc

    Here’s the link to the company behind the book: https://www.avl.com/

  • Lokale LLM steuert Remote-PC

    Jüngstes LLM-Anwendungsbeispiel meinerseits: eine mittels ollama lokal laufende llama3.2:3b-Instanz führt für mich wiederkehrende Kommandos auf meinem „Lass-mich-Dinge-ausprobieren“-Rechner im lokalen Netzwerk aus. Im Video sieht man eine Sequenz, wo gerade Updates eingespielt werden:

    LLM verbindet sich via SSH zu Remote-PC zum Update-Tango

    Was man im Video sieht:

    • Prompt -> Update the packages on the PC. It's a Fedora 43 Workstation.
    • Im rechten Fenster läuft im Terminal das Update via dnf.
    • Links sieht man die Spikes auf meiner GPU, die via Vulkan bei der Inferenz unterstützt.

    Was man im Video nicht sieht:

    • llama3.2 durfte sich aus einem Satz Werkzeuge selbst aussuchen, was am besten für den Prompt funktioniert. Die Entscheidung fiel aufs Terminal. In der Konfiguration hatte ich vorgegeben, dass die Verwendung des Terminals immer eine SSH-Verbindung zu meinem lokalen „Lass-mich-Dinge-ausprobieren“-Rechner einschließt (=fixe Vorgabe der Ziel-IP-Adresse, aber ohne Aushändigen der Credentials an llama3.2).
    • Die Credentials habe ich SSH manuell übergeben. Deswegen sieht man auch mehrere Prompts, die davor abgeschickt wurden, das läuft noch nicht ganz stabil.
    • Nach Abschluss des Updates hat llama3.2 die Terminal-Response ausgewertet und mir als Zusammenfassung präsentiert, was wie passiert ist.

    Was ist das Ergebnis für mich:

    • Ein Proof-of-Concept, den ich mal selbst durchspielen wollte.
    • Lokale LLM(s) verwende ich schon länger für verschiedene Aufgaben, aber die Automatisierungsmöglichkeiten auf einem Rechner will ich noch mehr ausloten.

    Lessons Learned:

    • Trennung von lokaler Automatisierung und lokalem Berechtigungskonzept klappt gut, für mich wichtig, weil „meine“ Credentials auch einer lokalen LLM nicht anvertrauen möchte. Credentials, die der LLM zugeordnet sind, natürlich schon (z.B. eigener Benutzer mit eigener Berechtigungsstufe).
    • Die LLM auf die GPU zu bekommen, war wenig Aufwand.
    • Die LLM-Laufzeit für stupide Update-Tasks steht natürlich in keinem Verhältnis, aber das direkte Deployment eines gerade erst Vibe-gecodeten Web Services auf meinen „Lass-mich-Dinge-ausprobieren“-Rechner, etc. schon viel mehr. 😉

  • Video Upscaling mit Machine Learning im Hintergrund

    Vor ein paar Jahren hatte ich mich mit einer Videosequenz herumgespielt, um einen gefällten Baum virtuell wieder auferstehen zu lassen. Das Ausgangsmaterial war qualitativ mäßig, aber der Einzeiler machte, was er sollte: Der Baum stand wieder.

    ML-gestütztes Video Upscaling wollte ich immer mal wieder ausprobieren. Ein erster Anlauf mit Real-ESRGAN in Ubuntu 22.04/WSL war unbefriedigend, die Performance war mau:

    • Die AMD Ryzen iGPU wird von ROCm nicht unterstützt.
    • Das Modell lief nur auf einem CPU-Kern.

    Den neuen Anlauf gestaltete ich auf Basis von Ubuntu 24.04/WSL bzw. nativ mit Fedora 43. Die Performance war in beiden Fällen deutlich besser, obwohl die iGPU weiterhin keine Nutzung fand. Dafür skalierte nun das Modell über alle CPU-Kerne. Allerdings stehen hinter der Aussage „deutlich besser“ immer noch ca. 12 Sekunden pro Frame.

    Baum sagt adieu – nach dem Upscaling mit Real-ESRGAN
    Und da ist er wieder, mein Freund der Baum – nach dem Upscaling mit Real-ESRGAN

    Was ziehe ich aktuell daraus:

    • Mein persönlicher Proof-of-Concept ✅
    • Um so weit zu kommen, musste ich die eine oder andere Library patchen um sie mit aktuelleren Python-Versionen zum Laufen zu bekommen (insbesondere basicsr) ✅
    • Die erzielte Video-Qualität ist auch bei wirklich schlechtem Ausgangsmaterial gut. Das zeigte der obige PoC, aber auch andere Videoschnipsel, die ich hier nicht posten kann ✅
    • ML auf CPU-Kernen macht keinen Spaß, schon gar nicht bei vielen Hundert oder Tausend Frames. Eine letzte Möglichkeit, die iGPU doch noch zum Mitmachen zu überreden, wäre die Inferenz via Vulkan zu beschleunigen. Aber auch da reden wir vielleicht von Faktor 2 bis 5 an Verbesserung gegenüber der reinen CPU – zu langsam um ein ernsthaftes Projekt zu wagen.

    Und hier nochmals der Link zu den originalen Videos.

    • Multiple Teams-Konten via PWA gleichzeitig verwenden

      Multiple Teams-Konten via PWA gleichzeitig verwenden

      Ich bin nicht der große Freund von Teams, bin aber durch verschiedene Aktivitäten mit verschiedenen Teams-Konten konfrontiert. Da ich zuhause aber lieber Linux (aktuell Fedora) verwende, steht mir am Desktop die native Teams-App nicht zur Verfügung.

      Für Teams gibt es aber seit einiger Zeit die Progressive Web App, kurz PWA, von Microsoft, welche aktuell in Firefox und Chromium-basierten Web Browsern als „Desktop-Applikation“ installiert werden können. So weit wenig Neues.

      Die PWA unterstützt Stand heute immer nur ein Teams-Konto. Um somit mehrere Teams-Konten zu bespielen, kann man sich einem Trick behelfen und in Chromium sogenannte Profile erstellen:

      Profil-Auswahl in Chromium

      In jedem Profil können nun eigene PWA installiert werden, in meinem Fall jeweils einmal Teams. Ist das erfolgt, sind die PWA im Applikations-Launcher verfügbar und können separat gestartet werden:

      Zwei separate Teams-Instanzen in jeweils einer PWA

      Ähnlich lässt sich das auch in Firefox lösen, aber Teams bevorzugt leider Edge und lebt ganz gut mit Chromium.

    • FreshRSS – Endlich Newsfeeds plattformunabhängig konsumieren

      FreshRSS – Endlich Newsfeeds plattformunabhängig konsumieren

      Ich habe eine längere Liste an Newsfeeds, die ich von Zeit zu Zeit konsumiere. Allerdings fehlt mir schon länger die „Applikation“, die Plattform-übergreifend funktioniert (Linux, Android, Windows aktuell). Nach ein wenig Recherche habe ich mich für eine Web-basierte Lösung entschieden: FreshRSS bzw. https://github.com/FreshRSS/FreshRSS

      PHP, MySQL, … als Anforderungen lassen es auch auf den meisten Webspaces laufen.

      Was kann es?

      • Verschiedene RSS-Formate
      • Verwalten von Kategorien, Labels, Favoriten, …
      • Multi-User-Management

      Die Installation ging schnell von der Hand, entweder per Docker oder gleich am Webspace, die Konfiguration ebenso. I like. 🙂

    • [work-in-progress] Netgear Readynas ins Leben zurück holen

      [work-in-progress] Netgear Readynas ins Leben zurück holen

      Eine meiner eher partiell schlauen Entscheidungen war annodazumal ein Netgear Readynas Ultra 2, aka RDNU2120, zu beschaffen. Gedacht war es als NAS mit zusätzlicher Backup- und Media-Streaming-Aufgabe, also genau, was es (damals) konnte. Die Nutzungsrealität sah anders aus:

      • In der damaligen Wohnung gab es keinen Platz, wo das kleine Kastl nicht irgendwie störte (optisch, akustisch).
      • Der familiäre Media-Streaming-Konsum damals wie heute überschaubar geblieben ist.
      • 24/7 laufen lassen nur Strom verbraucht hätte, da außer Leerlauf kaum Betrieb zu erwarten war.
      • Außer den gelegentlichen Systemupdates wurden in unregelmäßigen Abständen Backups von unseren Endgeräten gezogen.
      • Bis es immer öfter im Schrank blieb.

      Dabei ist es ein für damalige Verhältnisse potentes Gerät für viele Aufgaben, die im Heimbereich anfallen:

      • Intel Atom Single Core Prozessor mit 1,8 GHz Taktfrequenz
      • 1 GB DDR3-RAM
      • 2x 1 Gb Ethernet
      • 3x USB
      • 2x 3,5″ HDD-Schnellwechselschächte
      • Und mit dem vorinstallierten Readynas-OS ein Debian-Abwandlung als Betriebsystem

      Vor kurzem habe ich es wieder aus dem Schrank geholt, wegen Backups ziehen warat’s und außerdem suche ich ein Poster aus einer Posterpräsentation aus dem Jahr 2009, das ich nirgends mehr finden kann.

      Long story short: Das Poster konnte ich (noch) nicht finden und beim Einbinden des Readynas wurde es holprig.

      Nach dem erfolgreichen Boot-Prozess und Abholens einer TCP/IP-Adresse beim DHCP-Servers zeigte sich mangels Unterstützung einer aktuellen TLS-Version ein Drama in mehreren Akten. Der in Nautilus/Files integrierte Samba/CIFS-Client war not amused die Shares einzubinden, mein Webbrowser wollte nicht mit dem Admin-Panel kommunizieren. Bei letzterem verständlich, TLS 1.0 ist seit einiger Zeit abgekündigt und das aus gutem Grund.

      Nicht unterstützte TLS-Version verhindert Zugriff auf das Admin-Panel

      Workaround Admin-Panel

      In Firefox kann unter

      about:config

      in die Innereien des Browsers eingegriffen werden. Unter anderem kann hier1 auch die minimale TLS-Version vorgegeben werden. Dafür gibt man in der Suchmaske folgendes ein:

      security.tls.version.min

      Per Default ist hier 3 als Wert eingetragen, was TLS-Version 1.2 oder höher entspricht. Im Fall von diesem Readynas musste ich TLS-Version 1.0 freischalten:

      Wert in about:configTLS-Version
      3TLS-Version 1.2 oder höher
      2TLS-Version 1.1 oder höher
      1TLS-Version 1.0 oder höher
      Zulässige Werte und deren Bedeutung für security.tls.version.min

      Es ist keine gute Idee, dauerhaft auf eine nicht mehr unterstützte und vor allem unsichere TLS-Implementierung zurückzugreifen.

      Mit dieser Anpassung gelang der Zugriff auf das Admin-Panel wieder.

      Workaround Nautilus/Files

      Ursache war hier, dass sich das Readynas nur auf SMB-Version 1.0 versteht, aber die Welt von Version 2 oder höher mittlerweile ausgeht.

      [Quick Fix #1] WebDAV aktivieren

      Im Admin-Panel aktivierte ich zusätzlich den Zugriff auf die Shares via WebDAV, womit der Zugriff in Nautilus/Files wieder funktionierte. Damit konnte ich wieder durch die Verzeichnisse navigieren.

      [Quick Fix #2] Mount via Terminal

      Mit den cifs-utils kann ein Share direkt im Terminal eingebunden werden:

      ~$ sudo mount -t cifs -o user=username,vers=1.0 //192.168.x.y/xyz /mnt/rn

      Wie geht es weiter?

      Die beiden Workarounds sind natürlich keine Dauerlösung. TLS wurde aus gutem Grund verbessert und WebDAV ist als Protokoll sicher ok um die wichtigsten Daten vom Readynas zu sichern, aber aus meiner Sicht ist es nicht das Protokoll für das dauerhafte Bewegen großer Datenmengen. Die Limitierung auf SMB-Version 1.0 kann mit entsprechendem Scripting bzw. Automount umgangen werden, somit ist dieser Punkt entschärft.

      Readynas-OS ist EOL und für mein deutlich älteres Readynas gibt es seit vielen Monden keine Updates mehr, d.h., die Hoffnung auf eine offiziell aktualisierte TLS-Version ist nicht gegeben. Beim Blick in das Gerät zeigte sich aber ein sehr guter Zustand, zum Wegwerfen zu schade. Folgende Ansätze stehen zur Diskussion:

      Was es wird, keine Ahnung – Schritt 1: Backup! #StayTuned

      1. Stand Firefox 128.0 ↩︎
    • WLAN-Optimierung mit nmcli

      WLAN-Optimierung mit nmcli

      Die Anforderungen ans hauseigene WLAN steigen, also war es wieder an der Zeit nachzuschauen, was mit der bestehenden Infrastruktur (noch) möglich ist. Folgende Ansatzpunkte hatte ich vorab identifiziert:

      • Festhalten des Status Quo
      • Optimieren des WiFi-Channels
      • Festlegen der relevanten IEEE 802.11-Standards
      • Hinzufügen des 5 GHz-Frequenzbandes
      • Kontrollieren der Sicherheitsmechanismen

      Da ich gerne mit dem arbeite, was schon da ist, bevor etwas Neues bei der Tür hereinkommt und motiviert durch einen Bekannten, der ein ähnliches Problem hat, findet sich hier eine kurze Mitschrift zum Vorgehen und der Erkenntnisse unterwegs.

      Festhalten des Status Quo

      Der WLAN-Router kommt von meinem ISP und gestattet erstaunlich viele Einstellmöglichkeiten im Admin-Panel. In den letzten Monaten hatte ich das „Gefühl“, dass der Datendurchsatz durch den WLAN-Router begrenzt ist. Mehr Endgeräte tummeln sich im Netz und einige datenintensiven Dienste werden konsumiert, sodass sich parallel stattfindende, beruflich bedingte Video-/Online-Konferenzen des Öfteren gestört fühlten. Hier ein paar Eckpunkte:

      • OEM-WLAN-Router vom ISP
      • IEEE 802.11b/g/n auf 2,4 GHz inkl. Channel-Optimierung konfiguriert
      • Keine Repeater installiert
      • Alle Endgeräte sind zumindest IEEE 802.11n-fähig.
      • Mehrparteiengebäude in der Stadt

      Optimieren des WiFi-Channels

      In den letzten Jahren gingen mehr und mehr WLAN im Umfeld online. Der erste Verdacht lag auf der Überbelegung des WiFi-Channels. Der vorliegende Router gibt vor eine Kanaloptimierung zu beherrschen , welche auch aktiviert war.

      Sichtlich machte die Kanaloptimierung nicht all zu viel, weil der vor Jahren ermittelte Kanal 11 war noch immer ausgewählt, aber heillos überfrachtet. Da mein ISP mehrere Parteien in unserem Haus ausstattet, ist der Kanal 11 wohl der Default und somit in meinem Fall ein faulty default.

      Um zu ermitteln, welche WLAN in der Nähe sind und auf welchen Kanälen sie funken, habe ich auf nmcli, das Command-Line-Interface von NetworkManager, zurückgegriffen. Der folgende Aufruf (in Anlehnung an user278801) hat mir die Grunddaten für die WLAN-Analyse geliefert:

      ~$ watch "nmcli -f "CHAN,BARS,SIGNAL,SSID,MODE,RATE,SECURITY,IN-USE" d wifi list | sort -n"

      Das Ergebnis im Terminal:

      nmcli mit den umliegenden WLAN sortiert nach Channel nach der Optimierung im Essbereich

      Um ein möglichst gutes Gesamtbild zu bekommen, habe ich diese Analyse in allen Zimmern durchgeführt. Bei der Auswahl des neuen Kanals wählte ich unter Berücksichtigung dieser Quelle den Kanal 9 für das 2,4 GHz-WLAN.

      Festlegen der relevanten IEEE 802.11-Standards

      Der WLAN-Router wurde im Jahr 2018 eingerichtet. Damals gab es noch Überlegungen, Geräte mit dem schon damals veralteten Standard IEEE 802.11g einzubinden. Dementsprechend wurde die Kompatibilitätseinstellung für den Mischbetrieb nach IEEE 802.11b/g/n gewählt. Mittlerweile unterstützt jedes Endgerät in unserem Haushalt zumindest IEEE 802.11n, was somit auch die neue Festlegung geworden ist.

      Hinzufügen des 5 GHz-Frequenzbandes

      Ähnlich war es damals mit des 5 GHz-Frequenzbandes. 2018 konnten nicht alle Endgeräte davon profitieren, die Performance im 2,4 GHz-Frequenzband ausreichend. Auch dieses wurde aktiviert, womit nun die meisten Endgeräte selbst entscheiden, in welchem Frequenzband sie bessere Bedingungen vorfinden.

      Kontrollieren der Sicherheitsmechanismen

      Auch hier gab es eine Veränderung: Alle unsere Endgeräte unterstützen zumindest WPA2, das unsichere WPA ist nicht mehr notwendig und WPA3 wird vom WLAN-Router nicht unterstützt. Somit wurde WPA2-only als Verschlüsselungsmechanismus gesetzt.

      Erkenntnisse aus der Aktivität

      • Linux-Distros bringen immer alles mit, was man so braucht. 😉
      • nmcli tut das Notwendige, wenn man tiefer in die WLAN-Analyse einsteigen möchte, gibt es spezielle Tools wie sparrow-wifi, kismet, …
      • Die Auffrischung der IEEE 802.11-Grundlagen tat gut.
      • Die Performance und Stabilität des eigenen WLAN ist deutlich besser geworden und das ohne neue oder zusätzliche Hardware angeschafft haben zu müssen.

      Update, 2024-07-16: BSSID

      Eines der Geräte hat Probleme sich mit dem 5 GHz-WLAN zu verbinden und bringt wiederholt die Aufforderung zur Passworteingabe ohne einen Anmeldeerfolg zu verbuchen. Ich vermute einen Hardware- oder Firmware-Defekt rund um das WiFi-Modul. Um dem Gerät den Versuch des ständigen Wechselns zum stärkeren Netzes auszutreiben habe ich in den WLAN-Einstellungen die BSSID fix vorgegeben.

      Ermitteln kann man die BSSID z.B. mit nmcli durch Hinzufügen des gleichnamigen Parameters:

      Und dann in den WLAN-Einstellungen hinterlegt:

    • [ideas] Ladeflächengestaltung für Omnium Cargo

      [ideas] Ladeflächengestaltung für Omnium Cargo

      Vielleicht steht bald ein Omnium Cargo als Lastenrad vor der Tür. Ein offenes Thema ist die Gestaltung der Ladefläche. In dem Artikel sammle ich für mich Ideen.

      Omnium Webbing

      Von Omnium selbst gibt es das sogenannte Webbing: ein System aus Nylon-Bahnen, die miteinander verwoben werden.

      Montage-Video zum Original-Webbing von Omnium

      Pro/Kontra:

      • Niedriges Gewicht
      • UV-stabil (?)
      • Benötigt zusätzliche Spannelemente für Lasten
      • Relativ hoher Preis
      • Schlechte Verfügbarkeit (aktuell)

      Alternativen – Webbing selbst gemacht:

      Fahrradschläuche

      Ähnliche Strukturen kann man auch mit alten Fahrradschläuchen erzeugen. Im folgenden Video werden acht Schläuche miteinander verwoben:

      Pro/Kontra:

      • Höheres Gewicht als Webbing
      • Hohe Elastizität
      • Spannelemente für Lasten sind bereits integriert
      • Nur bedingt UV-stabil
      • Niedrige Kosten
      • Hohe Verfügbarkeit

      Weitere Links:

      Multifunktionsplatte

      Pro/Kontra:

      • Anfertigung aufwendig
      • Hohes Gewicht
      • Benötigt zusätzliche Spannelemente für Lasten

      Weitere Links:

      #last update: 2024-06-27

    • [huschpfusch] Schuhsohle kleben

      [huschpfusch] Schuhsohle kleben

      Meine 2000-irgendwas Adidas Spezial gehören zu meinen ältesten regelmäßig getragenen Schuhen. Vor ein paar Wochen begannen die Sohlen ihren Unabhängigkeitsbestrebungen nachzugehen – dies wurde einstimmig abgelehnt!

      Für die Reparatur brauchte es zuerst Pattex, Zahnstocher und eine Viertelstunde Zeit, bis die Klebeflächen auf beiden Seiten angetrocknet waren:

      Bastelutensilien

      Dann die Sitzbank für ein Stunde umfunktioniert:

      50 kg Sitzbank als Unabhängigkeitsverhinderer

      Nach zwei Tagen hatte der Kleber angezogen und machte auch in den vier Wochen seitdem keine Anstalten daran etwas zu ändern.

    • [sold] Yuba Mundo Electrified Cargo Bike

      [sold] Yuba Mundo Electrified Cargo Bike

      Wir trennen uns mit etwas Wehmut von unserem elektrifizierten Kindertransporter und Commuter-Lastenrad. Vier Jahre und ca. 5800 km hat uns das Yuba Mundo in Graz und Graz-Umgebung begleitet. Nun sind die Kids aus der Volksschule und somit fällt ein regelmäßiger Weg und somit der Hauptzweck des Radls weg.

      Yuba Mundo

      Das Yuba Mundo ist als Longtail eine äußerst flexible Plattform, was den Transport von Kindern aller Altersstufen und Erwachsenen angeht. Bis zu 250 kg dürfen in Summe zugeladen werden und diese sind mit dem integrierten Shimano Steps-E-Antrieb problemlos zu bewegen.

      Shimano E-Steps-Mittelmotorantrieb mit abnehmbaren Akku

      Unsere typische Grazer Reichweite liegt bei 80-100 km mit einer Akkuladung, je nach abgerufenen Motorunterstützung und Geländeprofil kann es natürlich mehr oder weniger. Die Reichweite hat sich in den vier Jahren auch nicht verändert, will sagen, der Akku ist in einem sehr guten Zustand1.

      Stuff Rack/Bread Basket mit montiertem Vorderlicht

      In unserem Fall waren zwei Volksschulkinder von Mama (ca. 165 cm groß) oder Papa (ca. 187 cm groß) zu transportieren. Dementsprechend hat unser Aufbau weniger Halte- und Schutzeinrichtungen, als es für kleinere Kinder nötig wäre. Für diese können Monkey Bars oder gar ganze Kindersitze, für Nichtkindertransportierende können große Transporttaschen und Aufnahmen für sperrige Güter nachgerüstet werden: SUP, Surfbrett, ein Radl, etc. dürfen beim Yuba Mundo auch mit – die Zubehörliste ist lang.

      Sitzfläche mit Bamboo Deck und Fußrasten

      Was verkaufen wir? Wie ist es ausgestattet?

      • Yuba Mundo E-Cargo Bike aus Erstbesitz mit ca. 5800 km Laufleistung – unfall- und sturzfrei
      • Shimano Steps E-Antrieb mit Shimano Deore 10-fach Schaltung
      • Abnehmbarer und versperrbarer Shimano Original-Akku inkl. Ladegerät
      • Magura 4-Kolben-Scheibenbremsen vo/hi mit großen Bremsscheiben: Sehr gute Bremsleistung und wartungsarm
      • Laufradgröße ist 26 Zoll vo/hi mit großvolumigen Reifen: In Kombination mit dem langen Radstand bringen sie viel Laufruhe
      • An der Front ist das Stuff Rack/Bread Basket montiert, ein am Rahmen fix montierter Korb für Einkäufe, Taschen, …
      • Ein stabiler Doppelständer lässt das Rad selbst schwer beladen nicht kippen.
      • Für die Kids haben wir folgendes montiert:
      • Des Weiteren ist eine StVO-konforme Lichtanlage vo/hi montiert, welche aus dem großen Akku gespeist wird.
      Steuergerät für den E-Antrieb

      Das Rad befindet sich einem guten bis sehr guten Zustand und hatte bei uns einen Tiefgaragenplatz. D.h., tagsüber war es draußen, aber abends/nachts war es 365 Tage im Jahr wettergeschützt untergebracht. Dennoch hat der Lack kleinere Spuren davongetragen, die ihr euch vor Ort natürlich anschauen könnt. Das Service wurde einmal jährlich bei Lemur Bikes durchgeführt, wo Verschleißteile (Bremsbeläge, Bremsscheiben, Kette, …) entsprechend erneuert wurden.

      Der Neupreis lag bei anno dazumal mit dem oben genannten Zubehör bei ca. €6000,-. Unsere Preisvorstellung liegt bei €3500,-, diese beinhalten auch ein Service bei Lemur Bikes, welches wir vor dem Verkauf durchführen werden (Rechnung und Leistungsbeschreibung des Service bekommen natürlich die Käufer).

      Angesehen und Probe gefahren kann und soll das Yuba natürlich werden – wir wohnen in 8010 Graz. 🙂

      Und zur Vollständigkeit: Es handelte sich hier um einen Privatverkauf.2

      1. Hinweis am Rande: Vor dem Yuba hatten wir ein Bullitt, welches ebenfalls mit einem Shimano Steps E-Antrieb ausgestattet war. Dies verließ uns nach vier Jahren und ähnlicher Laufleistung. Auch dieser Akku zeigte keine Degradation und fährt mit den neuen Besitzern seit mittlerweile vier Jahren. Long story short: Der Akku hat bei guter Behandlung noch sehr viel Lebenszeit – was ich aus Kurierradfahrerkreisen weiß vermutlich viele zehntausende Kilometer. ↩︎
      2. Verkauft am 10.07.2024. ↩︎