I hoped to use the Raspberry Pi 4B where the Raspberry Pi 3B seemed a little weak for the job. The 4B beats the 3B by 7% just from the clock speed. It helps that it has 4GB of RAM, too, but I wanted the disk I/O to be more responsive. To that end, a USB-3 to mSATA enclosure with a 240GB SSD that I had in my stash was added to one of the USB-3 ports. The Raspberry Pi boots off of the USB-SSD.
The external drive has the right chipset in it, according to this site. It does work with either USB-2 or USB-3, given a good cable. It's much, much faster than the MicroSD card. The SSD gives about a 7x improvement in performance over the Class 10 U1 MicroSD. To set it up to boot from the USB drive, I followed this article. At some point this will be obsolete, since the Raspberry Pi folks are adding USB boot back into the Pi 4B firmware.
To install kstars and indi (with all drivers) just do this:
wget -O - https://www.astroberry.io/repo/key | sudo apt-key add - sudo su -c "echo 'deb https://www.astroberry.io/repo/ buster main' > /etc/apt/sources.list.d/astroberry.list" sudo apt update sudo apt install indi-full gsc kstars-bleeding sudo apt upgrade
The next thing to do is to run KStars, click the Ekos button, and the Indi Control Panel. Set up the server with locally connected devices, select the devices for the telescope, camera, and in my case, focuser, and configure the communication. Test it by hitting the "Run" button followed by the "Connect" button. The devices should all connect and go ready. If they do, go ahead and end the Indi Control Panel, Ekos, and KStars.
So, the focuser is sitting on my desk, the camera is on a shelf, and the telescope is somewhere between here and Irvine in the back of a truck. It has issues. In the mean time, I'm running the telescope simulator, CCD simulator, and the Moonlite focuser. I made a file named 'indi' that runs the server command, so the Pi doesn't need to run KStars and Ekos to serve. The contents of the file:
indiserver -m 100 indi_moonlite_focus indi_simulator_ccd indi_simulator_telescope
The file needs the have the execute bit set:
chmod +x indi
Now we're ready to run. In a terminal in VNC or an ssh session, run indi:
It prints the startup log message:
2020-06-15T01:16:03: startup: indiserver -m 100 indi_moonlite_focus indi_simulator_ccd indi_simulator_telescope
And it is now a Raspberry Pi 4B Indi server.
I only load KStars/Ekos/Indi together on the Pi when I check the alignment of the secondary mirror. I have a VNC client on my phone, and I connect to the Pi and watch the donuts on the screen as I make adjustments.
The Pi 4B isn't as peppy as the 2.3GHz i7 Mac Mini, but it is plenty fast, and takes much less space at the scope. I have been asked why I don't run the client and server both on the Pi, and to that I have to say Indi is a client-server app. I use a Mac Pro with its great GUI, scads of memory and three monitors as the Client in the house, and the Pi, with its small size and more than adequate power as the server at the telescope. The Mac Pro handles plate solving, running scripts to move the image files to their final directories, autofocusing, etc. The Pi handles mirror alignment, polar alignment, and the interfaces to camera, telescope and focuser.
The Pi 4B generates some heat, getting to 54°C indoors when nearly idle. I decided to try to solve the problem by drilling holes in the top cover and installing an Argon40 fan hat. The fan just clears the cover, so when it runs with the cover on, it makes much more noise than when the cover is off. But this is going to be run outside, so I really want the cover on. To keep the leaves out of the fan, if nothing else.
The temperature settles in at 25-27°C above ambient without the fan, but with the fan it drops to 9-12°C above ambient. Right now it is 39°C outside. Without the fan it would run at 64-66°C, and with the fan it would be between 48 and 51°C.