Robo TX Controller unter Linux ansteuern

Alles rund um TX(T) und RoboPro, mit ft-Hard- und Software
Computing using original ft hard- and software
Forumsregeln
Bitte beachte die Forumsregeln!
Antworten
lpa
Beiträge: 4
Registriert: 19 Dez 2013, 15:07

Robo TX Controller unter Linux ansteuern

Beitrag von lpa » 18 Jan 2014, 13:32

Hallo,

ich suche eine Möglichkeit, meine TX Controller unter Linux (Ubuntu) anzusteuern. USB reicht. Bluetooth wäre noch besser.
Liegt hier ein Treiber vor?

Ich habe RoboPro mit Wine erfolgreich ans Laufen gebracht, aber der Treiber funktioniert natürlich nicht.
Danke für Eure Hilfe!
Gruß, lpa

sven
Beiträge: 2750
Registriert: 18 Okt 2010, 18:13
Wohnort: Rahden
Kontaktdaten:

Re: Robo TX Controller unter Linux ansteuern

Beitrag von sven » 18 Jan 2014, 14:21

Hallo!

Linux wird von ft offiziell nicht unterstützt.

Defiant hier aus dem Forum hat aber mal eine Lib programmiert um das RoboIf von Linux programmieren zu können.
Mit dem TX geht das leider nicht, denn da müsste die Lib angepasst werden.
Da Defiant aber keinen TX hat konnte er das bisher nicht umsetzen.

Gruß
Sven
Dieses Posting gibt ganz allein meine persönliche Meinung wieder!

cvjb
Beiträge: 9
Registriert: 03 Jan 2014, 21:45

Re: Robo TX Controller unter Linux ansteuern

Beitrag von cvjb » 18 Jan 2014, 17:46

Hi zusammen,

Habe einmal für mich selbst zusammengeschrieben, wie ich via Bluetooth, Linux und Wine den Robo TX Controller mit der Fischertechnik Software verbinden kann. Sorry, ist auf Englisch, kann den Text aber auch gerne auf Deutsch erstellen.


Install the bluez bluetooth stack for Linux.

Note: A shell prompt of "#" means to execute the command as the root
user. "$" means to execute the commands as a normal user.

Get the ID aka "bdaddr" of the ROBO TX Controller with:

Code: Alles auswählen

# hcitool scan
The output should be similar to the following:
Scanning ...
00:12:34:56:78:9A ROBO TX-633
That should be the same number as can be seen under "Info"-->"Bluetooth"
on the ROBO TX Controller itself.

Edit the file /etc/bluetooth/rfcomm.conf to set the ID as the device
address for a rfcomm device. I am using the rfcomm0 as the device on the
Linux side, so my rfcomm.conf looks like the following:

Code: Alles auswählen

   #
   # RFCOMM configuration file.
   #

   rfcomm0 {
           # Automatically bind the device at startup
           bind no;

           # Bluetooth address of the device
           device 00:12:34:56:78:9A;

           # RFCOMM channel for the connection
           channel 1;

           # Description of the connection
           comment "Fischertechnik ROBO TX Controller";
   }
Then add the Bluetooth PIN to the local bluetooth device configuration
for the ID of the ROBO TX. In case the bluetooth device of the Linux
host is working correctly, there should be a directory under
/var/lib/bluetooth/ with its name being identical to the address of the
local bluetooth device, e.g.:

Code: Alles auswählen

/var/lib/bluetooth/98:76:54:32:10:FF/
If not present add, if present, extend a file named "pincodes" below
that directory to hold the PIN of the ROBO TX Controller. The files
should have an entry like the following:

Code: Alles auswählen

00:12:34:56:78:9A 1234
The part after the ID from the ROBO TX Controller is the PIN.

Now try to connect the rfcomm device with the ROBO TX Controller by
executing the following command:

Code: Alles auswählen

# rfcomm connect 0
In the example the rfcomm device will be /dev/rfcomm0.

The output should be something like:
Connected /dev/rfcomm0 to 00:13:7B:48:B5:EE on channel 1
Press CTRL-C for hangup
For the following, the connection should not be terminated as the
rfcomm device will not exist below "/dev/" if not connected.

Now add a symbolic link to the rfcomm device below ~/.wine/dosdevices
named e.g. "com1":

Code: Alles auswählen

$ ln -s /dev/rfcomm0 com1
Note: I had not to add a colon after "com1" for the name of the link on
my installation.

Check the permissions of the rfcomm device. The account using ROBOPro
via Wine should be able to read and write to the rfcomm device.
On my machine I have added that account to the "dialout" group and the
persmission of the rfcomm device are ug+rw (= 660):

Code: Alles auswählen

$ ls /dev/rfcomm0
crw-rw---- 1 root dialout 216, 0  4. Jan 00:30 /dev/rfcomm0
Start regedit with wine:

Code: Alles auswählen

$ wine regedit
And add a key for the com port below

Code: Alles auswählen

[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Enum]
The key path must be

Code: Alles auswählen

[...\Enum\COM1\COM1]
Under the last COM1 key add the following three text entries:

Code: Alles auswählen

   ClassGUID = {4D36E978-E325-11CE-BFC1-08002BE10318} 
   FriendlyName = Serial Port 1 (COM1)
   PortName = COM1
Now start ROBOPro with Wine and open the COM/USB settings dialog.
Select the "ROBO TX Controller" under "Interface" and select
"USB/Bluetooth" under "Port".
Clicking "OK" shoud open a new dialog named "Select USB device".
Select the "Bluetooth" option under "Connection type" and activate the
"Show all COM ports" option under "Bluetooth port:". You should now be
able to select "COM1". After selecting "COM1" close the dialog clicking
on "OK".
Do not forget to test the connection.

I was able to programm and update the firmware of the ROBO TX Controller
via Wine under Linux with the settings described above.


Evtl. hilft das weiter. Viel Erfolg.

Grüße,
Chris

Cymbaline
Beiträge: 66
Registriert: 01 Nov 2010, 07:28
Wohnort: Reuver, NL

Re: Robo TX Controller unter Linux ansteuern

Beitrag von Cymbaline » 20 Jan 2014, 20:50

Hallo Chris,

Ich habe deine Rezeptur verfolgt und mit rfcomm gelingt eine Verbindung zum TX.

rfcomm gibt zurück:
Connected /dev/rfcomm0 to 00:13:7B:52:D8:21 on channel 1
Press CTRL-C for hangup

Sieht also gut aus. Auch der TX gibt an daß da eine BT-verbindung besteht.

Ich sehe aber in RoboPro unter "interface"--> "USB/Bluetooth" keine Ports erscheinen (auch nicht mit "show all ports" an).

Habe ich noch irgend etwas falsch gemacht bzw. vergessen?
Ist der Registry-key universell?
(OpenSuse 12.3)

Grüße,
Wilbert.

cvjb
Beiträge: 9
Registriert: 03 Jan 2014, 21:45

Re: Robo TX Controller unter Linux ansteuern

Beitrag von cvjb » 21 Jan 2014, 18:39

Hallo Wilbert,
Cymbaline hat geschrieben: Ich sehe aber in RoboPro unter "interface"--> "USB/Bluetooth" keine Ports erscheinen (auch nicht mit "show all ports" an).

Habe ich noch irgend etwas falsch gemacht bzw. vergessen?
Ist der Registry-key universell?
(OpenSuse 12.3)
Der Key ist universell. Es lief bei mir auch unter OpenSuse 12.3 und aktuell unter 13.1. Wichtig ist die Korrekte GUID und das alle Einträge auch genau so geschrieben werden, wie sie da stehen.

Evtl. ist der Eintrag in der Registry doch nicht an der richtigen Stelle? Hier ein Screenshot des Regedit mit dem selektierten Eintrag:
Bild


Grüße,
Chris

Cymbaline
Beiträge: 66
Registriert: 01 Nov 2010, 07:28
Wohnort: Reuver, NL

Re: Robo TX Controller unter Linux ansteuern

Beitrag von Cymbaline » 21 Jan 2014, 19:28

Hallo Chris,

Danke für die Antwort.
Ich jetzt ein klein bißchen weiter...

In deine Rezeptur fehlte beim Registry-keypath den Eintrag "Serial".
Jetzt sehe beim Interfaceauswahl auch COM1.

Wenn ich allerdings ein Interfacetest versuche kommt nach eine Weile die Fehlermeldung: "Error by open com device".
Hast du vielleicht eine Ahnung was das sein kann?
(Der TX gibt immer noch an daß eine BT-verbindung da ist.)

Freundlichen Grüße,

Wilbert.
Het leven is hard. Een kokosnoot ook.

cvjb
Beiträge: 9
Registriert: 03 Jan 2014, 21:45

Re: Robo TX Controller unter Linux ansteuern

Beitrag von cvjb » 21 Jan 2014, 21:03

Hallo Wilbert,
Cymbaline hat geschrieben: In deine Rezeptur fehlte beim Registry-keypath den Eintrag "Serial".
Ohje, mein Fehler. Das ist ärgerlich und tut mir leid :oops:
Cymbaline hat geschrieben: Wenn ich allerdings ein Interfacetest versuche kommt nach eine Weile die Fehlermeldung: "Error by open com device".
Hast du vielleicht eine Ahnung was das sein kann?
(Der TX gibt immer noch an daß eine BT-verbindung da ist.)
Die Verbindung BT mit TX erfolgt mit dem root-User. Wine und damit auch RoboPro läuft aber - nehme ich mal an - unter einem anderen Account. Dieser andere Account muss ebenfalls Schreib- und Lese-Berechtigung auf das rfcomm-Device haben. Ist das der Fall?

Bei mir gehört dieser normale Benutzer u.a. zur Gruppe "dialout" und das rfcomm-Device erlaubt der Gruppe "dialout" das Lesen und Schreiben. Ob der Benutzer z.B. in dieser Gruppe ist, bekommt recht einfach durch den Befehl heraus. Entweder mit einem Benutzernamen als Argument oder einfach ohne. Bei letzterem Aufruf sieht man dann eben die Gruppen, zu denen der Benutzer, der den Befehl ausführt, selbst gehört.

Als erstes würde ich also die Berechtigungseinstellungen des rfcomm-Devices überprüfen und dann noch die Gruppenzugehörigkeit des Benutzers, der Wine dann aufruft.

Gruß,
Chris

Cymbaline
Beiträge: 66
Registriert: 01 Nov 2010, 07:28
Wohnort: Reuver, NL

Re: Robo TX Controller unter Linux ansteuern

Beitrag von Cymbaline » 22 Jan 2014, 18:30

Hallo Chris,

Ich denke da stimmt alles:

ls -l /dev/rfcomm0:

Code: Alles auswählen

crw-rw----  1 root    dialout 216,   0 22 jan 18:11 rfcomm0
id:

Code: Alles auswählen

wilbert@embryo:/dev> id
UID=1000(wilbert) GID=100(users) groepen=100(users),14(uucp),16(dialout),17(audio),20(cdrom),33(video),40(games),54(lock)
wilbert ist der User der auch ROBO Pro unter Wine startet.
Ich bekomme immer noch die Meldung "Error by open com device" wenn ich ein Interfacetest versuche...


Ich werde am Wochenende mal ins Internet suchen, mal sehen ob ich da vielleicht noch fündig werde...
Trotzdem danke für deine Mühe.

Grüße,

Wilbert.
Het leven is hard. Een kokosnoot ook.

cvjb
Beiträge: 9
Registriert: 03 Jan 2014, 21:45

Re: Robo TX Controller unter Linux ansteuern

Beitrag von cvjb » 23 Jan 2014, 18:44

Hallo Wilbert,
Cymbaline hat geschrieben: Ich denke da stimmt alles:
[...]
Ich bekomme immer noch die Meldung "Error by open com device" wenn ich ein Interfacetest versuche...
Ja, das sieht alles ok aus.

Ich habe bei mir einmal den Fehler gemacht, dass ich com2 statt com1 als Link auf rfcomm0 angelegt hatte, da ich zwei serielle Schnittstellen unter Linux benötige. Wenn Du aber nur eine Schnittstelle hast und dies z.B. "com1" heißt und COM1 auch in der Registry steht, dann sollte auch da alles stimmen.
Cymbaline hat geschrieben: Ich werde am Wochenende mal ins Internet suchen, mal sehen ob ich da vielleicht noch fündig werde...
Wenn Du eine Lösung gefunden hast, kannst Du diese bitte hier posten?

Viel Erfolg,
Chris

P.S. Falls Du mal auf openSUSE 13.1 updates: Seit meinem gestrigen Update von einer Vorversion von openSUSE 13.1 auf die offizielle 13.1 musste ich nun umlernen. Bluez 5.X "tickt" etwas anders als Bluez 4.X. Vor allem was das Pairing angeht.

Cymbaline
Beiträge: 66
Registriert: 01 Nov 2010, 07:28
Wohnort: Reuver, NL

Re: Robo TX Controller unter Linux ansteuern

Beitrag von Cymbaline » 23 Jan 2014, 19:15

Hallo,

Da fällt mir noch was ein...

Wine und USB geht nicht zusammen, habe ich mal irgendwo gelesen.
Mein laptop ist ein alter IBM T41 und meine Bluetooth-adapter ist ein kleiner USB-teil ...

Na ja, ich suche im Wochendende noch mal weiter... vielleicht hat sich da mittlerweile etwas getan.


Grüße,
Wibert.
Het leven is hard. Een kokosnoot ook.

cvjb
Beiträge: 9
Registriert: 03 Jan 2014, 21:45

Re: Robo TX Controller unter Linux ansteuern

Beitrag von cvjb » 23 Jan 2014, 20:51

Hallo Wilbert,
Cymbaline hat geschrieben: Wine und USB geht nicht zusammen, habe ich mal irgendwo gelesen.
Mein laptop ist ein alter IBM T41 und meine Bluetooth-adapter ist ein kleiner USB-teil ...
Daran kann es nicht liegen. Das Bluetooth-Geraet wird ja von Linux erkannt und kann dann auch eine Verbindung mit dem ROBO TX Controller herstellen. Pairing und Connect funktionieren, wie Du ja am ROBO TX Controller erkennen konntest.

Fuer Wine ist das Bluetooth-Geraet aber nicht als solches erkennbar und vor allem auch nicht als USB-Geraet. Fuer Wine und die Software ist es einfach nur eine serielle Schnittstelle. Das ist ja gerade der Grund fuer diesen Umweg ueber den Link auf rfcomm und die Registryeintraege, weil Wine den ROBO TX Controller nicht ueber USB fuer ROBO Pro zur Verfuegung stellen kann.

Bei Wine hat sich da nicht viel getan. Man kann Glueck haben und ein USB-Geraet wird erkannt oder auch nicht. Der ROBO TX Controller wird - bei mir - nicht via USB erkannt. Was gut geht sind meist Game-Controller.

Gruesse,
Chris

geripu
Beiträge: 1
Registriert: 02 Mai 2014, 18:18

Re: Robo TX Controller unter Linux ansteuern

Beitrag von geripu » 02 Mai 2014, 20:31

Hi,

many thanks for this description. It (finally) worked for me. Awesome! I'd like to contribute two remarks:

1. The Windows / Wine - registry path is SERIAL/COM1/COM1 as you can see in the screenshot. From the text I first assumed just COM1/COM1 which is not correct.

2. /dev/rfcomm0 by default had file permissions 0660 or ug+rw and was owned by user root, group dialout. As suggested above I added my ordinary user to the group dialout. However this did not work for me. Instead I changed the permissions of /dev/rfcomm0 to 0666 / a+rw and all was good.


To have it all together in one I created this little shell script to be run by the ordinary user to establish the bluetooth connection and start the ROBOPro software:
--- snip ---
sudo rfcomm connect 0 &
sleep 2 # wait for the dev file to pop up
sudo chmod a+rw /dev/rfcomm0
WINEPREFIX=$HOME/.wine/robopro wine C:\\Program\ Files\\ROBOPro\\ROBOPro.exe
kill %sudo
--- snap ---

for this to work automatically without being asked for a password you need those two lines in the file /etc/sudoers. In Debian or Ubuntu you'd rather create a file /etc/sudoers.d/rfcomm0 with permissions 0440 with those lines (riko is the ordinary user to start ROBOPro) :
--- snip ---
riko ALL = NOPASSWD:/usr/bin/rfcomm
riko ALL = NOPASSWD:/bin/chmod a+rw /dev/rfcomm0
--- snap ---

Kind regards,
Gero.

cvjb
Beiträge: 9
Registriert: 03 Jan 2014, 21:45

Re: Robo TX Controller unter Linux ansteuern

Beitrag von cvjb » 04 Mai 2014, 17:55

Hello,

Great to hear it works now :D

But I have also some good news: On my system ROBO Pro recognizes the ROBO TX controller connected via a USB cable with the Linux box at last :D

See the description here: http://cvjb.de/2014/05/04/robopro-and-f ... 13-1-wine/.

In short: I have updated the system and the wine packages from the offical repositories of the distro and thought: Let me try it again... and well, it worked :lol:

The interface test from the ROBO Pro was successfull for the M1 and M2 ports; later I will try to transfer a program to the ROBO TX. Hopefully it will work, too.

Have a nice day,

Chris

janu75
Beiträge: 1
Registriert: 26 Mai 2014, 15:24

Re: Robo TX Controller unter Linux ansteuern

Beitrag von janu75 » 26 Mai 2014, 15:34

Hi

Using the description above, I also got it running on Mac with Wine (using the Wineskin App).

USB seems to work (linking the Mac USB device to dosdevices com3, as described in the link in the post above), I managed to successfully download a small test program to RoboTx.

On Bluetooth, I get a short connection, which then seems to get interrupted somehow (Connection is green in Robo Pro Test window, then goes to red). Downloading programs also does not work with Bluetooth... (When using a terminal program, I can easily connect to the Robo Pro device on both Bluetooth and USB though, the connection from Mac to RoboTx seems to be stable)

Thanks for the detailed descriptions!

cvjb
Beiträge: 9
Registriert: 03 Jan 2014, 21:45

Re: Robo TX Controller unter Linux ansteuern

Beitrag von cvjb » 26 Mai 2014, 20:54

Hi,
janu75 hat geschrieben: Using the description above, I also got it running on Mac with Wine (using the Wineskin App).
[...]
Thanks for the detailed descriptions!
Great to hear, that I works for you :)

Have a nice day,
Chris

Benutzeravatar
pfuetz
Beiträge: 19
Registriert: 11 Feb 2014, 13:02

Robo TX Controller unter Linux: Belohnung für Wine integrati

Beitrag von pfuetz » 27 Mai 2014, 09:18

Hallo liebe Linux- und Fischertechnik-Fans,

vielleicht sollten wir eine Belohnung für die erfolgreiche Integration von BT+Com in Wine aussetzen.
Ich würde mich mit 15€ für die com-Port und 15€ für BT Integration in Wine beteiligen!
Dann hätte ich zurzeit keinen Grund mehr Windows zu benutzen (die zeitraubenden/uneinheitlichen Updates und der Virenscanner unter Windows nerven)!

Gruß

Michael
Zuletzt geändert von pfuetz am 27 Mai 2014, 13:23, insgesamt 1-mal geändert.

Benutzeravatar
steffalk
ft:pedia-Herausgeber
Beiträge: 1794
Registriert: 01 Nov 2010, 16:41
Wohnort: Karlsruhe
Kontaktdaten:

Re: Robo TX Controller unter Linux ansteuern

Beitrag von steffalk » 27 Mai 2014, 11:06

(Sorry für's OT): "die zeitraubenden/uneinheitlichen Updates und der Virenscanner nerven" => Lass den Virenscanner weg.
Gruß,
Stefan

Benutzeravatar
pfuetz
Beiträge: 19
Registriert: 11 Feb 2014, 13:02

Re: Robo TX Controller unter Linux ansteuern

Beitrag von pfuetz » 27 Mai 2014, 13:26

steffalk hat geschrieben:(Sorry für's OT): "die zeitraubenden/uneinheitlichen Updates und der Virenscanner nerven" => Lass den Virenscanner weg.
Gruß,
Stefan
OT: Jow und die Firewall auch ;)

Benutzeravatar
steffalk
ft:pedia-Herausgeber
Beiträge: 1794
Registriert: 01 Nov 2010, 16:41
Wohnort: Karlsruhe
Kontaktdaten:

Re: Robo TX Controller unter Linux ansteuern

Beitrag von steffalk » 27 Mai 2014, 14:39

Nee, die nicht. Patches aktuell, nicht als Admin rumwurschteln, OS-Features nutzen, nicht auf alles klicken, was im Internet blinkt, und evtl. noch den Browser runterkonfigurieren. That's it. Sollten wir aber woanders besprechen als hier.
Gruß, Stefan

Benutzeravatar
pfuetz
Beiträge: 19
Registriert: 11 Feb 2014, 13:02

Re: Robo TX Controller unter Linux ansteuern

Beitrag von pfuetz » 27 Mai 2014, 22:11

Hatte heute etwas Zeit,

über den Com-Port/USB funktioniert es jetzt, allerdings stürzt die ROBOPro-Software nach dem abziehen des USB-Kabels und erneuten verbinden ab (anstecken, abwarten bis /dev/ttyACM0 verbunden, Verbindung herstellen) ... :?
Nach Neustart der Software geht es wieder.

BT habe ich noch nicht getestet.

CU

Micha

Antworten