Configure your Raspberry Pi running Raspbian to connect to your WiFi network, and enable SSH so you can go back later and install the things you need once you install it in the hand controller (HC).
Gather your components, and open the case on your Celestron Nexstar HC.
Open the case on the HC and using a multimeter identify the incoming 12V power line and ground. Wire up your 5V power regulator and prepare it for mounting.
After soldering the power regulator to the incoming power, and the Raspberry Pi, I secured it to the HC's main board using a hot glue gun.
Now that your Raspberry Pi Zero W has 5V power, you can connect the serial port directly to the HC. Unfortunately, the HC expects 12V RS232 on it's external port, whereas the RPi expects 3.3V on it's GPIO pins. Luckily, we can bypass the RS232 chip entirely, and talk directly with the the HC's microcontroller!
Using the datasheet for the Sipex 3232EE (page 5), we find that we can connect to the 11th and 12th pins on that chip to bypass it entirely.
Admittedly, there was some trial and error on my part to find which pins it actually was, since there is more than one combination that could be used here. Compounding this, it's hard to guarantee that you didn't mess up the soldering job on the tiny pins, instead of simply guessing the wrong ones. I should have used my Bus Pirate or oscope to determine what was the actual port before even soldering.
Seal things back up. I used a piece of non-conducting foam to pad the RPi to keep it from rattling in the HC.
Log into your Raspberry Pi via SSH, and configure it for UART GPIO output:
sed -ri 's/console=serial\S+ //' /boot/cmdline.txt echo "enable_uart=1" >> /boot/config.txt
Install libindi for Raspbian (you may need to do this as root):
apt-get install cdbs libcfitsio3-dev libnova-dev libusb-1.0-0-dev libjpeg-dev \ libusb-dev libtiff5-dev libftdi-dev fxload libkrb5-dev libcurl4-gnutls-dev \ libraw-dev libgphoto2-dev libgsl0-dev dkms libboost-regex-dev libgps-dev \ libdc1394-22-dev mkdir /opt/libindi pushd /opt/libindi curl -o libindi_rpi.tgz -L http://indilib.org/download/raspberry-pi/send/6-raspberry-pi/9-indi-library-for-raspberry-pi.html tar -xzf libindi_rpi.tgz --strip 1 dpkg -i *.deb apt-get -f install popd
Install the indi server web manager (you may need to do this as root):
apt-get install python-requests python-psutil python-bottle apt-get install git git clone http://github.com/knro/indiwebmanager /opt/indiwebmanager cp /opt/indiwebmanager/indiwebmanager.service /lib/systemd/system/ sed -i 's|/home/pi|/opt/indiwebmanager|g' /lib/systemd/system/indiwebmanager.service sed -i 's/User=pi/User=root/g' /lib/systemd/system/indiwebmanager.service chmod 644 /lib/systemd/system/indiwebmanager.service ln -s /lib/systemd/system/indiwebmanager.service /etc/systemd/system/multi-user.target.wants/indiwebmanager.service
- reboot your RPi
- wait for it to come back up
- use a browser to open the server manager at port 8624 (with my config, it's as simple as http://nexstar-6se:8624/)
- create a new profile that includes the "Celestron NexStar" driver
- save the profile
- start the server
- install and run KStars
- in KStars, open the device manager,
- select "Client" >> "Hosts" >> "Add"
- enter the info for your mount and click "OK"
- connect to the remote server
- set the Connection port for your telescope mount to `/dev/ttyS0`
- connect to your mount
If all went well, you're all done!