Astroberry Server

From Astroberry Wiki
Revision as of 05:50, 21 August 2022 by Astroberry (talk | contribs) (→‎Plate solving)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
Other languages:
English • ‎español • ‎français • ‎polski

Astroberry Server is ready to use system for Raspberry Pi for controlling astronomy equipment.

It runs on single board computer and is powered by Linux operating system. Astroberry lets you remotely control your telescope, focuser, camera and many other devices used in astronomy. It can manage your equipment located in the backyard or hundreds kilometers away. The system can be accessed as a remote desktop via a web browser or VNC client or it can act as INDI server accessible by INDI clients such as KStars, Skycharts / Cartes du Ciel or Stellarium. Astroberry Server is based on open-source software, developed and improved by astrofans around the globe.

Astroberry Server project site is located at www.astroberry.io

Contents

Features

  • Support for Raspberry Pi 3 and 4, Pi Zero and... probably any other Raspberry Pi version released so far
  • Official Raspberry Pi OS Desktop by Raspberry Pi Foundation
  • APT repository for Raspberry Pi OS (yes, now any Raspberry Pi OS user can install Astroberry Server with 'apt install')
  • Web interface featuring GPS Panel and Astro Panel (celestial almanac for your localization)
  • Astroberry Wireless Hotspot allowing to access the system directly i.e. without external wireless network eg. in the field
  • Remote desktop accessible over VNC at astroberry.local:5900 or a web browser at http://astroberry.local/desktop
  • INDI framework with all available device drivers
  • KStars planetarium software and Ekos with all available device drivers plus custom astroberry drivers
  • SkyChart / Cartes du Ciel planetarium program (only in precooked image)
  • Hallo Northern SKY planetarium program (only in precooked image)
  • CCDciel capture software (only in precooked image)
  • Astrometry for field solving (index files not provided and must be downloaded separately)
  • ASTAP, the Astrometric STAcking Program (only in precooked image, see Updating)
  • PHD2 for autoguiding
  • Gnome Predict for satellite tracking
  • oaCapture for planetary imaging
  • FireCapture for planetary imaging
  • SER Player for watching captured video streams (only in precooked image)
  • Astroberry DIY drivers for focuser and relay board
  • Astroberry PiFace drivers for focuser and relay board
  • Astroberry Motor HAT for focuser based on Adafruit Motor HAT
  • Virtual GPS for users who do not have GPS device
  • File sharing server allowing for network access to captured images
  • Support for raspi-config (console) and rc_gui (graphical UI) for easy configuration of Raspberry Pi options

System Requirements

  • Raspberry Pi 4 (recommended) or Raspberry Pi 3 (minimal)
  • microSD card 32GB (recommended) or 16GB (minimal)

Quick Start

Image Verification

You can verify downloaded file with any SHA256 checksum software available for your system or by running below commands in your terminal:

sha256sum astroberry-server_2.0.4.img.zip See this for checksums for other versions.

Make sure that the output of the command is 2bfdf85534b5ff2844c74f760130af9bee589ad1500ffe8b572384bdaa816704.

If it's not, the file is corrupted and must be downloaded again. If you download the file again and the checksum is incorrect, please let us know.

Installation

Basic installation of the system requires flashing your microSD card with system image file. It's not the same as copying the file to microSD card. If you just copy downloaded file to your microSD card it's not going to work.

You can flash your microSD card (minimum 16GB required) using etcher.io or running below commands in your terminal:

unzip astroberry-server_2.0.4.img.zip
sudo dd if=astroberry-server_2.0.4.img of=/dev/sdX bs=8M status=progress

Note: Replace sdX with your microSD card identifier. Make sure it is correct before running the above command!

The process takes some time and you need to be patient. If you abort the flashing process your system is not going to boot at all.

First Boot

After the first boot, search for 'astroberry' wireless hotspot and connect your PC to it using 'astroberry' for password. Point your browser to https://astroberry.local or https://10.42.0.1 to access Astroberry Server. For the Internet access connect your Astroberry to your home wireless network. Right-click top bar Wi-Fi icon and edit Wireless connection by entering your home network SSID and password. While connected to the Internet you can update your system by running below commands in your terminal: sudo apt update && sudo apt upgrade && sudo apt dist-upgrade

Installation

Easy installation

See #Quick Start section

Advanced installation

The procedure described below does not apply to the latest Raspberry OS based on Debian Bullseye. It is designed for Raspberry Pi OS (Legacy) based on Debian Buster. Packages for the newest version will be available soon.

You can install Astroberry Server packages on top of official Raspberry Pi OS with desktop system. This approach is not recommended for beginners. It does not provide all Astroberry Server features available in precooked image and you have to configure your system on your own, which requires advanced understanding of linux system. It's time consuming but you keep full control over the process.

Download official Raspberry Pi OS with desktop image and flash your microSD card with it. Connect keyboard, mouse and HDMI display to your Raspberry Pi, setup your system with the official first boot wizard and run the following commands in your terminal:

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 upgrade

At this point you can choose to install all Astroberry packages at once by running sudo apt install astroberry-server-full or you can install only selected packages.

Packages installed by astroberry-server-full include:

  • astroberry-server-wui
  • astroberry-server-sysmod
  • indi-full
  • libindi-dev
  • kstars-bleeding
  • astrometry.net
  • gsc
  • phd2
  • phdlogview
  • oacapture
  • ser-player
  • gpredict
  • indi-astroberry-amh
  • indi-astroberry-diy
  • indi-astroberry-piface
  • virtualgps
  • gwenview
  • indiwebmanagerapp

Configuration

Installing your own certificates

Using secure connection requires a security certificate installed on your Astroberry Server. Basic certificate is provided with the system. However, you need to trust this certificate at the first conenction to use it! Due to security constraints of modern browsers default certificate configuration might not work for you. In such a case just use unencrypted connection or install commercial certificates. To do this you need to get your certificate issued by a public certification authority recognized by your browser. As soon as you get your own certificate you can install it by replacing the content of the file /etc/ssl/astroberry.crt. To activate your changes run sudo systemctl restart nginx.service.

Setting time and date

Raspberry Pi does not come with real time clock (RTC), which remembers time and date between restarts. As the result it does not know what time and date is just after start. To overcome this limitation, it synchronizes time and date from the Internet. This can obviously work only if it has Internet access. Otherwise your system will think it is in the 1st of January 1970.

There are a few ways to ensure that you system is set to proper time and date.

Internet connection

Connect Raspberry Pi to a network, which has Internet access e.g. your home network or your smartphone, using wireless tethering function, and the system will do the rest for you. If you can't have Raspberry Pi always connected to a network with access to the Internet you need to use other options.

RTC module

Get a real time clock (RTC) module and connect it to GPIO. It will remember time and date between restarts. Additionally if you connect your Raspberry Pi to a network with access to the Internet, your time and date will be synchronized to minimize any difference.

GPS module

Get GPS module and connect it to Raspberry Pi. You can use either USB connection (plug-and-play) or serial device connected to GPIO. GPS module will synchronize time and date with GPS satellites. Note that satellites provide UTC time and are not aware of your time zone. However if you set your timezone correctly in the system, it will be used to adjust the time received from satellites accordingly. Using GPS module gives you additional feature of setting your location, which is required by various astronomy applications.

Manual configuration

You can always set time and date manually after each boot. It's not the most convenient way to keep system time and date accurate but it's good to know you can do it anyway. To set date to the 19th of May 2020 and time to 11:14:00 run in terminal: sudo date -s "2020-05-19 11:14:00"

Setting geographic location

Setting geographic location is quite important when using Astroberry. Many applications use your location to provide you with accurate position of stars and planets. Make sure that you set your geographic location before running these applications.

GPS device

To provide system-wide location info Astroberry system uses GPSD service. It grabs raw data from GPS device and provides it to whole operating system and applications that need this information. If you use GPS device the whole system and applications can get accurate geographic location from it. When using GPS device make sure that Virtual GPS is stopped and disabled by running systemctl stop virtualgps && systemctl disable virtualgps. Otherwise GPSD service will simultaneously use location from two sources i.e. GPS and Virtual GPS.

Virtual GPS

If you don't have GPS device, Astroberry provides Virtual GPS, which uses static location configured in /etc/location.conf file.

You can set your location by running Preferences/Geographic Location from system menu or running sudo nano /etc/location.conf in console.

After setting location in the file you need to make sure that Virtual GPS service is up and running.

  • Run sudo systemctl status virtualgps to check service status
  • Run sudo systemctl enable virtualgps to enable service
  • Run sudo systemctl disable virtualgps to disable service
  • Run sudo systemctl start virtualgps to start service
  • Run sudo systemctl stop virtualgps to stop service
  • Run sudo systemctl restart virtualgps to restart service

How applications get location data

By default applications use system-wide location data from GPSD service. However there are some other options, which must be noted.

  • Kstars can use system-wide location data from GPSD service or it can read location from one of GPS drivers, namely INDI GPSD or INDI GPS NMEA
  • Astroberry GPS Panel uses system-wide location from GPSD service
  • Astroberry Astro Panel uses system-wide location from GPSD service

Geographic location architecture

Geographic location system architecture is quite complex.

                 |----> Mount with GPS ---------------------------> INDI mount driver ---->|
                 |                                                                         |
Satellites ----> |----> Smart Phone with GPS ---------------------> INDI GPS NMEA -------->|----> KStars 
                 |                                                                         |
                 |----> GPS Device ------>|                  |----> INDI GPSD ------------>|
                                          |-> GPSD service ->|
/etc/location.conf ----> Virtual GPS ---->|                  |----> Astroberry GPS Panel
                                                             |
                                                             |----> Astroberry Astro Panel

Configuring network connections

LAN/WLAN/Internet connection

You can configure your local network, wireless or Internet connection using general operating system preferences.

Accessing files over network

Your home directory i.e. /home/astroberry is shared over local network by default. You can access files located in this directory over local network using astroberry user name and password. Configuration of the file share is located in /etc/samba/smb.conf and you can change default password running smbpasswd -s -a astroberry

Using network drive

You can easily attach a network storage e.g. NAS to your Astroberry and, if using fast network connection, even write you images directly to it. To do so you can mount a directory from your network storage to a selected directory on Astroberry, using windows and apple file sharing, NFS or any other file sharing protocol. To access windows file sharing service from Astroberry:

  • Configure your shared directory on network storage e.g. NAS and make it accessible to a user e.g. astroberry
  • Install cifs-utils on Astroberry: sudo apt install cifs-utils
  • Create a local mount point: sudo mkdir /mnt/nas
  • Create a local credentials file: sudo touch /etc/nas.credentials
  • Limit access to the local credentials file: sudo chmod 600 /etc/nas.credentials
  • Add username and password configured on your network storage to the local credentials file (e.g. astroberry/astroberry): sudo nano /etc/nas.credentials
  • The content of the local credential file should look like this:

user=astroberry

password=astroberry

  • Add automounting option to your system configuration: sudo nano /etc/fstab
  • In the file add this line: //your_network_storage_name_or_ip/shared_directory /mnt/nas cifs x-systemd.automount,_netdev,vers=3.1.1,uid=astroberry,gid=users,file_mode=0664,dir_mode=0775,credentials=/etc/nas.credentials 0 0

Using this procedure you can use as many network storage devices as you want. Just remember to mount each of them to separate local directory (e.g. /mnt/nas1 /mnt/nas2), use separate or shared local credential file(s) and add separate automount configuration line for each network storage to /etc/fstab.

Plate solving

When using Kstars you can plate solve your images, and determine your exact telescope coordinates based on captured image. Plate solving module is located on Align tab in Ekos module. It provides a few options for plate solving:

  • StellarSolver
    • see below
  • Remote (only if running indi_astrometry driver)
    • Your images are plate-solved on remote computer. Remember to add a line in the remote /etc/astrometry.cfg pointing to index files directory e.g. add_path /share/astrometry (or wherever you have your index files installed). Otherwise, you can add the additional custom config setting in the local Ekos Solver Options of where to find your astrometry.cfg file on the remote server by using --config <path-to-remote-astrometry.cfg>.

If you use StellarSolver option you can use various solving methods (configurable via Ekos Align Tab Options menu):

  • Internal Solver
    • Your images are plate-solved locally.
    • You need to install local index files for plate solving to work.
  • Local Astrometry
    • astrometry.net needs to be available on your system (installed by default)
    • Your images are plate-solved locally.
    • You need to install local index files for plate solving to work.
  • Local ASTAP
    • astap needs to be available on your system (installed by default)
    • Your images are plate-solved locally.
    • You need to manually update ASTAP, see Updating
  • Local Watney
    • watney-solve needs to be available on your system
    • Your images are plate-solved locally
  • Online Astrometry
    • Internet connection needs to be available on your system
    • Your images are uploaded to astrometry.net online service for plate-solving. Results are returned from the service. You can use it only if you have an Internet connection. No local index files are needed.

Downloading astrometry index files

Astrometry is the main engine available for plate-solving your images. However, before you can use it you have to download index files required by astrometry, which fit your field of view. KStars calculates your field of view based on your telescope focal length and sensor size of your camera. Make sure to configure your telescope focal length either on Ekos Mount tab or mount tab in INDI panel. To download index files:

  • Go to Ekos Align tab
  • Go to Options (bottom-right)
  • Go to Index Files
  • Click Index Files Location drop-down and set location to /home/astroberry/.local/share/kstars/astrometry
  • Select all required index files. They will be downloaded automatically for you

Maintenance and Upgrade

Upgrading the system

Astroberry comes with online software repository. If you installed your system from downloaded image file, it is already configured for you. Using software repository you can install and update your system without need to manually download updates. Just make sure that Astroberry is connected to a network with access to the Internet and integrated software management system will download and install all updates for you.

Astroberry is Rasbian based Linux system, which uses APT software management system. You can update the system by using aptitude or Software Updater.

If you prefer to use terminal just run sudo apt update && sudo apt upgrade && sudo apt dist-upgrade

Major system upgrades are also released as a new image file. This is only for minimizing amount of updates you would have to apply between major system upgrades. There is no other need to reflash microSD card with new system image. If you decide to reflash your microSD card, make sure to backup your data first. All your data on microSD card will be overwritten during reflashing microSD card. If you update the system from software repository all your data and files are preserved.

Installing alien software

Astroberry is based on Raspberry Pi OS operating system. This means that it is a Linux operating system compatible with Debian 10 (Buster). Debian packages are distributed as .deb files available in numerous software repositories. Astroberry comes with it's own software repository (KStars, INDI, PHD2 etc) and additionally uses official Raspberry Pi OS repository for core operating system functionalities. All of these are packages for specific version of operating system i.e. Rasbian Buster.

Using packages from other Linux distributions e.g. Ubuntu is technically possible, but sometimes requires advanced configuration changes. There is no guarantee that alien packages will work properly on Astroberry. It is common error that users add Nightly Builds repository for Ubuntu to Astroberry. It can work for some packages, sometimes. In majority of cases this can be very problematic and make your system unstable. You should not do it, unless you really know what you're doing.

The safest way to bring alien software to your system is to build it from sources. This way all dependencies and requirements are ensured at compilation time.

How-to

Flashing microSD card

After downloading Astroberry Server image you need to unzip it first. Use your preferred software to do it or run this command in your terminal:

unzip astroberry-server_2.0.4.img.zip

You can flash your microSD card with unzipped file using Raspberry Pi Imager or etcher.io or by running below commands in your terminal:

sudo dd if=astroberry-server_2.0.4.img of=/dev/sdX bs=8M status=progress

Note that copying downloaded file to a microSD card will not work. You need to flash your microSD card with unzipped file.

FAQ

How can I update the system?

You can upgrade all system components using regular system upgrade using apt, apt-get, aptitude or Software Updater.

… but ASTAP isn‘t upgraded using the normal means?

Yes, ASTAP is not part of the package repositories scanned for upgrades. Safest way to upgrade it, is to first remove it, then upgrade: sudo apt remove astap g17, then download from HNSKY SITE and install using: sudo dpkg -i astap_armhf.deb && sudo dpkg -i h17_star_database_mag17_astap.deb. Instead of magnitude 17 stars database you can install magnitude 18 stars database using h18_star_database_mag18_astap.deb.

The image is too large for my microSD card

If the image appears to be too big shrink it according to this example

How to connect to my wireless home network?

Wireless connection is predefined for you. Just edit it and change network name and password.

  • Right-click wireless icon on the taskbar
  • Select Edit connections
  • Double-click Wireless connection
  • Enter your network name in SSID field
  • Go to Wi-Fi Security tab
  • Enter your network password in Password field
  • Reboot

My Astroberry seems to be locked on 2.4GHz, how can I use 5Ghz WiFi ?

You need to set the WiFi country in raspi-config correctly. If this does not stick, check /etc/default/crda and add your country in that file.

I cannot login to astroberry HotSpot

Note that default keyboard layout used in the image is QWERTY. If you use other keyboard layout the password you type in might be different than you think e.g. for German keyboard it may become astroberrz (instead astroberry). Change your keyboard layout using raspi-config or gui_rc to aligh system configuration and your keyboard.

How can I change my regional settings or add support for my language?

The easiest way is to run raspi-config (console) and rc_gui (graphical UI). The latter is accessible in Menu / Preferences / Raspberry Pi Configuration

Screen resolution does not match my display. How can I fix it?

If your display cannot handle FullHD resolution (1920x1080) you need to either connect via web browser and set Local in sliding menu Settings / Scaling OR you need to change the system resolution by running raspi-config in terminal or Raspberry Pi Configuration from Prefferences menu.

What is the source of location data in GPS Panel and Astro Panel?

The panels use GPS readings for your location. If you don't have GPS the panel uses virtualgps provided with Astroberry Server. You can set your static location by editing /etc/location.conf file or using Preferences/Geographic Location menu. After the change reboot or restart virtual GPS by running: sudo systemctl restart virtualgps.service

My mount is not recognised in Kstars/Ekos?

Most mounts nowadays use a USB to serial converter for connecting. So you need to supply the correct device name and baud rate in the config, so check that. Sometimes it can happen that gpsd, the daemon handling gps recognises your mount as a gps-device. Try stopping gpsd by sudo systemctl stop gpsd.service and disabling it: sudo systemctl disable gpsd.service and reboot. If that‘s not it, check Jasem‘s tutorial on persistent serial ports, which shows all the commands to find out what‘s happening.

How can I login to default pi user account?

Pi user account is disabled for versions below 2.0.3. If you want to enable it run sudo passwd -u pi

Default pi account uses default password (raspberry), which should be changed for security reasons. Especially if you connect your system to the Internet and expose SSH service to public. Otherwise your system is vulnerable to a Raspberry Pi trojan.

You can lock and disable default pi account by running sudo usermod -L pi && sudo usermod -s /sbin/nologin pi

How can I download all astrometry files for offline platesolving?

sudo apt install astrometry-data-2mass astrometry-data-tycho2 downloads all files and stores them appropriately. You need to have ~30Gb of free space.

How can I have multiple astroberries on the same network?

Rename your Astroberry using raspi-config and edit the hostname, then restart. It is then available as newname.local. For changing the WiFi hotspot’s name, run nm-connection-editor. You can then make it connect to your other astroberry‘s WiFi.

Help and Support

Astroberry Server is free and open-source software. It does not come with commercial support. Lots of information on how to manage it can be found in this documentation and INDI Forum. Also make sure to review open issues at GitHub

Report a Bug

File any issues on GitHub