×

INDI Library v2.0.6 is Released (02 Feb 2024)

Bi-monthly release with minor bug fixes and improvements

Connecting indi via Bluetooth to a computer

  • Posts: 152
  • Thank you received: 28
Hi Kaczorek, thanks for your response.

So i received by bluetooth dongle, it seems as though it binds to my computer after i do
sudo rfcomm bind hci0 XX:XX:XX:XX:XX

But when i try connecting in the eqmod Main Control i get this

2017-04-11T09:07:57: Failed to connect to port (/dev/rfcomm0). Error: Port failure Error: No route to host. Check if device is connected to this port.
2017-04-11T09:07:57: Communication with /dev/rfcomm0 @ 9600 failed. Starting Auto Search...
2017-04-11T09:07:57: Failed to connect to port (/dev/rfcomm0). Error: Port failure Error: No route to host. Check if device is connected to this port.
2017-04-11T09:04:33: Scan complete. Found 1 port(s).

See attachments.

Any suggestions?????
6 years 11 months ago #16099

Please Log in or Create an account to join the conversation.

  • Posts: 4
  • Thank you received: 0
From my usage, the Shoestring Astronomy BT2EQ6 adapter really works quite well.
It was a little hairy getting the virtual serial port configured on the RPi (and I'm still not sure what I did to get it to work), but after that it functioned as expected!
6 years 11 months ago #16108

Please Log in or Create an account to join the conversation.

  • Posts: 983
  • Thank you received: 375
There are two things.
First, you need to connect to the device not only bind. Just use sudo rfcomm connect hci0 XX:XX:XX:XX:XX to accomplish this. Before you do that you need to pair the devices of course.
Second, make sure you have write access rights to the device /dev/rfcomm0 from a user you run indiserver. Just run ls -al /dev/rfcomm0 and check it out. If not add your user to a bluetooth (?) group with usermod -a -G
And the last but not least, let us know how it goes ;-)
6 years 11 months ago #16115

Please Log in or Create an account to join the conversation.

  • Posts: 152
  • Thank you received: 28
hi Kaczorek,

So i did as you suggested, see procedure

petar@petar:~$ ls -al /dev/rfcomm0
ls: cannot access '/dev/rfcomm0': No such file or directory
petar@petar:~$ sudo usermod -a -G dialout petar
[sudo] password for petar:
petar@petar:~$ ls -al /dev/rfcomm0
ls: cannot access '/dev/rfcomm0': No such file or directory
petar@petar:~$ ls -al /dev/rfcomm0
ls: cannot access '/dev/rfcomm0': No such file or directory
petar@petar:~$ sudo rfcomm bind hci0 9C:2A:70:82:D3:55
petar@petar:~$ ls -al /dev/rfcomm0
crw-rw---- 1 root dialout 216, 0 Apr 12 15:58 /dev/rfcomm0
petar@petar:~$

1. Then i checked to see if the Shoestring bluetooth dongle was connected, see image1.png
2. In the INDI Control Panel -> eqmod -> Connection, all the connections are green (so i assume everything is ok) see image2.png
3. In the INDI Control Panel -> eqmod -> Main Control, when i press connect, it does not connect (the button is RED) see image 3.png

Any suggestions???
6 years 11 months ago #16117

Please Log in or Create an account to join the conversation.

  • Posts: 152
  • Thank you received: 28
Hi Kaczorek

So i finally solved it.

To get it to work i had to do the following:

1. sudo rfcomm bind hci0 XX:XX:XX:XX:XX && sudo chown $user:$user /dev/rfcomm0
2. then using blueman i have to manually connect to the serial port (the bluetooth dongle)

Is there any linux way to do the above, so location where this can be placed on the system so i don't have to do it each time i start up?? Maybe i can just write a bash script and execute it before a session so my bluetooth isn't always on?? Any suggestions.

regards
Last edit: 6 years 11 months ago by Petar Milevski.
6 years 11 months ago #16126

Please Log in or Create an account to join the conversation.

This is still way too tough for a regular user to figure out. There must be a way to make this easier for new users. If there is not, then we must do something about it. I'll be getting my bluetooth adaptor soon, so I'll try to figure out a solution.
6 years 11 months ago #16135

Please Log in or Create an account to join the conversation.

  • Posts: 983
  • Thank you received: 375
I'm glad you got it solved! As the matter of fact you can do all of these from GUI by clicking bluetooth icon on your taskbar, selecting bluetooth dongle, pairing devices and connecting the dongle. All of these will expose bluetooth serial port to a user - ready to use by INDI serial connection.
What was discussed with petarm is a generic approach for people keen on terminal and cli. Depending on linux distribution it might be the only approach available to a user. However in majority of cases GUI approach will work out of the box.

BTW. my experience is that in some cases neither of the approaches is sufficient and you need to use bluetoothctl to pair and connect the device.
6 years 11 months ago #16140

Please Log in or Create an account to join the conversation.

  • Posts: 69
  • Thank you received: 20
This is how I got the Shoestring Astronomy bluetooth adapter for Eqmod to start automatically. I have not tested on Raspberry pi but this shouild work for any systemd based distro. Please keep in mind that I am not an expert and that this includes this first systemd service file that I have written. I would be delighted if anyone can improve this.

1). First I created a file in /etc/modules-load.d/ to enable the rfcomm module to load at boot.

/etc/modules-load.d/rfcomm.conf

# Load rfcomm at boot
rfcomm

2). Then I made script and placed it in /usr/bin/

/usr/bin/rfcomm0.sh

#! /bin/sh
rfcomm bind rfcomm0 xx:xx:xx:xx:xx:xx

Where xx:xx:xx:xx:xx:xx is the MAC address of the bluetooth adapter.
Don't forget to make script executable.

3). Lastly I wrote a service file and placed it in /etc/systemd/system/.

/etc/systemd/system/rfcomm0.service

[Unit]
Description=Eqmod port

[Service]
Type=idle
ExecStart=/usr/bin/rfcomm0.sh

[Install]
WantedBy=multi-user.target

I enabled the service with sudo systemctl enable rfcomm0.service
rebooted
Now I can connect to Eqmod Mount through port /dev/rfcomm0
The following user(s) said Thank You: Jasem Mutlaq, Andres Rossi
6 years 9 months ago #17252

Please Log in or Create an account to join the conversation.

Thanks, but this is basically a nightmare for new users who have no background in LInux, there is no easy way for this?
6 years 9 months ago #17253

Please Log in or Create an account to join the conversation.

  • Posts: 152
  • Thank you received: 28
Hi tseckler thanks for your response regarding auto binding a shoestring bt adapter.

I tried your solution on my rpi3. But when I then start kstars and do the connection with ekos I get the same error as I was initially getting (see my post #16099).

The only difference this time is the red led on the shoestring adapter now stays on (its not flashing) which means it is still connected.

I'll keep tinkering to see if I can cracking it.

Regards
6 years 9 months ago #17268

Please Log in or Create an account to join the conversation.

  • Posts: 69
  • Thank you received: 20
You may want to make sure /usr/bin/rfcomm0.sh is executable.
sudo chmod +x /usr/bin/rfcomm0.sh.
6 years 9 months ago #17269

Please Log in or Create an account to join the conversation.

  • Posts: 152
  • Thank you received: 28
Hi tseckler, I just checked to make sure the service for enabled, it was. Still the same issue. The port auto binds but when i try connecting to it in ekos, the port is unresponsive. I checked on my server to make sure the bt was connected and the bt manager shows a perfect connection??? Very weird.

Could it have anything to do with my auto indi server startup? Could it be an issue with the order in which things start up? To start up my indiserver automatically i did this:

Set up Rpi3 to Automatically Start indiserver

Connect all equipment to the rpi3 (heq5, guider, ccd, focuser etc etc) and power up rpi3. You will notice that the BT adapter’s red LED flashes which means it is NOT connected to the rpi3 yet.

To start indiserver automatically, open a terminal and type:

sudo pluma /lib/systemd/system/indi.service

and add the following to the file:

[Unit]
Description=Start INDI server at startup.
[Service]
User=username
Group=usergroup
Type=simple
Restart=always
ExecStart=/usr/bin/indiserver indi_eqmod_telescope indi_asci_ccd indi_gphoto_ccd indi_joystick
[Install]
WantedBy=graphical.target
WantedBy=multi-user.target

and save the file and then activate is via

sudo systemctl enable indi.service
6 years 9 months ago #17272

Please Log in or Create an account to join the conversation.

Time to create page: 0.356 seconds