Skip to content

Instantly share code, notes, and snippets.

@timucingelici
Last active November 27, 2023 07:12
Show Gist options
  • Star 7 You must be signed in to star a gist
  • Fork 3 You must be signed in to fork a gist
  • Save timucingelici/217ac492bc2b127c6645ce033463d265 to your computer and use it in GitHub Desktop.
Save timucingelici/217ac492bc2b127c6645ce033463d265 to your computer and use it in GitHub Desktop.
How to connect EQ6-R Pro to AsiAIR (inc. other Raspberry PI solutions) through USB type B cable

How to connect EQ6-R Pro to AsiAIR (inc. other Raspberry PI solutions) through USB type B cable

Created at: Tuesday, 29th of Dec 2020 Updated at: Saturday, 13th of March 2021

Disclaimer

This document is simply describing my own personal experience and the steps I took to troubleshoot and solve a specific problem.

It also does not provide any guarantees and does not aim to encourage others to violate their vendors/suppliers' terms.

So follow or use it at your own risk. Any harm or unwanted result you may cause is your responsibility.

The Problem

The recent batch of EQ6-R Pro mounts is having connectivity problems with Linux based devices when connecting the mount with a USB Type B cable.

It seems SkyWatcher has updated the chipset they are using from PL2303 to PL23D3, which is a model not yet supported by the stable Linux Kernel, and that's the very reason for the problem.

As of writing this, 5.4.79 was the latest stable for Raspberry Pi OS, yet the new chipset requires a newer version.

How to check which chipset your mount has

  • SSH into your device (or open your terminal)
  • Connect your mount with the USB cable
  • Run dmesg

You should see something like the following;

[   47.052706] usb 1-1.3: new full-speed USB device number 4 using xhci_hcd
[   47.209669] usb 1-1.3: New USB device found, idVendor=067b, idProduct=23d3, bcdDevice= 4.05
[   47.209680] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[   47.209688] usb 1-1.3: Product: USB-Serial Controller
[   47.209695] usb 1-1.3: Manufacturer: Prolific Technology Inc.
[   47.209702] usb 1-1.3: SerialNumber: xxxx
[   47.216323] pl2303 1-1.3:1.0: pl2303 converter detected
[   47.218982] usb 1-1.3: pl2303 converter now attached to ttyUSB1

Here, idProduct in line 2 is the chipset model, and the last two lines are simply saying that the OS has recognised it as a USB-to-serial converter.

If you see the device is connected but /dev/ttyUSBx is not created, you need to update your kernel.

Before the update

SSH access and internet connection are enough, but it's a good idea to be prepared if something goes wrong. So;

  • Create an image of your SD card (or disk) so you can restore it if needed
  • Make sure you have the necessary cables and adapters to debug your device with a physical screen and keyboard for potential troubleshooting.

Updating the kernel

rpi-update is your friend and the easiest way to do this for Raspberry Pi devices. Run it as root and watch it happens.

If you encounter any errors, especially in the post-installation phase, do not reboot your device and Google (or Duck?) for the error message(s) you get.

How to SSH into AsiAIR (or similar)?

AsiAIR is just a Raspberry Pi with a custom power board. It runs Raspbian and contains the licensed software (and scripts) of ZWO.

So as long as you bought the device through legitimate channels and did not intend to distribute ZWO's intellectual property, you should be free to do anything you want with the open-source software it comes with.

So my steps were;

  • Create an image of the working SD card in case you need to restore the working copy.
  • Either try the rooted image or root the device/image yourself
  • Once you have the SSH access, jump to After logging into AsiAIR section at the end

Use the rooted image

This guide was proven to be a bit tricky for inexperienced users. So I tried to create a rooted image. I haven't had time to test it properly, but please feel free to see if it can help you skip the next steps. You can download the image here.

Or root the device/image yourself

  • AsiAIR’s SD card had 4 partitions;
    1. /boot -> Fat32/LMB
    2. / -> ext4
    3. /home/pi -> ext4
    4. swap

Attach the SD card with a card reader into another Linux machine and mount the / partition into a folder.

  • Add your public SSH key to the device (/ means the root of the mounted partition here, not your local's root, so update the path accordingly)

    • mkdir /root/.ssh
    • touch /root/authorized_keys
    • chmod -R 600 /root/.ssh
    • echo "YOUR_PUBLIC_KEY" > /root/.ssh/authorized_keys (or just use the editor you’re comfortable with)
  • Unmount the partition, put the SD card back, turn the device on, hear the beep. The beep is good.

  • Ping the device to see if it's reachable over the network with ping IP_ADDRESS

  • SSH into the box with ssh root@IP_ADDRESS

If everything goes as expected, you should be able to log in to your AsiAIR and see the command prompt as root

After logging into AsiAIR

  • Re-mount the root partition with mount -o remount,rw /
  • Update the date with the current date date -s "Tue 29 Dec 2020 12:00:00 GMT"
  • Add a working DNS resolver to /etc/resolv.conf with echo "nameserver 1.1.1.1" >> /etc/resolv.conf
  • (Optional) Run apt edit-sources to comment the China mirrors and uncomment the default repo URLs
  • Run apt update
  • Run rpi-update to update your kernel and follow the instructions
  • Reboot. Hear the beep. Beep is good. Beep is love.

Now you should be able to connect your mount, see the missing output in dmesg and control your brand new EQ6-R Pro with AsiAIR 🚀

@timucingelici
Copy link
Author

This is AWESOME work and thank you for taking the time to share with the community. I thought I would add my struggles and learnings incase others like me (not very skilled at linux) would still like to do this. I am using a separate RPi4B.

first challenge! I forgot how to mount! but just worked around where the files auto-mounted which for me was /media/pi/[long key folder name]. I just prefixed all of your commands with that and it worked fine.

my next stumbling block was the "chmod -r 600 /root/.ssh" I get the error: "chmod: cannot access '600': No such file or directory". With sudo access, I could go into SD cards root, if I LS -aI I can see ".ssh" folder but chmod wouldn't run. After further fumbling I realized that it has to be a capital -R in order for chmod to work, so the correct command is "chmod -R 600 /root/.ssh" then it took and I continued on.

My RPi4B didn't have any keys, so I generated those. Not being familiar with this key process the generation was easy but I made the mistake a few times of copying the private key, not the public key. The keygen process generated two files which could be found on the RPi4B root (not the ASIairPro) called "authorized_keys" and "authorized_keys.pub" which I located in /root/.ssh/ folder. So I kept using the echo command to transfer the newly generated "authorized_keys" to the ASIair SD card "authorized_keys"... when I should have been echoing the "authorized_keys.pub". So for others, make sure you use the .pub file, go into that file and it should be a single long line of text looking like "ssh-rsa xxxxthisisthekeyxxxxx root@raspberrypi". at this point I still couldn't connect, so I gave a try to appending my public key to my RPi4B as well and then I was in, so you have to append the public key to both your linux machine as well as the ASIair.

the final SSH command I need to use "ssh -i ~/.ssh/authorized_keys root@172.10.10.60"

I confirmed the dmsg shows the device successfully attached to ttyUSB0 for me.

the final step - I didn't know what to choose inside ASIair Pro iPad app. Started with SkyWatcher SynScan,SkyWatcher SynScan Beta, EQMod Mount, EQMod with SkySafari and none work. Turns out it needs to be set to the Meade LX 200 Classic @ 115200 baud rate.

@astrokring Thanks a lot for this detailed comment.

After further fumbling I realized that it has to be a capital -R in order for chmod to work, so the correct command is "chmod -R 600 /root/.ssh"

You're absolutely right. I can't remember if I did a typo or the system I used at that time was accepting lowercase r but it should be R for sure.

I forgot how to mount!

This is something I understand and happens to all of us. At the time of writing, I knew I could provide more detailed guide but I didn't want to create a never ending guide and I was a bit reluctant to boost the confidence of inexperienced users. I also didn't know how ZWO would react to this, so a lot was going on in my mind. Since ZWO started to link this guide even without saying thanks (sending an 2600MM Pro as a thanks would be nice 😄 ), guess I should update this when I have time.

Again, thanks for sharing your progress. I'll try to include your pain points when updating it!

@timucingelici
Copy link
Author

@kssolomon @DefConBill I tried to create a rooted image without testing it on a real device. Please feel free to try and see if it works. It should be way easier than backup up and sending a 30 gig disk image back and fort :)

https://gist.github.com/timucingelici/217ac492bc2b127c6645ce033463d265#use-the-rooted-image

@packrat12
Copy link

I have following since I performed my update at the end of January. I wanted to make an additional comment for those that are concerned about updating their AAP with this process and how it will affect future ZWO updates (as I was). Since performing this update, ZWO has updated the ASIAir Pro software and firmware. These did not cause any issues with either the ZWO update or the update I performed following this guide. My AAP kept working with my EQ6 without any headaches. @timucingelici has been very generous with the support given, IMHO has done a great service for ZWO in making the ASIAir Pro better for certain, very popular mounts, and yes does deserve a 2600MM from ZWO ;)

@timucingelici
Copy link
Author

@packrat12 Thanks for your kind words. 😊

I can confirm that the current implementation of ZWO (including firmware updates) doesn't touch anything related to kernel or the changes this guide suggests. And since you're only upgrading the minor version of the kernel to another stable version of it, there shouldn't be anything incompatible.

@DefConBill
Copy link

I've done this update (thanks Tim and yes, they should send you a 2600 for your troubles and help - after all your helping them support their product) on a newly downloaded and updated image file so the image has no license associated with it. I am willing to share this file so people would only have to download it, burn it on a card and apply their own license to it. Since it would still need license activation does anyone think ZWO would have an issue with it? I'll ask on the FB page as well

@kssolomon
Copy link

kssolomon commented Mar 15, 2021 via email

@timucingelici
Copy link
Author

I've done this update (thanks Tim and yes, they should send you a 2600 for your troubles and help - after all your helping them support their product) on a newly downloaded and updated image file so the image has no license associated with it. I am willing to share this file so people would only have to download it, burn it on a card and apply their own license to it. Since it would still need license activation does anyone think ZWO would have an issue with it? I'll ask on the FB page as well

@DefConBill The software shipped with the image is still an intellectual property of ZWO and they certainly avoid to make comments on the distribution of it. I tried to raise the question both on their forums and through the emails but they left that unanswered on both.

I know you won't be distributing it with a license, only the software, which requires a license to run, so definitely doesn't sound like to be an issue, and who knows, ZWO may be ok with that for a while. But the problem is that, what if they don't at some point? I guess they can blame others on the backdated distributions if that'd be case.

Another potential problem is that, ZWO can refuse to support the custom imaged devices for potential problems. They have right to refuse to support a custom image. So turning this into a movement and let it be adapted by a larger community may bite users back at some point.

One thing I am curious though; I found traces of othere open-source software, like PHD2 in the ZWO binaries. Not sure if they just re-purposed those projects and then distributed as their own. Lucky for them, they don't have to share the improvements back with the open source projects they use in either case. So they can still own the IP rights if they re-purposed PHD2 and other tools fall under the same license type.

TL; DR; I would show the way but wouldn't fix these for ZWO. May be we should look for alternatives and how to use them in a similar way. Something like AstroBerry but without the x-server/VNC overhead - which was the thing prevented me to start with it. Consumed too much CPU and crippled my RPi 4B for some reason.

@DefConBill
Copy link

@timucingelici it seems we've been looking at all the same things. From what I've seen ZWO hasn't done anything ground-breaking here - they've taken existing open source solutions and brought them together in an elegant way (hat's off to them for that).

I've been running K-stars/Ekos on my ASI Air Pro more than the native software recently. I managed to get the power ports working through Ekos and I primarily image at my cottage so using a computer as opposed to my iPad is not an issue and even VNC is pretty snappy for unattended sessions. I've also been playing with an 8 Gb RPi with Ubuntu that I'm thinking I'll do an antenna mod on and toss it in the AAP case with the power board and a good antenna and see if I can build a driver for the power board to control outputs (right now they just supply 12v with my change)

@SteveWasT
Copy link

SteveWasT commented Mar 16, 2021

There is an indi driver for the power board now. I've tried it on Astroberry & Stellarmate (indi-asi-power) kudos to Ken Self - allows adjustments on/off labels and dew power percentage (and the DSLR trigger too). See INDI 3rd party Drivers v1.8.9

@astrokring
Copy link

Sharing this link: which is provided by ZWO as an already configured Image from ZWO (I think) at least, they shared it. I haven't tested and don't have a need to since my AAPs work fine since the hack.. but figured someone may want to use this if indeed they are now providing a new image with working USB drivers.
https://drive.google.com/file/d/1JAtW5I-RH2XD5qDjWKWRqhnjUjt_z73-/view?form=MY01SV&OCID=MY01SV

Link to ZWO post sharing it:
https://bbs.astronomy-imaging-camera.com/d/12603-connection-to-eq6-r-pro-mount-with-usb-port/8

@timucingelici
Copy link
Author

Sharing this link: which is provided by ZWO as an already configured Image from ZWO (I think) at least, they shared it. I haven't tested and don't have a need to since my AAPs work fine since the hack.. but figured someone may want to use this if indeed they are now providing a new image with working USB drivers.
https://drive.google.com/file/d/1JAtW5I-RH2XD5qDjWKWRqhnjUjt_z73-/view?form=MY01SV&OCID=MY01SV

Link to ZWO post sharing it:
https://bbs.astronomy-imaging-camera.com/d/12603-connection-to-eq6-r-pro-mount-with-usb-port/8

@astrokring thanks for sharing. I haven't checked the image but I guess the up to date kernel finally took its place in stable versions of Raspbian, so the new chipsets are now supported out of the box.

Re-imaging the SD card is absolutely unnecessary to do this upgrade but since guess that was the easiest for ZWO. I can't say I appreciate how they manage these but 🤷 🙂

@BigBobDalton
Copy link

Awesome tutorial. I have two Raspberry's so ssh'ing in to correct the issue was a breeze thanks to these instructions.

Unfortunately timucingelici is slightly incorrect. Since the newest image doesn't update correctly from the .803 image that includes the USB driver (ASIAIR Pro won't restart, shutdown or Save previous connected devices), this is the "ONLY" way to correct the issue.

Maybe someday ZWO will update their initial image to include the driver, for now, the rpi-update is the best solution.

👍. Many thanks 😀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment