Piloter un ZWO Seestar S30 Pro depuis Ekos via INDI

Contexte

Le Seestar S30 Pro de ZWO (voir la fiche matériel) est un télescope intelligent tout-en-un (monture, optique, caméra, traitement) qui expose une API ASCOM Alpaca en réseau (port 32323). Le projet gordtulloch/indi-seestar fournit des drivers INDI qui font le pont entre cette API et l’écosystème KStars/Ekos, permettant de piloter le Seestar comme n’importe quelle monture INDI classique.

Ce tutoriel couvre l’installation complète sur un Raspberry Pi dédié (utilisé ici comme passerelle réseau, pour ne pas charger le PC/StellarMate qui pilote déjà une autre monture) et la configuration côté Ekos, S30 Pro à l’appui.

Architecture :

1┌─────────────┐   WiFi/Alpaca    ┌──────────────┐   INDI/réseau   ┌─────────────┐
2│   Seestar   │ ───────────────▶ │ Raspberry Pi │ ───────────────▶│ Ekos/KStars │
3│  S30 Pro    │  port 32323      │  indiserver  │  port 7624      │             │
4└─────────────┘                  └──────────────┘                 └─────────────┘

Prérequis

  • Un Raspberry Pi (2/3/4, avec au moins 16 Go de carte SD pour la compilation) sur le même réseau que le Seestar
  • Raspberry Pi OS Lite (32 ou 64-bit selon le modèle de Pi)
  • Un poste avec KStars/Ekos pour le pilotage

1. Compiler libindi depuis les sources

⚠️ Le paquet libindi-dev disponible via apt sur Raspberry Pi OS est généralement trop ancien pour ces drivers récents (headers manquants). Il faut compiler libindi depuis les sources.

 1sudo apt-get install -y build-essential cmake git \
 2  libnova-dev libcfitsio-dev libusb-1.0-0-dev zlib1g-dev libgsl-dev \
 3  libjpeg-dev libcurl4-gnutls-dev libtiff-dev libfftw3-dev libev-dev
 4
 5cd ~
 6git clone https://github.com/indilib/indi.git
 7mkdir -p indi/build
 8cd indi/build
 9
10cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -DFIX_WARNINGS=OFF ..
11make -j2
12sudo make install

-DFIX_WARNINGS=OFF évite que GCC récent (14+) ne bloque la compilation sur des warnings de vieux drivers legacy sans rapport avec le Seestar.

2. Compiler les drivers Alpaca et Seestar

 1cd ~
 2git clone https://github.com/gordtulloch/indi-seestar.git
 3
 4cd indi-seestar/indi-alpaca
 5mkdir build && cd build
 6cmake .. && make -j2 && sudo make install
 7
 8cd ../../indi-seestar
 9mkdir build && cd build
10cmake .. && make -j2 && sudo make install

3. Lancer le serveur INDI

⚠️ Contrairement à ce que laisse penser le README du projet, il n’existe pas de driver indi_seestar_telescope séparé. Le pilotage de la monture passe par le driver générique indi_alpaca_telescope :

1indiserver -v indi_alpaca_telescope indi_seestar_ccd indi_alpaca_filterwheel indi_alpaca_focuser

4. Support de la double caméra (téléobjectif + grand-angle)

Le S30 Pro dispose de deux capteurs. Le driver indi_seestar_ccd code en dur son nom d’appareil INDI — lancer deux instances telles quelles crée une collision de nom. Il faut compiler une seconde instance sous un nom distinct :

1cp -r ~/indi-seestar/indi-seestar ~/indi-seestar/indi-seestar-wide
2sed -i 's/"Seestar CCD"/"Seestar CCD Wide"/' ~/indi-seestar/indi-seestar-wide/indi_seestar_ccd.cpp
3sed -i 's/indi_seestar_ccd/indi_seestar_ccd_wide/g' ~/indi-seestar/indi-seestar-wide/CMakeLists.txt
4sed -i 's/indi_seestar_ccd_wide\.cpp/indi_seestar_ccd.cpp/' ~/indi-seestar/indi-seestar-wide/CMakeLists.txt
5
6cd ~/indi-seestar/indi-seestar-wide
7mkdir build && cd build
8cmake .. && make -j2 && sudo make install

Lancement avec les deux caméras :

1indiserver -v indi_alpaca_telescope indi_seestar_ccd indi_seestar_ccd_wide indi_alpaca_filterwheel indi_alpaca_focuser

Configurer la seconde instance (Seestar CCD Wide) avec Device Number = 1 dans son panneau de connexion.

5. Configuration côté Ekos

RôleDriver
MountAlpaca Telescope
CameraSeestar CCD (+ Seestar CCD Wide)
Filter WheelAlpaca FilterWheel
FocuserAlpaca Focuser

Deux connexions à distinguer dans les panneaux :

  • Ekos → Pi : mode Remote, Host = IP du Pi, Port 7624
  • Driver → Seestar (dans chaque panneau de contrôle INDI) : Host = IP/hostname du Seestar, Port 32323

⚠️ Ne pas cocher “INDI Web Manager” si indiserver est lancé à la main sur le Pi (pas de service indiwebmanager) — ça fait échouer la connexion.

Persistance de la config Host/Port : remplir les champs ne suffit pas, il faut aller dans l’onglet Options du panneau du device, groupe Configuration, et cliquer Save.

Trains optiques (Optical Trains)

Nécessaire pour une monture partagée avec deux chaînes caméra distinctes. Specs du S30 Pro à saisir dans Telescope & Lens :

TéléobjectifGrand-angle
Aperture30 mm3.4 mm
Focal Length160 mm6 mm
Focal RatioF/5.3F/1.75
Champ de vue~4.6°~63°

6. Ouverture du bras à distance

Le Seestar replie son bras au repos. Park (fermeture) fonctionne correctement via Alpaca, mais Unpark seul ne rouvre pas physiquement le bras.

Solution : Unpark déverrouille la capacité de goto (sans bouger), et un Goto standard ouvre le bras en effet de bord. Pour un simple “réveil” sans déplacement significatif, viser l’horizon (altitude ≈ 0°) :

1from astropy.coordinates import EarthLocation, AltAz, SkyCoord
2from astropy.time import Time
3import astropy.units as u
4
5location = EarthLocation(lat=<latitude>, lon=<longitude>, height=<altitude_m> * u.m)
6obstime = Time.now()
7altaz = AltAz(az=<azimut_choisi> * u.deg, alt=0 * u.deg, location=location, obstime=obstime)
8radec = SkyCoord(altaz).icrs
9# radec.ra.deg / radec.dec.deg → à envoyer en goto (Ekos, ou via indi_setprop / pyindi-client)

Séquence : Unpark → Goto (RA/Dec calculés) → le bras s’ouvre et pointe.

Mode Alt-Az vs Équatorial

Le Seestar est nativement alt-azimutal. Un suivi équatorial sans rotation de champ nécessite une wedge (cale équatoriale) ou un montage sur monture équatoriale externe. La spécification Alpaca interdit par ailleurs le slew direct en coordonnées Alt/Az (CanSlewAltAz = False) — toute commande passe obligatoirement par RA/Dec, converties le cas échéant via astropy comme ci-dessus.

Limitations connues

  • Pas de slew Alt/Az direct (contrainte de la spécification Alpaca)
  • Roue à filtres/Unpark peuvent nécessiter une reconnexion manuelle selon la version de firmware
  • Projet indi-seestar encore jeune (drivers Seestar en qualité alpha) — suivre les issues GitHub avant mise à jour firmware

Références

comments powered by Disqus

Traductions: