Giter Site home page Giter Site logo

supersandro2000 / indi-rpi-radiotelescope Goto Github PK

View Code? Open in Web Editor NEW

This project forked from hangeza/indi-rpi-radiotelescope

0.0 1.0 0.0 540 KB

Control of a Radiotelescope built on RPi hardware platform and INDI-based driver as well as an observation task manager and measurement scripts.

License: GNU Lesser General Public License v2.1

CMake 12.35% C++ 80.02% Shell 5.01% C 1.18% Makefile 0.08% Python 1.37%

indi-rpi-radiotelescope's Introduction

PiRaTe - The Pi Radio Telescope

Overview

This is an all-in-one control system for an Az/Alt mount radio telescope originally written for the 3m radio antenna at the astronomical observatory in Radebeul/Dresden (Germany) but may be utilized for similar instruments. The main features are:

  • Based on Raspberry Pi (tested for model 4) connecting via GPIOs to easy-to-acquire ubiquitous periphery modules for motor control, position sensing, GPS reception, I/O, ADCs etc. The emplyed components and connections are documented here: https://oshwlab.com/antrares/pirate-mainboard
  • Abstraction to the hardware is managed through a custom Instrument-Neutral-Device-Interface (INDI) driver, which allows access to the scope through the quasi-standard XML-message-based INDI protocol. INDI is utilized in many remote observatories.
  • An observation task manager (Radio Telescope Task Scheduler - RaTSche) which runs as daemon and manages tasks such as measurements, parking, maintenance etc. New tasks are added through a message queue interface e.g. through the included command-line-interface (CLI) client which allows easy integration into web-based interfaces.
  • A collection of bash scripts which allow for more complex measurement tasks, i.e. 2d scans in horizontal and equatorial coordinates, transit scans, tracking measurements. The scripts are installed through CMake in the system's binary location together with indi-pirt and ratsche and are invoked by the ratsche daemon when required.
  • Four bash MQTT bridges which translate the indi and ratsche messages into an MQTT telemetry stream and vice versa: indi->MQTT, MQTT->indi, ratsche->MQTT and MQTT->ratsche
  • systemd service files for indiserver, ratsche daemon and the MQTT bridges to have the complete control chain started at boot time. These are installed into the according system locations by the cmake scripts, too.

Howto build and install PiRaTe

First, you need all the packages installed, that the driver depends on. Copy&Pasting following command line should do this job:

sudo apt install libindi-dev libpigpio-dev libpigpiod-if-dev libnova-dev libgsl-dev

Now, build and install the project:

  • checkout the main branch of this git repository: git clone https://github.com/hangeza/indi-rpi-radiotelescope.git
  • in the project dir mkdir build && cd build
  • cmake ../
  • make
  • sudo make install

The binaries, shell scripts and systemd unit files should then be installed in the appropriate system locations.

Prerequisites

The driver depends on the pigpiod daemon and indiserver which both must be installed and started first:

sudo apt install pigpiod indi-bin
sudo systemctl enable pigpiod.service && sudo systemctl start pigpiod.service

Activate and Start PiRaTe

Now activate the driver and ratsche via systemd services:

sudo systemctl enable indiserver.service && sudo systemctl start indiserver.service
sudo systemctl enable ratsche.service && sudo systemctl start ratsche.service

These steps have to be executed only once. The indi driver as well as the task scheduler should now be running which may be checked by:

systemctl status indiserver.service
systemctl status ratsche.service

The output should not contain any critical messages.

indi-rpi-radiotelescope's People

Contributors

antrares01 avatar hangeza avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.