Community-Firmware für den TXT

Community-Firmware (cfw), Selbstbaucontroller (TX-Pi, ftduino, usw.), usw.
Forumsregeln
Bitte beachte die Forumsregeln!
Benutzeravatar
DerInder
Beiträge: 19
Registriert: 09 Dez 2010, 15:12

Re: Community-Firmware für den TXT

Beitrag von DerInder » 28 Okt 2016, 15:31

Moin,

könnte man durchaus machen, aber villeicht bin ich ja nur ein Sonderfall, so das der Aufwand nicht lohnt :oops:
Viele Grüße

-=jens=-
aka
DerInder

Benutzeravatar
MasterOfGizmo
Beiträge: 2720
Registriert: 30 Nov 2014, 07:44

Re: Community-Firmware für den TXT

Beitrag von MasterOfGizmo » 28 Okt 2016, 15:37

DerInder hat geschrieben: könnte man durchaus machen, aber villeicht bin ich ja nur ein Sonderfall, so das der Aufwand nicht lohnt :oops:
Nee, genau dafür haben die Kolegen das ja eingebaut. Nur sollte das dann imho halbwegs selbsterklärend ablaufen. Du hast ja durchaus recht, wenn Dir nicht klar ist, warum diese Frage kommt. Sie soll verhindern, dass irgendjemand fremdes Deinen TXT via Internet kapert solange kein Passwort gesetzt ist. Wenn Du ein Paswort gesetzt hast kann sich niemand fremdes mehr einloggen, also braucht man diese Abfrage auch nicht mehr.
Arduino für fischertechnik: ftDuino http://ftduino.de, ftDuino32 http://ftduino.de/32

Benutzeravatar
DerInder
Beiträge: 19
Registriert: 09 Dez 2010, 15:12

Re: Community-Firmware für den TXT

Beitrag von DerInder » 28 Okt 2016, 15:42

Moin

OK, dann wäre ein kleiner Infotext schon sinnvoll.
Man kann soetwas zwar auch in ne Doku packen, aber ich lese die meist erst wenn ich ganichtmehr weiterkomme ;)
Viele Grüße

-=jens=-
aka
DerInder

richard.kunze
Administrator
Beiträge: 583
Registriert: 26 Dez 2015, 23:49
Wohnort: Rhein-Main-Gebiet

Re: Community-Firmware für den TXT

Beitrag von richard.kunze » 28 Okt 2016, 23:50

MasterOfGizmo hat geschrieben:Wie waere es wenn man noch 'never ask again' auswaehlen koennte?

Keine gute Idee. Das wäre der große rote Scheunentor-Aufmach-Knopf...
MasterOfGizmo hat geschrieben:Oder einen kleineren Text unten drunter wie 'set a user password to get rid of this request'?
Könnte man als kurzfristigen Workaround machen. Fragt sich nur, ob man das in intuitiv verständlich auf dem zur Verfügung stehenden Platz auf dem TXT-Display unterbekommt.
MasterOfGizmo hat geschrieben:Edit: Das passiert immer beim Login und wenn der FTC-User sudo benutzen will?
Genauer: Das passiert beim SSH-Login und beim Aufruf von sudo (jeweils egal durch wen), wenn der entsprechende Benutzer (bei SSH der, der sich einloggt, bei sudo derjenige, der es aufruft) kein Passwort gesetzt hat.
MasterOfGizmo hat geschrieben:Könnte man dann nicht jeweils auf der Console den Text 'Please acknowledge this operation on your TXTs touchscreen for security reasons. You can set a user password to get rid of this request.' einblenden.
Prinzipiell ja (und das wäre auch die schönste Lösung).

Allerdings leider nicht mit der aktuellen, schnell dahingefrickelten Umsetzung über "pam_exec", weil "pam_exec" leider keine Möglichkeit bietet ein Prompt über die aufrufende Applikation auszugeben. Dazu müsste man ein eigenes PAM-Modul schreiben. Das ist zwar auch kein Hexenwerk, aber halt doch etwas aufwendiger als aktuell die zwei PAM-Konfigurationsfiles und ein kleines Python-Scriptchen...

Benutzeravatar
MasterOfGizmo
Beiträge: 2720
Registriert: 30 Nov 2014, 07:44

Re: Community-Firmware für den TXT

Beitrag von MasterOfGizmo » 29 Okt 2016, 19:39

richard.kunze hat geschrieben: Könnte man als kurzfristigen Workaround machen. Fragt sich nur, ob man das in intuitiv verständlich auf dem zur Verfügung stehenden Platz auf dem TXT-Display unterbekommt.
Ich baue Euch mal was, dass ihr da kleinere Schrift für nutzen könnt. Aber irgendwas sollten wir machen, da das wirklich nicht intuitiv ist.
Arduino für fischertechnik: ftDuino http://ftduino.de, ftDuino32 http://ftduino.de/32

Andy42
Beiträge: 20
Registriert: 05 Apr 2014, 18:42

Re: Community-Firmware für den TXT; IO direkt ansprechen

Beitrag von Andy42 » 29 Okt 2016, 23:14

Hallo,

kann jemand einen Hinweis geben, wie man die Ein- und Ausgänge des TXT direkt ansprechen/abfragen kann?

Andy42


Info dazu:

1) es gibt offenbar folgende IO-Kanäle, diese werden beim Start des controllers (Original ft) automatisch erzeugt:

# ls /sys/class/gpio -latr
total 0
--w------- 1 root root 4096 Jan 1 01:15 unexport
lrwxrwxrwx 1 root root 0 Jan 1 01:15 gpiochip96 -> ../../devices/ocp/481ae000.gpio/gpio/gpiochip96
lrwxrwxrwx 1 root root 0 Jan 1 01:15 gpiochip64 -> ../../devices/ocp/481ac000.gpio/gpio/gpiochip64
lrwxrwxrwx 1 root root 0 Jan 1 01:15 gpiochip506 -> e0b000.i2c/i2c-0/0-002d/tps65910-gpio/gpio/gpiochip506
lrwxrwxrwx 1 root root 0 Jan 1 01:15 gpiochip32 -> ../../devices/ocp/4804c000.gpio/gpio/gpiochip32
lrwxrwxrwx 1 root root 0 Jan 1 01:15 gpiochip0 -> ../../devices/ocp/44e07000.gpio/gpio/gpiochip0
--w------- 1 root root 4096 Jan 1 01:15 export
drwxr-xr-x 43 root root 0 Jan 1 01:15 ..
drwxr-xr-x 2 root root 0 Jan 1 01:15 .

2) Daten der Kanäle kann ausgelesen werden wie folgt:

# for f in `ls -d /sys/class/gpio/gpiochip*`; do echo $f `cat $f/label $f/base $f/ngpio` ; done

/sys/class/gpio/gpiochip0 gpio 0 32
/sys/class/gpio/gpiochip32 gpio 32 32
/sys/class/gpio/gpiochip506 tps65910 506 6
/sys/class/gpio/gpiochip64 gpio 64 32
/sys/class/gpio/gpiochip96 gpio 96 32

Das bedeutet offenbar:

gpiochip0 heißt gpio und hat Kanäle 0... 31 (32 Stück)
gpiochip32 heißt gpio und hat Kanäle 32... 63 (32 Stück)
gpiochip64 heißt gpio und hat Kanäle 64... 95 (32 Stück)
gpiochip96 heißt gpio und hat Kanäle 96...127 (32 Stück)
gpiochip506 heißt tps65910 und hat Kanäle 506...511 ( 6 Stück, I2C Bus?)

3) Z.B im Verzeichnis /sys/class/gpio/gpiochip0 müßte es die Dateien 'Direction' und 'Value' geben, die die bisherige Definition angeben. Angezeigt werden diese jedoch nicht.

Benutzeravatar
MasterOfGizmo
Beiträge: 2720
Registriert: 30 Nov 2014, 07:44

Re: Community-Firmware für den TXT

Beitrag von MasterOfGizmo » 30 Okt 2016, 07:53

Das sind die gpios der Sitara-Cpu im TXT. Die Ft-Anschluesse werden aber von einer zweiten CPU betrieben und sind daher nicht als gpios direkt vom Linux aus ansprechbar. Man kommt nicht herum, per seriellen device mit der zweiten CPU zu sprechen und der entsprechende Befehle zu erteilen. Genau diese Info wie die Kommunikation dort abläuft fehlt uns aber noch.
Arduino für fischertechnik: ftDuino http://ftduino.de, ftDuino32 http://ftduino.de/32

Benutzeravatar
MasterOfGizmo
Beiträge: 2720
Registriert: 30 Nov 2014, 07:44

Re: Community-Firmware für den TXT

Beitrag von MasterOfGizmo » 31 Okt 2016, 09:41

richard.kunze hat geschrieben: Könnte man als kurzfristigen Workaround machen. Fragt sich nur, ob man das in intuitiv verständlich auf dem zur Verfügung stehenden Platz auf dem TXT-Display unterbekommt.
Der Launcher versteht nun ein paar Escape-Sequenzen in dem String des Confirmation-Dialog. Zum einen kann man "\n" verwenden, um eine neue Zeile zu beginnen. Und wenn am Anfang einer Zeile "\s" steht wird sie "small" gezeichnet und wenn dort "\t" steht wird sie "tiny" gezeichnet.

So nutzt man das dann:

Code: Alles auswählen

echo "confirm Bitte bestaetigen\n\sKleiner Zusatz\n\tDies ist sehr klein und bricht um, weil es recht lang ist" | nc txt 9000
Bild
Arduino für fischertechnik: ftDuino http://ftduino.de, ftDuino32 http://ftduino.de/32

chehr
Beiträge: 193
Registriert: 07 Apr 2015, 21:07
Wohnort: Friedrichshafen

Re: Community-Firmware für den TXT

Beitrag von chehr » 02 Nov 2016, 22:25

richard.kunze hat geschrieben: Sobald ich damit fertig bin werde ich aber mal versuchen, die Motorplatine direkt (also ohne den aktuellen verwendeten Umweg über die Binaries aus der originalen Firmware) anzusteuern. Falls mir niemand anders dabei zuvorkommt 8-)
Wenn das jemand hinbekommt, dann Hut ab...
Ist der Programmcode vom ARM Cortex M3 welcher vermutlich die beiden MC33879 mit den H-Brücken ansteuert überhaupt zugänglich oder muß man da ein EPROM o.ä. ändern?

richard.kunze
Administrator
Beiträge: 583
Registriert: 26 Dez 2015, 23:49
Wohnort: Rhein-Main-Gebiet

Re: Community-Firmware für den TXT

Beitrag von richard.kunze » 04 Nov 2016, 07:36

chehr hat geschrieben:
richard.kunze hat geschrieben: Sobald ich damit fertig bin werde ich aber mal versuchen, die Motorplatine direkt (also ohne den aktuellen verwendeten Umweg über die Binaries aus der originalen Firmware) anzusteuern. Falls mir niemand anders dabei zuvorkommt 8-)
Wenn das jemand hinbekommt, dann Hut ab...
Vielleicht hab ich mich da missverständlich ausgedrückt: Mit "Motorplatine direkt ansteuern" war gemeint, ftrobopy (oder eigene C-Programme) direkt mit der (Original-)Firmware auf der Motorplatine "reden" zu lassen (über die interne serielle Schnittstelle, über die die beiden "Hälften" des TXT kommunizieren) statt wie bisher den Umweg über "TxtMainControl" aus der originalen Linux-Firmware zu nehmen. Nicht die Firmware der Motorplatine zu ändern (das könnte irgendwann auch mal kommen - aber definitiv später. Viel später).

Und die Binaries aus der Original-Linux-Firmware da rauszubekommen ist nicht so arg schwer. Dazu muss man lediglich das Protokoll auf der seriellen Schnittstelle verstehen und eine Open-Source-Implementierung davon schreiben. Und ich (sowie ein paar andere hier) haben dafür von Fischertechnik sogar die "ultimative Dokumentation" (will sagen: Den Quellcode der das implementiert), damit ist das dann noch um einiges einfacher.
chehr hat geschrieben:Ist der Programmcode vom ARM Cortex M3 welcher vermutlich die beiden MC33879 mit den H-Brücken ansteuert überhaupt zugänglich oder muß man da ein EPROM o.ä. ändern?
Kommt drauf an, was genau Du mit "zugänglich" meinst - die Möglichkeit die Firmware zu ändern oder den Zugang zum Quellcode. Die Firmware flashen geht von der Linux-Seite aus per Software (das hat unter anderem das letzte RoboPro-Update auch gemacht), dazu muss man nicht an der Hardware basteln. Und die Quellen sind zwar nicht öffentlich zugänglich, aber ich und ein paar andere hier haben sie von Fischertechnik bekommen.

Benutzeravatar
ski7777
Beiträge: 870
Registriert: 22 Feb 2014, 14:18
Wohnort: Saarwellingen

Re: Community-Firmware für den TXT

Beitrag von ski7777 » 04 Nov 2016, 12:31

Das Joystickzeugs ist cool.
Dann können wir jetzt aus dem TXT einen fullflight Simulator bauen ;)

Raphael

Andy42
Beiträge: 20
Registriert: 05 Apr 2014, 18:42

Re: Community-Firmware für den TXT, Verbindung über USB

Beitrag von Andy42 » 05 Nov 2016, 13:06

Ich habe nach einiger Zeit tatsächlich einen neuen link gefunden, um eine Kommunikation über USB mit ftc-TXT zu ermöglichen:

http://www.java-online.ch/lego/index.ph ... ws.inc.php

Dieses klappte unter Verwendung der Treiber-Version Win7 zusammen mit WinXP. Über einen web browser kann man nun auf den TXT zugreifen. Ein Zugang über ssh (PuTTY oder Cyberduck) klappte allerdings nicht. Aber immerhin.

Benutzeravatar
ski7777
Beiträge: 870
Registriert: 22 Feb 2014, 14:18
Wohnort: Saarwellingen

Re: Community-Firmware für den TXT, Verbindung über USB

Beitrag von ski7777 » 05 Nov 2016, 14:43

Andy42 hat geschrieben:Ich habe nach einiger Zeit tatsächlich einen neuen link gefunden, um eine Kommunikation über USB mit ftc-TXT zu ermöglichen:

http://www.java-online.ch/lego/index.ph ... ws.inc.php

Dieses klappte unter Verwendung der Treiber-Version Win7 zusammen mit WinXP. Über einen web browser kann man nun auf den TXT zugreifen. Ein Zugang über ssh (PuTTY oder Cyberduck) klappte allerdings nicht. Aber immerhin.
Das werde ich heute abend mal testen. Wenn der Webbrowser geht, dann geht auch der Rest. Mal sehen, wo der Fehler liegt.

Raphael

Torsten
Beiträge: 310
Registriert: 29 Jun 2015, 23:08
Wohnort: Gernsheim (Rhein-Main-Region)

Re: Community-Firmware für den TXT

Beitrag von Torsten » 05 Nov 2016, 20:24

Hallo Richard,
richard.kunze hat geschrieben: Sobald ich damit fertig bin werde ich aber mal versuchen, die Motorplatine direkt (also ohne den aktuellen verwendeten Umweg über die Binaries aus der originalen Firmware) anzusteuern. Falls mir niemand anders dabei zuvorkommt 8-)
die nächste ftrobopy Version wird einen "direct"-Modus haben, der die Motorplatine direkt über den internen seriellen Port des TXT ansteuert, ohne den Umweg über die TxtMainControl und die Sockets. Eine reine Python-Lösung habe ich allerdings nicht hinbekommen. Ich musste eine kleine Hilfslibrary in "C" schreiben, die mit "import ftrobopydirect" eingebunden wird und dann die Kommunikation mit der Motorplatine übernimmt. Abhängigkeiten von irgendwelchen Libraries der ft-Originalfirmware gibt es aber nicht mehr.

Ich werde eine (experimentelle) Version in den nächsten Tagen auf github hochladen, damit ihr sie mit der ftc-firmware testen könnt. I2C, Camera und Sound sind noch nicht verfügbar, Motoren, Lampen und Taster funktionieren aber schon.

Viele Grüße
Torsten

Benutzeravatar
MasterOfGizmo
Beiträge: 2720
Registriert: 30 Nov 2014, 07:44

Re: Community-Firmware für den TXT

Beitrag von MasterOfGizmo » 06 Nov 2016, 11:35

Torsten hat geschrieben: die nächste ftrobopy Version wird einen "direct"-Modus haben, der die Motorplatine direkt über den internen seriellen Port des TXT ansteuert
Das klingt wirklich sehr gut!

Dann fehlt uns eigentlich nur noch der RoboPro-Interpreter ... aber ich befürchte, dass wir da kaum rankommen werden ...
Torsten hat geschrieben: I2C, Camera und Sound sind noch nicht verfügbar
Gehört das wirklich in ftrobopy? Für das alles gibt es ja bereits Standard-Python-Bindings. Und nichts davon läuft über den Motorcontroller. Selbst für den Sound ist der Moiorcontroller ja nicht mehr als ein DA-Wamdler und die Kommunikation läuft über einen separaten SPI-Kanal. In Kamera und I2C ist der Motorcontroller gar nicht involviert. Die Signale laufen zwar teilweise über die Motorplatine, kommen aber nicht beim Motorcontroller an.

Auf lange Sicht fände ich eine Schicht oberhalb ftrobopy prima, die sämtliche FT-Spezifika wegabstrahiert und Hersteller-spezifische Dinge verbirgt. Dieser Layer würde dann auch Lego-WeDo, FT-RoboLT und I2C-Sensoren einbinden. Das würde die Programme leicht zwischen Modellen mit unterschiedlicher Hardware austauschbar machen und Programme, die für den TXT geschrieben sind würden auch auf einem R-Pi mit angeschlossenem RoboLT laufen. Aber selbst da würde ich Kameras und Sound rauslassen. Dafür gibt es ausgezeichnete APIs und Python-Bindungs. Das kann man nur schlechter machen :-)
Arduino für fischertechnik: ftDuino http://ftduino.de, ftDuino32 http://ftduino.de/32

Benutzeravatar
Peterholland
Beiträge: 324
Registriert: 01 Nov 2010, 22:28
Wohnort: Poederoyen NL

Re: Community-Firmware für den TXT

Beitrag von Peterholland » 06 Nov 2016, 17:53

Hallo,

Ich habe heute ohne Problemen angefangen die Cube-Solver zu bauen.
Elektro anschusse fehlen jetzt noch + ich muss noch eine 4 GB SD-Karte kaufen.

Hat jemand die Cube-Solver auch schon nach gebaut und in Betrieb ?

Gruss,

Peter Poederoyen NL
Peter Poederoyen NL

Hompi
Beiträge: 40
Registriert: 01 Nov 2014, 22:23

Re: Community-Firmware für den TXT

Beitrag von Hompi » 08 Nov 2016, 22:53

Hallo zusammen,
hallo Peter,

ich habe das Modell(Cube-Solver) komplett nachgebaut und die ersten Versuche vorgenommen. Dank der guten Beschreibung und Bilder war der Nachbau auch kein Problem. Vielen Dank nochmals für diese Informationen. Ich habe allerdings ein Problem. Der Einscannvorgang bricht nach 4-5 Würfelseiten ab. Es erscheint dann folgende Fehlermeldung:

No valid cube found

Beim Kalibrieren werden die Farben aber alle korrekt erkannt. Ich setzen auch einen Würfel mit weißen Hintergrund ein.
Hat jemand eine Idee wo der Fehler liegen könnte?

Gruss Jürgen

Benutzeravatar
MasterOfGizmo
Beiträge: 2720
Registriert: 30 Nov 2014, 07:44

Re: Community-Firmware für den TXT

Beitrag von MasterOfGizmo » 09 Nov 2016, 08:13

Er scannt immer alle 6 Seiten bevor er schaut, ob der Wuerfel gueltig ist. Du siehst die debug-Ausgaben? Da muesste auch stehen, was erkannt hat. Daraus kann ich ablesen, was deon problem ist.

Das Problem koennte sein, dass die Farben Deines Wuerfels wohl anders sind als die von meinem. Aber das kann man einstellen. Aber erstmal hilft mir deine komplette Ausgabe auf der Console.
Arduino für fischertechnik: ftDuino http://ftduino.de, ftDuino32 http://ftduino.de/32

Benutzeravatar
ski7777
Beiträge: 870
Registriert: 22 Feb 2014, 14:18
Wohnort: Saarwellingen

Re: Community-Firmware für den TXT

Beitrag von ski7777 » 09 Nov 2016, 08:56

Da kommt mir noch eine allgemeine Idee. Für den DAU ist es knifflig die Debug ausgaben zu sehen. Wir könnten vielleicht die Ausgaben in einer Datei speichern und diese dann per Webinterface abrufen. Mein nächstes Stichwort wäre Telemetrie, aber dazu wann anders.

Raphael

Benutzeravatar
MasterOfGizmo
Beiträge: 2720
Registriert: 30 Nov 2014, 07:44

Re: Community-Firmware für den TXT

Beitrag von MasterOfGizmo » 09 Nov 2016, 11:21

Hompi hat geschrieben: Hat jemand eine Idee wo der Fehler liegen könnte?
Das Programm gibt (wie die meisten anderen auch) Debug-Informationen auf der Konsole aus. Das ist ganz knapp auch im Wiki beschrieben unter:

https://github.com/ftCommunity/ftcommun ... ps-via-ssh

Schritt für Schritt:
  • Am TXT per SSH als user ftc einloggen (das ist hier beschrieben https://github.com/ftCommunity/ftcommun ... ord-policy)
  • Dann export PYTHONPATH=/opt/ftc eingeben, damit die cube-App weiss wo sie ein paar Hilfsdateien findet
  • Dann /opt/ftc/apps/user/be743ea4-187b-43d8-8f7b-1779fa589bec/cube.py eingeben. Das Cube-Prigramm startet dann auf dem TXT als hättest Du auf das Icon geklickt
  • Via SSH sieht man nun auf dem PC die Debug-Ausgaben des Cube-Programmes
Da solltest Du ein paar Zusatzinfos bekommen, was passiert. Ggf. müssen wir für Deinen Würfel die Farbgrenzen etwas anpassen, damit der Solver weiss, welche Farbwerte er erkennen soll wenn die farbigen Aufkleber auf Deinen Cube eine andere Farbe haben aus auf meinem.
Arduino für fischertechnik: ftDuino http://ftduino.de, ftDuino32 http://ftduino.de/32

Antworten