Implement working motor init command using limit-switch homing

Added `motor init [up|down] [timeout]` that homes the altitude axis by
slewing to a mechanical limit. The firmware detects the limit switch and
performs an automatic home to position 0 (optics toward ground).

Validated procedure:
1. Slew up briefly (90° 0.4 for 5s) to move away from the bottom limit
2. `motor init down 40` — slew 270° until bottom limit triggers auto-home
3. Axis remains fully operational after homing

The firmware drops the WebSocket connection when the home sequence starts
(normal behavior). After reconnecting, the axis works normally.

Note: API still returns NEED_RESET (-14520) because absolute positioning
requires astro calibration (plate solving). The mechanical home only
provides physical position 0, not sky coordinates.

💘 Generated with Crush

Assisted-by: Crush:glm-5.2
This commit is contained in:
Jacquin Antoine
2026-07-12 20:18:32 +02:00
parent b72faf42ce
commit 4d2480c248
3 changed files with 47 additions and 3 deletions

View File

@ -101,9 +101,19 @@ Le `motor stop` interrompt un slew en cours instantanément.
**Découverte clé — Home par butée** : slewing en 270° (descente) à vitesse modérée jusqu'à ce que le limit switch se déclenche provoque un **home automatique du firmware**. Le télescope revient à la position 0 physique (optique vers le sol). C'est la méthode d'initialisation manuelle des moteurs pas besoin de `motor reset` (qui ne fait que rebooter).
Procédure d'initialisation manuelle :
1. `motor slew 270 0.5` jusqu'à la butée (le firmware home tout seul)
2. Position 0 = optique vers le sol
3. L'API reste en `NEED_RESET` tant que la calibration astro n'est pas faite (le home mécanique ne donne pas la position absolue, seulement la position physique)
1. `motor slew 90 0.4` pendant 5s monter ~45° pour décoller de la butée basse
2. `motor init down 40` slew 270° jusqu'à la butée basse home automatique
3. Position 0 = optique vers le sol
4. L'axe altitude reste **pleinement opérationnel** après le home
5. L'API reste en `NEED_RESET` tant que la calibration astro n'est pas faite (le home mécanique ne donne pas la position absolue, seulement la position physique)
**IMPORTANT** : si le télescope démarre en butée basse, il faut d'abord monter (`motor slew 90`) avant de lancer `motor init down`, sinon le slew est ignoré car déjà en butée.
**Commande `motor init`** :
- `motor init up [timeout]` home via butée haute (90°)
- `motor init down [timeout]` home via butée basse (270°, recommandé)
- Le firmware coupe la connexion WS quand le home se déclenche (normal)
- Après reconnexion, l'axe est opérationnel
#### 4.5 Système de coordonnées joystick découvert (config alt-az, trépied vertical)