Lego Bluetooth Hub

Benutzeravatar
Zoltan
Beiträge: 488
Registriert: 18.09.2018, 11:34
Wohnort: Wien
Hat sich bedankt: 66 Mal
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: Lego Bluetooth Hub

Beitrag von Zoltan » 31.03.2021, 19:47

LG Zoltan

little.yoda
Site Admin
Beiträge: 745
Registriert: 14.09.2018, 19:05
Hat sich bedankt: 21 Mal
Danksagung erhalten: 109 Mal

Re: Lego Bluetooth Hub

Beitrag von little.yoda » 01.04.2021, 09:12

so ... das nächste zum testen für dich:

- littleyoda Flasher
- "esp32 with lego support" auswahlen und flashen
- Config-File ist relativ einfach, da bislang nur ein Motor unterstützt wird
- Du kannst auch den Config-File generator nutzen (Normales PWM aktivieren) und dann einfach den Eintrag in der Out-Sektion ändern.

Wie schon angedeutet, entweder funktioniert es auf Anhieb oder nicht. Viel kann ich nicht tun, wenn es nicht funktioniert, da ich die Hardware nicht zum testen habe. Falls es doch funktioniert, würde ich noch darüber nachdenken, den zweiten Motor zu unterstützen.

Fairerweise muss ich sagen, dass der Aufwand nicht besonders groß war. Inkl. Anpassungen am Build-System usw. etwas mehr als zwei Stunden
https://github.com/littleyoda/littleyod ... egoHub.cpp

Code: Alles auswählen

    "out":[
        {
            "id":"pwm1",
            "m":"lpf2hub"
        }
    ],
    "in":[
        {
            "m":"locospeed",
            "addr":4711,
            "out":[
                "pwm1"
            ]
        }
    ],
Dateianhänge
config.zip
(392 Bytes) 15-mal heruntergeladen

Benutzeravatar
Zoltan
Beiträge: 488
Registriert: 18.09.2018, 11:34
Wohnort: Wien
Hat sich bedankt: 66 Mal
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: Lego Bluetooth Hub

Beitrag von Zoltan » 01.04.2021, 12:31

Es gibt eine neue (?) Version bei Mattzo (V0.4), ich weiß nicht, welche du getestet/heruntergeladen hast, ich habe nur mit V0.3 bisher getestet.

Nun zum SvenFramework:

Vorausgeschickt: alles perfekt :)
little.yoda hat geschrieben:
01.04.2021, 09:12
- littleyoda Flasher
- "esp32 with lego support" auswahlen und flashen
- Config-File ist relativ einfach, da bislang nur ein Motor unterstützt wird
- Du kannst auch den Config-File generator nutzen (Normales PWM aktivieren) und dann einfach den Eintrag in der Out-Sektion ändern.
Mit Flasher 0.4.0 "esp32 with lego support" geflashed.

Config File habe ich aus deinem Stub und aus dem LegoKrokodilJson zusammengezimmert:

Code: Alles auswählen

{
    "version":"3",
    "cfg":[
        {
            "m":"ap",
            "ssid":"StEAG_ESP32_BlueTooth_PWM",
            "kanal":"6",
            "pwd":"PaSsWoRd"
        },
        {
            "m":"simulateZ21"
        },
        {
            "m":"webservicewifiscanner"
        },
        {
            "m":"webservicelog"
        },
        {
            "m":"cmdlogger"
        }
    ],
    "out":[
        {
            "id":"pwm1",
            "m":"lpf2hub"
        }
    ],
    "in":[
        {
            "m":"locospeed",
            "addr":3001,
            "out":[
                "pwm1"
            ]
        }
    ],
    "connector":[
    ]
}
(Als Kontrolle mit deinem ZIP verglichen.)

Dann wie üblich connect zu SSID Hallo World ohne Password, Browser 192.168.4.1, upload css und jsons, reset, connect mit Passwort zu neuem SSID, Browser zu 192.168.0.111.

Hub mit Motor danebengestellt, Hub eingeschaltet (blinkt), ESP-Board resettet, hat sich laut LYFlasher Serial Monitor mit dem Lego BT Hub verbunden.

Z21 App gestartet, zu 192.168.0.111 verbunden, Lok (3001) ausgewählt, Z21 regelt den Motor tadellos.
little.yoda hat geschrieben:
01.04.2021, 09:12
Fairerweise muss ich sagen, dass der Aufwand nicht besonders groß war.
für dich... :)
Aber wenn es so ist, hast du mit wenig Aufwand sehr viel Erweiterung ins LYFramework gebracht!
little.yoda hat geschrieben:
01.04.2021, 09:12
würde ich noch darüber nachdenken, den zweiten Motor zu unterstützen.
Wäre gut, nehme ich an - ich brauche es zwar nicht, aber wohl viel LegoFans.

Und du könntest evtl. auch über den PU Licht nachdenken?

Das löse ich zwar anders: ich nehme vom Port B die beiden mittleren Kontakte, die geben fix 3,3V ab, sofort ab Einschalten des Hubs. 4 LEDs mit je 600 Ohm Vorwiderstand kommen darauf, es stört mich nicht, dass die Lichter ständig an sind und nicht mit dem ESP ferngesteuert werden können; ist sogar ein gutes Feedback, dass das Ding an ist (sonst säuft es die Batterien ab...)

Hiermit brauche ich an dem Zug für das Fahren mit LYF nichts ändern. Ich stelle den ESP einfach neben der Schiene, powere es mit einem Handynetzteil und kann es mit der Z21 App fahren.

Es gibt zwar auch eine Lego Fernbedienung, und auch eine Lego App, um mit dem Handy Fahren zu können, ohne extra ESP32 - aber ich finde es mit dem LYF geiler. Und universeller auch. Es kann ja überall integriert werden, auch in Rocrail, nehme ich an, mit MQTT Input im Config - das muss ich aber noch austüfteln. Dann kann ich ohne den MattzoController die Loks fahren. Wobei er mit der Version 4 (0.4.0) einen "Supercontroller (?) gebaut hat, für alle Weichen und Sensoren und viele Loks. Aber wie gesagt, deins gefällt mir besser.

Es ist viel Zeit vergangen, seitdem ich mit meinem G-Spur Harzkamel und deine V1 Framework die ersten Experimente noch im Gartenbahntechnik Forum gemacht habe... und diese Zeit hat gezeigt, wie genial den Gedanke mit dem Framework war.

Ich danke dir hier noch einmal für all die Mühen, die du machst, um uns Spaß zu machen :D

Und hier am Ende noch das Log.
Ich füge es ein, denn du sagtest, dass nu mangels HW nicht testen kannst.
Vielleicht nutzt es dir etwas:

Code: Alles auswählen

ets Jun  8 2016 00:22:57

rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0018,len:4
load:0x3fff001c,len:1044
load:0x40078000,len:10124
load:0x40080400,len:5828
entry 0x400806a8
-------------------------------------------------
[MEM] 243640 / Setup
Started!
Compiledate: Apr  1 2021 06:57:42 v1.2.9-6-g545f943
[MEM] 243152 / Controller
[MEM] 237676 / Wifi
Starting Wifi...
[MEM] 237656 / Webserver
[MEM] 234640 / Serial
[MEM] 234640 / Cfg
MEM 234112 / Cfg Read
MEM 233356 / Starting Parsing
Failed to parse JSON: -3
[MEM] 232588 Post Config
Config-File konnte nicht geparst werden. Fehlerhafter Syntax? Nicht genug Memory?
[CNT] Aktiviere Access Point!
[CNT] IP für AP: 192.168.4.1
[MEM] 177116 / Setup Finish

Setup finish!
DoubleBootDetection: 0
Server begin

[E][WebServer.cpp:633] _handleRequest(): request handler not found
Searching for /stub/stubUpdateCheck.as
File_Start
File_Write
File_Write
File_Write
File_Write
File_Write
File_Write
File_Write
File_Write
File_Write
File_Write
File_Write
File_END
[E][WebServer.cpp:633] _handleRequest(): request handler not found
Searching for /milligram.min.css
Transmit: 14666 Size: 14666
[E][WebServer.cpp:633] _handleRequest(): request handler not found
Searching for /css.css
[E][WebServer.cpp:633] _handleRequest(): request handler not found
Searching for /stub/stubUpdateCheck.as
[E][WebServer.cpp:633] _handleRequest(): request handler not found
Searching for /stub/stubUpdateCheck.as
File_Start
File_Write
File_Write
File_END
[E][WebServer.cpp:633] _handleRequest(): request handler not found
Searching for /milligram.min.css
Transmit: 14666 Size: 14666
[E][WebServer.cpp:633] _handleRequest(): request handler not found
Searching for /css.css
Transmit: 2144 Size: 2144
[E][WebServer.cpp:633] _handleRequest(): request handler not found
Searching for /stub/stubUpdateCheck.as
[E][WebServer.cpp:633] _handleRequest(): request handler not found
Searching for /stub/stubUpdateCheck.as
File_Start
[E][vfs_api.cpp:135] remove(): /config.json.old does not exists or is directory
[E][vfs_api.cpp:96] rename(): /config.json does not exists
File_Write
File_END
[E][WebServer.cpp:633] _handleRequest(): request handler not found
Searching for /milligram.min.css
Transmit: 14666 Size: 14666
[E][WebServer.cpp:633] _handleRequest(): request handler not found
Searching for /css.css
Transmit: 2144 Size: 2144

RESET

ets Jun  8 2016 00:22:57

rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
flash read err, 1000
ets_main.c 371 
ets Jun  8 2016 00:22:57

rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0018,len:4
load:0x3fff001c,len:1044
load:0x40078000,len:10124
load:0x40080400,len:5828
entry 0x400806a8
-------------------------------------------------
[MEM] 243640 / Setup
Started!
Compiledate: Apr  1 2021 06:57:42 v1.2.9-6-g545f943
[MEM] 243152 / Controller
[MEM] 237676 / Wifi
Starting Wifi...
[MEM] 237656 / Webserver
[MEM] 234640 / Serial
[MEM] 234640 / Cfg
MEM 234112 / Cfg Read
MEM 233356 / Starting Parsing
MEM 232084 ap
SoftAP aktiviert. (max: 10)
AP-IP: 192.168.0.111
[WiFi-event] event: 14
WiFi access point started
[WiFi-event] event: 14
WiFi access point started
DoubleBootDetection: 0
Wifi status changed: Disconnected => Unknown (15) [unknown;15] IP:0.0.0.0
Connection to:  (Q:0)
MDNS start
MDNS start: 1
MEM 171028 simulateZ21
Starting Z21 Zentrale ...
MEM 168620 webservicewifiscanner
MEM 168444 webservicelog
MEM 168288 cmdlogger
MEM 168012 lpf2hub
Adding Settings pwm1
Einträge in Filter Sektion: 0
MEM 151120 locospeed
Register for locospeed
Einträge in Connector-Sektion: 0
MEM 150704 / Closing Parser
MEM 151864 / Cfg-End
[MEM] 152336 Post Config
[MEM] 152504 / Setup Finish

Setup finish!
Server begin

[WiFi-event] event: 16
Client connected
Client connected: b0-72-bf-d1-8d-ae
1 Clients connected
[WiFi-event] event: 18
Assigned IP address to client
[E][WebServer.cpp:633] _handleRequest(): request handler not found
Searching for /milligram.min.css
Transmit: 14666 Size: 14666
[E][WebServer.cpp:633] _handleRequest(): request handler not found
Searching for /css.css
Transmit: 2144 Size: 2144
[E][WebServer.cpp:633] _handleRequest(): request handler not found
Searching for /favicon.ico
[E][WebServer.cpp:633] _handleRequest(): request handler not found
Searching for /milligram.min.css
Transmit: 14666 Size: 14666
[E][WebServer.cpp:633] _handleRequest(): request handler not found
Searching for /css.css
Transmit: 2144 Size: 2144
[Z21] Ziel für send() nicht festgelegt.
[z21] Received: -1 1/128
[CNT] DCC-Speed: ID: 3001 S: 1 D: -1
Connector: 30011
[PIPE] Received (sd/0)
[PIPE] Forward (sd/0) to pwm1
SetSettings sd/0
SetSettings sd/0 but not connected!
[z21] Received: 1 1/128
[CNT] DCC-Speed: ID: 3001 S: 1 D: 1
Connector: 30011
[PIPE] Received (sd/0)
[PIPE] Forward (sd/0) to pwm1
SetSettings sd/0
SetSettings sd/0 but not connected!
[z21] Received: 1 3/128
[CNT] DCC-Speed: ID: 3001 S: 3 D: 1
Connector: 30013
....
Setup finish!
Server begin
[WiFi-event] event: 16
Client connected
Client connected: b0-72-bf-d1-8d-ae
1 Clients connected
Trying to connect to the Lego Hub
[WiFi-event] event: 18
Assigned IP address to client
Connected to Lego HUB
[Z21] Ziel für send() nicht festgelegt.
[z21] Received: 1 1/128
[z21] Received: 1 3/128
[CNT] DCC-Speed: ID: 3001 S: 3 D: 1
Connector: 30013
[PIPE] Received (sd/3)
[PIPE] Forward (sd/3) to pwm1
SetSettings sd/3
[z21] Received: 1 13/128
[CNT] DCC-Speed: ID: 3001 S: 13 D: 1
Connector: 300113
[PIPE] Received (sd/13)
[PIPE] Forward (sd/13) to pwm1
SetSettings sd/13
[z21] Received: 1 20/128
[CNT] DCC-Speed: ID: 3001 S: 20 D: 1
Connector: 300120
[PIPE] Received (sd/20)
[PIPE] Forward (sd/20) to pwm1
SetSettings sd/20
[z21] Received: 1 25/128
[CNT] DCC-Speed: ID: 3001 S: 25 D: 1
...
LG Zoltan

little.yoda
Site Admin
Beiträge: 745
Registriert: 14.09.2018, 19:05
Hat sich bedankt: 21 Mal
Danksagung erhalten: 109 Mal

Re: Lego Bluetooth Hub

Beitrag von little.yoda » 01.04.2021, 13:22

Hallo Zoltan,

super. Hätte nicht erwartet, dass es direkt ohne Probleme geht :-)


Zoltan hat geschrieben:
01.04.2021, 12:31
Es gibt eine neue (?) Version bei Mattzo (V0.4), ich weiß nicht, welche du getestet/heruntergeladen hast, ich habe nur mit V0.3 bisher getestet.
Tatsächlich nutze ich die Mattzo-Software nicht, sondern ich greife, genau wie die Mattzo-Software, auf andere Libaries zu, die für den eigentlichen Zugriff auf den Lego-Hub zuständig sind. Die Mattzo-Software ist, wie mein Framework auch, eigentlich nur ein Vermittler.

Library Manager: Legoino @ 1.1.0
Library Manager: NimBLE-Arduino @ 1.2.0

Zoltan hat geschrieben:
01.04.2021, 12:31
Und du könntest evtl. auch über den PU Licht nachdenken?
Ehrlich gesagt, verstehe ich hier den Sourecode bzw. die Hardware nicht.

- ich habe einmal eine Funktion gefunden, die direkt eine Farbe setzen kann: setLedColor(GREEN);
Gibt es eine RGB-LED an dem Teil? Wie würdest du dir eine Nutzung im DCC Umfeld vorstellen?

- dann wird aber in MTC4PU/setLights die "Helligkeit" über die Motorausgänge gesetzt.
Kannst du an den Motorausgängen auch LEDS anschließen?

Zoltan hat geschrieben:
01.04.2021, 12:31
Und universeller auch. Es kann ja überall integriert werden, auch in Rocrail, nehme ich an, mit MQTT Input im Config - das muss ich aber noch austüfteln.
Wenn du Rocrail passend für mqtt konfiguriert hast, sollte es reichen, wenn du den z21 Eintrag im Config-File gegen die folgende Zeile austauscht:

Code: Alles auswählen

        
        {
            "m":"rocnetovermqtt"
        },
Ingesamt ist Rocrail aber nur mäßig getestet.

Benutzeravatar
Zoltan
Beiträge: 488
Registriert: 18.09.2018, 11:34
Wohnort: Wien
Hat sich bedankt: 66 Mal
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: Lego Bluetooth Hub

Beitrag von Zoltan » 01.04.2021, 14:20

Das PU Licht verstehe ich auch nicht :)
Um 25 € kaufe ich es auch nicht, der Preis ist eine Frechheit.
Über Farben habe ich auch noch nie etwas gehört.

Das setLedColor ist nicht für IR im MTC4PF?

Die 6 Kontakte sind 2xPWM, GND, +3,3 V, und zwei als "ID1" und "ID2". Letztere entscheiden irgendwie mit 2,2 kOhm Widerstände zueinander oder zu GND ob es sich um Licht oder Motor handelt. Lichtintensität geht vielleicht über PWM... keine Ahnung. Ich bin auch nur aus Google "klug" geworden... ich google mal weiter und wenn ich etwas finde, schreibe ich es hier hinein.
LG Zoltan

little.yoda
Site Admin
Beiträge: 745
Registriert: 14.09.2018, 19:05
Hat sich bedankt: 21 Mal
Danksagung erhalten: 109 Mal

Re: Lego Bluetooth Hub

Beitrag von little.yoda » 01.04.2021, 20:48

Hi

ich verstehe den Sourccode von MTC4PU nicht so richtig. Daher keine Ahnung.

https://www.philohome.com/wedo2reverse/connect.htm

Code: Alles auswählen

ID1/ID2 pins have different function depending on the type of devices. For "dumb" ones (those that don't contain a controller), they are hard-wired to GND/VCC, either directly or through resistance, to provide an analog style identification. 

For devices containing a controller (sensors, motors with position encoder), ID1/ID2 are used as a serial link between the hub and the device. ID1 transmits data from hub to device, ID2 from device to hub. More details in Powered Up serial protocol.
Danach ist ID1 und ID2 entweder für die Identifikation des angeschlossenen Gerätes da oder für einen Datenbus. In keinen Fall kannst du an ID1 oder ID2 noch LEDs oder ähnliches anschließen.


Du brauchst also entweder das 9€ teure LED-Modul[*] oder du besorgst dir einen passenden Stecker und baust es selber.





[*] Wobei ich bislang noch nicht verstanden habe, ob und wie man die LEDs mit der Libarys anspricht.

Benutzeravatar
Zoltan
Beiträge: 488
Registriert: 18.09.2018, 11:34
Wohnort: Wien
Hat sich bedankt: 66 Mal
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: Lego Bluetooth Hub

Beitrag von Zoltan » 01.04.2021, 21:52

An ID1 und ID2 werden keine LEDs angeschlossen. Mit denen konfiguriert man irgendwie, ob LEDs (oder was anderes) am PWM hängen und "regulated", "full", "strong" oder "dimmed" sind, bzw. ob sie evtl. an den mittleren Kontakte hängen? Letzteres glaube ich zwar kaum, das ist wohl nur mein "Missbrauch". Ich weiss und verstehe es aber auch nicht. Ich kenne Legos Philosophie hier nicht... aber angeblich wird das erweitert noch irgendwie. Dann hat man eine Art Bus mit VCC, GND, TXD, RXD und noch 2 PWM / Power Leitungen dazu. Am Bus wird vielleicht kommuniziert, wer am anderen Ende hängt und demgemäss was er am PWM bekommt? Man müsste sich tiefer in die Lego Technik einlesen...

Wo hast du für 9€ LED Module gesehen? Ich fand nur gegen 25€ welche...

Stecker fand ich nirgends - und zum Bauen müsste ich es zuerst verstehen :)

little.yoda
Site Admin
Beiträge: 745
Registriert: 14.09.2018, 19:05
Hat sich bedankt: 21 Mal
Danksagung erhalten: 109 Mal

Re: Lego Bluetooth Hub

Beitrag von little.yoda » 01.04.2021, 22:09

Hier hatte ich LED für 10€ gesehen:
https://www.lego.com/de-de/product/light-88005

Aber ehrlich gesagt bin ich mir gerade nicht sicher, ob sie auch schaltbar sind.

----------------------------------------
Stecker habe ich hier gefunden:
https://s.click.aliexpress.com/e/_99hWLk


Für mich liest es sich relativ einfach:

LED Modus aktiviern:
ID1: 2,2 Kohm gegen GND
ID2: nicht verbunden

An PWM1 und PWM2 liegt dann 0V bis Batteriespannung an.

Benutzeravatar
Zoltan
Beiträge: 488
Registriert: 18.09.2018, 11:34
Wohnort: Wien
Hat sich bedankt: 66 Mal
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: Lego Bluetooth Hub

Beitrag von Zoltan » 01.04.2021, 22:27

Das Lichtzeug ist das selbe was ich bei Amazon für 25€ sah... so sieht es aber schon besser aus.

Ich glaube, man kann es schalten, mit der App bzw. mit dem PU Remote, + heller - dunkler bis aus (?)

Und danke für den Steckerlink!
LG Zoltan

Benutzeravatar
Zoltan
Beiträge: 488
Registriert: 18.09.2018, 11:34
Wohnort: Wien
Hat sich bedankt: 66 Mal
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: Lego Bluetooth Hub

Beitrag von Zoltan » 08.04.2021, 19:59

MTC4PU funktioniert leider nicht :(
Er konnektiert nicht zum WLAN.
Zum Hub konnektiert er gut, obwohl im die MAC Adresse des Hubs dafür im Source angeben muss.

Svens FW funktioniert tadellos: spannt WLAN auf, konnektiert den Hub (ohne dass ich mich um die MAC Adresse kümmern muss...) und per Z21 App kann ich dann die Lok steuern.

Nun habe ich folgende Frage: kann man gleichzeitig zwei Inputs definieren?
Also zum Z21 zusätzlich auch noch MQTT?
Dass er sowohl von der Z21 App als auch die von Rocrail kommende Message Broker Kommandos übernehmen und ausführen kann?

Wenn nicht, dann muss wohl die Konfig geändert und resettet werden.

Das hieße dann: nicht gleichzeitig, aber abwechselnd.

Wie müsste so eine Konfig für den ESP32 Bluetooth, wie ich es gerade geflasht drauf habe, aussehen? Irgendwie kam ich und mit dem Config Generator dafür nicht klar.

Lok hat im Rocrail die Adresse 3001 und wegen Mattzo zZ. 255 SpeedSteps (Fahrstufen) eingestellt.
LG Zoltan

Antworten