Major INDI Library release v1.9.0 bring significant internal changes championed by @pawel-soja to modernize core INDI Library drivers and clients. New drivers for DeepSkyDad Flat Panel & Pegasus devices plus further improvements to PCM8 drivers.
What is the best way to use an Rpi as just an Indi client?
I am trying to eliminate cables running from ground to the scope. I have an Rpi4-8 with 8 Gb (Ubuntu 64 bit OS on an SSD drive) running EKOS/PHD2 as my main equipment controller at the base of the scope (I vnc over ethernet to the house) . Currently I have a powered 7 port USB3.0 hub there also and all the USB cables (main camera, mount, guide camera, filterwheel, e-finder) come down from the scope to that hub. I have a spare Rpi4-1 (1 GB RAM) and I would like to mount it with the USB Hub up on the scope, keep all the USB cables up at the scope and connect over WiFi from the Rpi4-1 to the Rpi4-8 at the scope base. On the Rpi4-1 I only want to run the necessary device manager to connect to all the equipment and download image files.
My question is what is the easiest and most convenient way to do this? I want to be able to power up the equipment and not have to actually connect to the Rpi4-1 other than when I start up the Rpi4-8 and tell it to connect to the remote client. I have current versions of the OS, Kstars and PhD2 loaded on both Rpi's. I am sure I can hunt and peck my way to an answer, but I thought I would ask here first as someone is surely doing something similar.
I guess I wanted to add that since the older Rpi4-1 only has 1 G of RAM I want as lightweight an OS as possible. So while I currently have Ubuntu 20.1 installed on an SD card I could (would) switch to a lighter OS, I am not enough of a Linux user to know which way to go, Raspbian/Astroberry or Ubuntu/Kstars (some version). I need the 64 bit Ubuntu on the Rpi4-8 to successfully do plate solving quickly, but not on the client.
I think you're switching the words "client" and "server" in your head (very common confusion). The idea is that the "server" provides "services" like the control of your astronomy devices without the added computing overhead of a graphical desktop environment or much of anything else going on. The "client" contracts out these "services" to the server without needing a physical connection to the camera, mount, etc.
You want a lightweight INDI *server* on the scope that controls the devices. That will certainly run on a minimal OS (ubuntu server or Raspberry server).
Kstars/Ekos is an INDI *client* with a GUI and plate solving and so forth. That's the heavier lift requiring more memory, a desktop environment, etc.
It's very easy to build a lightweight INDI *server* on a Pi, even a Pi3, with 1 GB of RAM. You can even run this on a Pi Zero, though that lacks the USB3 ports you almost certainly want for your cameras.
If you have limited experience with linux, you may not have dealt with operating systems that don't have a graphical desktop environment. Everything has to be done by typing linux commands in a terminal. The easiest way is probably to install Raspberry Pi OS *server* on a Pi connected directly to a monitor, because before you get things set up it's not trivial to log into the OS over the network. ubuntu server works just fine too though.
Once you can log into the console and update the OS all you need for INDI is
sudo apt-add-repository ppa:mutlaqja/ppa
sudo apt-get update
sudo apt-get install indi-full
No Kstars client. Just INDI.
Regarding cables between the client on the ground and the server on the scope, you will of course still need power to the lightweight server and to the equipment (camera, focuser, filter wheel, dew straps, etc). Depending on the specifics of your equipment, you may also need a powered USB hub because the USB ports in the Pi4 don't provide much juice.
At a minimum you will need to run a 12v cable up from the ground.Then you'd need a power hub on the scope to distribute 12v to the other devices and a converter of some kind to step down to 5v for the Pi.
The downside of this arrangement is that there's a communications bottleneck for image data to download from the server up on the scope to the client down on the ground. If you're guiding, this can be a pain. If not, then you only have that bottleneck as often as you download a light frame.
Why not just velcro the more capable Pi4-8 to the scope? That way you can skip the ground computer altogether and just do everything up top. Of course you still need power and a 12v hub, but there's little advantage to splitting your INDI setup between two Pi's.
Yes, of course I had them backwards, but you understood what I wanted to do. The main reason for doing what I asked about is that I have an Rpi4-1 sitting around doing nothing. I do need the USB 3.0 port on it to connect to the powered USB 3.0 hub, so the Rpi4-1 fits the bill. The other reason is that the main Rpi4-8 is run from an SSD drive, which also needs power and a USB 3.0 connection. The SSD drive gives me lots of storage for files and is fast, but it has a bulky housing.
I will run a 12 v line to a breakout board to power my main camera (ASI533 or SBIG 8300M both cooled), the USB hub, the mount (CGEM-DX), and the dew strips (all take 12 volts) and have a Buck converter to power the Rpi4-1 at 5 volts.
So with the Rpi4-1 and the USB Hub + power distribution up on the scope (someplace) the setup only needs a single power line from down below. I usually do guide with the Lodestar running anywhere between 1 and 4 seconds per frame, while the main camera subs are more like 1 to 3 minutes. Of course, I need to test this all first to see if it is feasible without causing to much image delay (that is what I am trying to setup to do now). The backup plan is to move the main Rpi4-8 up with the SSD drive (maybe I can find a smaller case), that will take more room and also require that I drop a ethernet cable down along with the power line. Certainly doable with a lot less cable issues than I have now.
I forgot, how do I just run the "indi server" so it connects to all my equipment? Will the profile from Ekos running on the "client" configure it or does it need to be configured before hand and somehow set up to start automatically.
I am used to using command line input, I can use putty to log into the "headless" machine, but would prefer to have it start up with all the equipment connected, the 'server' running and looking for a wifi connection from the main Rpi4-8.
almost there. I have the indi web manager installed and I have the scope Rpi4-1 connected to the main Rpi4-8 over wifi. When I run indi-web --host 10.42.0.1 (the address of the main Rpi4- (port 7624 is default) I get Warning messages: terminating indiserver failed code 1 and terminating indihub-agent failed code 1. then the trace back ends with Errno 99 Cannot Assign requested address?
Making progress, ignoring those messages. I opened a browser on the mount Rpi4-1 and entered http://localhost8624. The Indi web manager screen came up, I set up a system profile. On the main Rpi4-8 in Ekos I entered the address of the server Rpi with the connections as remote. And I think I am getting a connection. I need to actually connect the equipment.
Well the first time I started the indi-web I left it as defaults, so the host was local (as it should be), then it told me Errno" 98 address already in use. So I thought I needed to change the host.
Fortunately, I have the mount (server) Rpi4-1 on a screen with mouse and keyboard, so I can play around for now. I will try a simulator profile as my equipment is in the garage and I am in my study. It seems to work with simulators. I get a connection on the main Rpi4-8 to simulators on the remote 'server.' (maybe if I keep repeating it to myself it will stick!).