• Herzlich willkommen!

    Das Team von »Doctor Brick« heißt Euch herzlich willkommen und wünscht Euch viel Spaß hier!
    »Doctor Brick« ist eine anerkannte Community (RLOC) für erwachsene LEGO Enthusiasten, auch AFOLs (= Adult Fans Of LEGO) genannt.
    Wir können uns hier über alle Belange des LEGO Hobbys austauschen wie z.B. Set- und Teilefragen, Vorstellung und Rezensionen von Legobauten.
    Bitte beachtet die Nutzungsbedingungen und den Verhaltensleitfaden.

Schlanke Android-Steuerung für PU, Mould King & Circuit Cubes und weitere

graefemeister

Mitglied
Registriert
24 Jan. 2022
Beiträge
63
Hallo zusammen,

ich möchte euch ein kleines Projekt vorstellen, das aus dem Eigenbedarf entstanden ist: NoppenExpress.

Da ich eine einfache und performante Lösung gesucht habe, um meine Züge unter Android zu steuern, ohne mich durch überladene Interfaces zu klicken, habe ich in den letzten Wochen an dieser App gearbeitet. Mir ging es primär um eine saubere Bluetooth-Anbindung und eine feinfühlige Regelung.

Die App ist ein reines Hobbyprojekt, komplett werbefrei und unter der GPLv3 lizenziert (Open Source).

Unterstützte Hardware (aktueller Stand):
  • LEGO® Powered Up
  • Mould King 6.0
  • Circuit Cubes

Woran ich aktuell arbeite: Das Protokoll für die Mould King 4.0 Akkuboxen bereitet mir noch etwas Kopfzerbrechen, da bin ich aber dran. Für den SBrick fehlt mir aktuell die Hardware zum Testen – falls hier jemand Interesse hat und mir leihweise ein Gerät zur Verfügung stellen könnte, würde ich die Implementierung angehen.

Status & Testmöglichkeit: Die App befindet sich derzeit im Review-Prozess bei Google für den Play Store. Wer nicht warten möchte und die App vorab testen will, kann mir gerne eine PN mit seiner Google-Mail-Adresse schicken. Ich schalte euch dann für den internen Test frei, damit ihr die App direkt über den Play Store beziehen könnt.

Der Quellcode ist für Interessierte auf GitHub einsehbar: https://github.com/graefemeister/NoppenExpress

Ich freue mich über technisches Feedback, Bug-Reports oder Anregungen zu weiteren Protokollen.

Viele Grüße,
graefemeister
 

Anhänge

  • NoppenExpress_small.png
    NoppenExpress_small.png
    598,6 KB · Aufrufe: 24
  • Screenshot_20260320-151806.png
    Screenshot_20260320-151806.png
    29,7 KB · Aufrufe: 26
  • Screenshot_20260320-151832.png
    Screenshot_20260320-151832.png
    187,3 KB · Aufrufe: 25
Zuletzt bearbeitet:

Glattnoppe

Mitglied
Registriert
23 Mai 2023
Beiträge
134
Klasse Projekt!

Für eine Bangle.js hab ich mal mit einem Beispielprogramm für Mouldkingboxen rumgespielt. Vielleicht kannst Du bei den espruino-Leuten ein paar Anregungen holen.

Könntest Du die apks nicht einfach unter releases github stellen?
 
Zuletzt bearbeitet:

graefemeister

Mitglied
Registriert
24 Jan. 2022
Beiträge
63
Danke für den Hinweis, ich werde mir das ansehen.

Die APK werde ich da gerne reinstellen.
Für den Play Store braucht es aber wohl tatsächlich Leute, die sich als Tester melden
 

Lok24

Elektronikbahner
Registriert
11 Sep. 2019
Beiträge
2.097
Hallo @graefemeister ,

sehr spannend.
Inwieweit kann man denn die Loks parametrisieren?

Das war mir bei meinem PyBricks-Projekt sehr wichtig.
Kann es auch via FB/Controller bedient werden?
 
Zuletzt bearbeitet:

graefemeister

Mitglied
Registriert
24 Jan. 2022
Beiträge
63

Technische Details zur Konfiguration:​


Die Hubs lassen sich in der App recht detailliert für das jeweilige Modell parametrisieren. Aktuell sind folgende Setups vorkonfiguriert:
  • Mould King 6.0 (4 Ports): Unterstützung für bis zu 2 Motoren (wahlweise gleich- oder gegenläufig für große Loks) sowie 2 Ports für Licht (einer davon richtungsabhängig für Bicolor-LEDs beim fahrtrichtungsabhängigen Lichtwechsel).
  • LEGO® Powered Up (2 Ports): Betrieb von 1–2 Motoren (ebenfalls gegenläufig möglich) oder alternativ 1 Lichtport.
  • Circuit Cubes: Fokus auf kompakte Modelle mit 1 Motor und 2 freien Ports für die Beleuchtung.

Individuelle Fahrparameter (für alle Hubs):

Über Schieberegler in den Profil-Einstellungen lässt sich das Fahrverhalten pro Lok feinjustieren:


  • Beschleunigungsrampen (Ramping): Für sanftes Anfahren und Bremsen ohne Ruckeln.
  • Fahrstufen: Aktuell auf 4 definierte Stufen ausgelegt, um die Geschwindigkeit kontrolliert zu regeln.
  • Begrenzungen: Die Maximalgeschwindigkeit kann (auch separat für die Rückwärtsfahrt) begrenzt werden – ideal für Schiebeloks oder Rangierfahrten.
 

Lok24

Elektronikbahner
Registriert
11 Sep. 2019
Beiträge
2.097
  • Beschleunigungsrampen (Ramping): Für sanftes Anfahren und Bremsen ohne Ruckeln.
  • Fahrstufen: Aktuell auf 4 definierte Stufen ausgelegt, um die Geschwindigkeit kontrolliert zu regeln.
  • Begrenzungen: Die Maximalgeschwindigkeit kann (auch separat für die Rückwärtsfahrt) begrenzt werden – ideal für Schiebeloks oder Rangierfahrten.
Das klingt schon mal sehr gut, bei Interesse kann ich Dir mal meine schicken.
Werden denn alle Motoren unterstützt?
 

graefemeister

Mitglied
Registriert
24 Jan. 2022
Beiträge
63
Das klingt schon mal sehr gut, bei Interesse kann ich Dir mal meine schicken.
Werden denn alle Motoren unterstützt?
Ich habe es mit den normalen Zugmotoren und einem M-Motor getestet.
Bei PU habe ich nur einen Zugmotor da, der funktioniert.
Bei CircuitCubes habe ich es mit dem einfachen MotorisierungsSet getestet, das geht auch...

Klar, zu sehen wie es andere lösen kann nicht schaden ;)

Gruß
Christian
 
Zuletzt bearbeitet:

Lok24

Elektronikbahner
Registriert
11 Sep. 2019
Beiträge
2.097
Bei PU habe ich nur einen Zugmotor da, der funktioniert.
Die haben beide keine Lastreglung, was für ein langsames Anfahren sehr schön ist.
zu sehen wie es andere lösen kann nicht schaden

Ich hänge einfach mal die Features dran, vieles hast Du schon oder brauchst Du nicht
  • - Automatische Erkennung der Motoren
  • - Lastregelung bei Tacho-Motoren
  • - Motoren auch verschieden schnell drehend möglich
  • - zwei verschiedene Beschleunigungsprofile, im Betrieb durch Tastendruck wählbar
  • - Minimal- und Maximalgeschwindigkeit einstellbar
  • - Drehrichtung beider Motoren voreinstellbar
  • - Weiter Beschleunigen bei Festhalten der Taste (an und abschaltbar)
  • - Keine Fahrtrichtungsumkehr bei Überschreiten von Null
  • - Knöpfe frei den Funktionen zuzuordnen
  • - Weiterfahren oder Anhalten bei Verlust der FB-Verbindung
  • - Verbinden mit einer ganz bestimmten FB
  • - Einstellen der LED-Farben und Helligkeit von Hub und FB
 

graefemeister

Mitglied
Registriert
24 Jan. 2022
Beiträge
63
Die haben beide keine Lastreglung, was für ein langsames Anfahren sehr schön ist.


Ich hänge einfach mal die Features dran, vieles hast Du schon oder brauchst Du nicht
  • - Automatische Erkennung der Motoren
  • - Lastregelung bei Tacho-Motoren
  • - Motoren auch verschieden schnell drehend möglich
  • - zwei verschiedene Beschleunigungsprofile, im Betrieb durch Tastendruck wählbar
  • - Minimal- und Maximalgeschwindigkeit einstellbar
  • - Drehrichtung beider Motoren voreinstellbar
  • - Weiter Beschleunigen bei Festhalten der Taste (an und abschaltbar)
  • - Keine Fahrtrichtungsumkehr bei Überschreiten von Null
  • - Knöpfe frei den Funktionen zuzuordnen
  • - Weiterfahren oder Anhalten bei Verlust der FB-Verbindung
  • - Verbinden mit einer ganz bestimmten FB
  • - Einstellen der LED-Farben und Helligkeit von Hub und FB
Das sind aber alles Dinge, die du mit PU umsetzt?
Ich komme von den MouldKing-Hubs, die sind ja deutlich einfacher gestrickt, aber auch deutlich günstiger.
Mein Ansatz ist erstmal, das möglichst simpel zu halten (wobei man ja für PU durchaus weitere Features anbieten kann, wenn sie gebraucht werden)

Grüße
Christian
 

Glattnoppe

Mitglied
Registriert
23 Mai 2023
Beiträge
134
Die APK werde ich da gerne reinstellen.
Für den Play Store braucht es aber wohl tatsächlich Leute, die sich als Tester melden
Als Googletester scheide ich wohl aus. Ich versuche alle Geräte googlefrei zu halten und habe demnach auch nicht das nötige Googlekonto.

Wenn Du die apk zur Verfügung stellst (github ist doch dafür gut) teste ich aber gern. Du könntest auch in F-Droid veröffentlichen, das finde ich den deutlich sympathischeren Weg. Oder ein Repo, dass man im F-Droid-Client hinterlegen kann.
 

ellermaniac

Nebenbahner
Registriert
24 Mai 2019
Beiträge
2.873
Ort
Osnabrück
Erster Eindruck:

Installation problemlos, Einrichtung einer Lok könnte intuitiver sein. Der grüne Haken oben rechts ist schnell außerhalb des sichtbaren Bereichs.

Reine Querformat-Darstellung finde ich beschränkend, aber ok. Nicht praktisch: Keine automatische Anpassung an Darstellungsbereich des Smartphones - Doof, wenn ich für den Stop-Button erst scrollen muss.

Positiv:
- Buttons für vordefinierbare Geschwindigkeitsstufen.
- PU-Lok & Circuit-Cube nebeneinander (+gleichzeitig!) in der Lok ansteuerbar
- zwei Motoren an einem Hub scheint vorgesehen zu sein - muss ich noch testen.

1A: sanftes Beschleunigen/Anhalten/Richtungswechsel. Auch am Circuit Cube!

Verbesserungsvorschläge:
Motor Circuit Cube nur auf Port A möglich? B & C 100% an/aus ganz praktisch - individuelle Belegung wäre besser.
Beim PU-Hub gibt es auch Buttons für B und C …
 

graefemeister

Mitglied
Registriert
24 Jan. 2022
Beiträge
63
Ich habe hier mal ein kurzes 'Quick & Dirty'-Video gemacht. Die Qualität ist nicht berauschend, aber man sieht ganz gut, wie das fahrtrichtungsabhängige Licht umschaltet und wie sanft das Ramping beim Beschleunigen und Bremsen greift. Mehrere Züge gleichzeitig steuern geht auch – ein Video dazu liefere ich nach, sobald ich Zeit dazu finde.

 

graefemeister

Mitglied
Registriert
24 Jan. 2022
Beiträge
63
Erster Eindruck:

Installation problemlos, Einrichtung einer Lok könnte intuitiver sein. Der grüne Haken oben rechts ist schnell außerhalb des sichtbaren Bereichs.

Reine Querformat-Darstellung finde ich beschränkend, aber ok. Nicht praktisch: Keine automatische Anpassung an Darstellungsbereich des Smartphones - Doof, wenn ich für den Stop-Button erst scrollen muss.

Positiv:
- Buttons für vordefinierbare Geschwindigkeitsstufen.
- PU-Lok & Circuit-Cube nebeneinander (+gleichzeitig!) in der Lok ansteuerbar
- zwei Motoren an einem Hub scheint vorgesehen zu sein - muss ich noch testen.

1A: sanftes Beschleunigen/Anhalten/Richtungswechsel. Auch am Circuit Cube!

Verbesserungsvorschläge:
Motor Circuit Cube nur auf Port A möglich? B & C 100% an/aus ganz praktisch - individuelle Belegung wäre besser.
Beim PU-Hub gibt es auch Buttons für B und C …
Vielen Dank für das erste Feedback! Ich schaue mir das an!
 

graefemeister

Mitglied
Registriert
24 Jan. 2022
Beiträge
63
Hallo @ellermaniac ,

vielen Dank für das ausführliche Testen und das ehrliche Feedback! Super, dass die Kern-Features – besonders das Ramping an den Circuit Cubes und der Parallelbetrieb verschiedener Hub-Systeme – bei Dir auf Anhieb so gut funktioniert haben. Das zeigt mir, dass das technische Fundament stabil ist.

Zu Deinen Punkten und wie ich sie in der nächsten Version angehen möchte:

1. Skalierung & Ergonomie (Der "verschwundene" Haken & Stop-Button): Das ist ein absolut berechtigter Punkt. Dass der Stop-Button weggescrollt werden konnte, ist bei einer Fernsteuerung ein Sicherheitsrisiko.
  • Hintergrund zur Skalierung: Momentan ist die App so konzipiert, dass man die Größe der Bedienelemente in den Einstellungen manuell feinjustieren kann. So kann jeder selbst entscheiden, wie groß die Regler für die eigenen Finger sein sollen. Eine Automatik habe ich bewusst weggelassen, um maximale Freiheit zu lassen – das führt aber dazu, dass man bei der Ersteinrichtung kurz "schrauben" muss.
  • Die Lösung für v1.0.1: Ich werde das Layout so umbauen, dass der Speicher-Haken und vor allem der STOP-Button in einer fixierten Ebene liegen (Floating Buttons). Diese "schweben" dann immer an derselben Stelle, egal wie groß oder klein man den Rest der Steuerung skaliert hat. Damit ist die Notbremse immer sofort im Zugriff, ohne dass man wischen muss.
2. Port-Belegung & Hub-Logik:
  • Circuit Cube: Hier ist die App aktuell sehr "festgelegt". Ich habe Port A als Motor und B/C als Licht definiert, um die Einrichtung simpel zu halten, da dies bei 95 % der Loks in dieser Größe das Standard-Setup sein dürfte. Ich werde aber eine klarere Beschriftung in der UI ("Port A - Motor") ergänzen, damit das direkt ersichtlich ist.
  • LEGO PU-Hub: Dass dort noch ein Port C zur Auswahl stand, war ein kleiner Schönheitsfehler (Faulheit beim Programmieren...). Das fixen wir natürlich, sodass nur noch die physisch vorhandenen Ports A & B angezeigt werden.
3. Zwei Motoren & MouldKing: Die gegenläufige Ansteuerung ist bei mir aktuell für den Standard-Lokbau (z. B. zwei Drehgestelle) fest hinterlegt. Für die erste Version lasse ich das so "hart" drin, da es den meisten Anwendungsfällen entspricht und man das gar nicht bemerkt, wenn man nur einen Motor einbaut. Für später behalte ich mir vor, noch einen "Invertieren"-Schalter nachzurüsten.

Wie geht es weiter? Ich setze mich jetzt an die Verbesserungen, um die UI-Punkte und die Port-Bereinigung umzusetzen. Sobald das Update in der Console (und die APK auf GitHub) bereitsteht, gebe ich hier kurz Bescheid.

Nochmals danke für die Schützenhilfe – genau dieses Praxis-Feedback macht das Projekt erst richtig rund!

Viele Grüße,
graefemeister
 

graefemeister

Mitglied
Registriert
24 Jan. 2022
Beiträge
63

Ich habe mal ein neues Video gedreht, diesmal mit vollem Körpereinsatz. Spoiler: Ich bin ganz schön ins Schwitzen gekommen...

Man sieht vier Züge gleichzeitig im Einsatz. Da ich die Geschwindigkeiten in der App-UI vorher nicht aufeinander angepasst hatte (was natürlich geht, hust...), artete das ständige Nachregeln beim gleichzeitigen Filmen in echten Extremsport aus.

Das Video ist also nicht nur ein Beweis für die Stabilität der Bluetooth-Verbindungen, sondern auch für meine (begrenzte) Multitasking-Fähigkeit. Viel Spaß beim Chaos-Zuschauen!
 
Oben