Basándote en los mapeos que hay para el mando de xbox seguro que sacas muchas cosas.
El protocolo synscan es sencillo si tienes nociones de programación.
Si la configuración de tu mando permite llamar a un ejecutable (como , por ejemplo, un script en Powershell) es fácil hacer que cualquier botón haga cualquier cosa que haga la aplicación Synscan
Si no te apañas programando, pide por aquí , y si es rápido y factible seguro que lo sacamos en un rato entre todos.
Mis conocimientos de programación son escasos y se limitan a AutoHotkey, básicamente. De todos modos, me gusta cacharrear y aprovechar cualquier oportunidad para aprender. Eso que me has comentado me ha intrigado. No tengo ni idea de cómo funcionan las cosas en Android y por dónde se le puede meter mano.
De momento, como dije, tengo lo básico resuelto, que ya es algo, así que a continuación amplío y detallo la información para dárselo todo mascado a los que estén interesados.
El gamepad que me he comprado es el 8BitDo Micro. Lo tenéis en dos colores. Precio: 20€ en Amazon. La marca tiene otro modelo igual de pequeño llamado Zero 2 (con los bordes más redondeados) pero no lo recomiendo porque carece de muchos botones secundarios que hacen que funciones básicas requieran de acordarse de combinaciones de botones. Además, ese modelo no es compatible con el software del fabricante para el remapeo de botones.

Una vez se recibe el gamepad hay que ponerlo a cargar con un cable USB-C (incluido) durante una hora aproximadamente. Una vez cargado, lo encendemos con el botón home (el de los cuadraditos al lado de la estrella), seleccionamos el modo K (teclado) en el conmutador del canto inferior y presionamos durante un segundo el pequeño botón a su lado para la vinculación. En el móvil hemos de tener el bluetooth activado. El mando debe aparecer a los poco segundos. Le damos a vincular y listo.
Ahora necesitaremos descargar de la App Store del móvil el programma 8BitDo Ultimate Software. Una vez instalado, lo arrancamos y nos saldrá la imagen del mando. No recuerdo si pregunta algo más la primera vez. Luego, pinchamos en el boton home y ya estamos dentro. En el apartado Buttons vemos que tenemos todos los controles del mando. Simplemente pinchamos sobre el que queremos editar y elegimos de los diversos apartados (letras, números, símbolos, funciones, combinaciones de teclas...). Cuando lo tengamos listo, pinchamos en Sync to device y la configuración se grabará en el mando.

Para el caso que nos ocupa (el control del telescopio), yo he visto adecuado en primer lugar usar la cruceta para mover la montura. El uso que veo más práctico es a una mano, agarrando el mando en vertical, de manera que el pulgar queda muy cómodo para manejar la cruceta. Eso nos deja libre la otra mano para el móvil. Esto supone remapear la cruceta para que las direcciones se correspondan con lo deseado. Abajo (originalmente) sería remapeado a izquierda, izquierda a arriba, arriba a derecha y derecha a abajo. Esto sería (con el mando agarrado en vertical) exactamente lo mismo que usar las flechas táctiles de Synscan en el móvil. Sin embargo, yo he cambiado abajo a derecha y arriba a izquierda para que el movimiento de la montura no vaya invertido lateralmente, cosa que a mí no me parece intuitivo, aunque entiendo que es para representar la inversión lateral de los espejos.
Finalmente, dos funciones que podemos mapear sin problemas en el mando son las de subir o bajar la velocidad de movimiento de la montura. Yo he usado los botones Y y B respectivamente. Para ello hay que asociarles las combinaciones de teclas mayúscula + flecha derecha y mayúsculas + flecha izquierda.
Para el resto de botones sencillamente podéis ignorar las funciones que traigan asignadas de serie o hacer que no manden ninguna tecla asignándoles el control identificado como Nul.
La información de las teclas y sus funciones en Synscan la he sacado de su manual, que podéis encontrar aquí:
https://inter-static.skywatcher.com/downloads/synscan_app_manual_en_20230525.pdf. En el apartado Keyboard control dice:
When a user interface item has keyboard focus, it is highlighted, and it exclusively receives keyboard
input. For example, when a text field has focus, pressing the arrow keys moves the cursor inside the text
field. No other action, such as slewing, happens.
How to change focus:
- Touch or click a user interface item to give it focus
- Press F11 to give slew buttons focus
- Press TAB or Shift + TAB to move focus between items
When slew buttons have focus:
- A border of dashed line appears around the slew buttons
- Press and hold arrow keys to slew
- Press “+” or “-” key to change slewing speed
- Alternatively, press Shift + right arrow, Shift + left arrow to change speed
When any item has focus:
- Press F11 to show the slew buttons
- Press F10 to hide the slew buttons
A continuación viene un apartado llamado Gamepad control. Parece ser que con un mando de XBOX vienen preconfiguradas un montón de funciones. Entre ellas está la de confirmar el objeto centrado en el ocular (la estrellita que hay que pinchar en Synscan), que está asignada al boton L1. Podría ser una cosa interesante para poder mapear en mi mando, si supiera cómo (¿quizás con un emulador de mando de XBOX para Android, si es que tal cosa existe?). Otra función que se podría asignar es la de volver atrás en la interfaz, aunque teniendo el móvil a mano no lo veo tan interesante. ¿Alguna otra que veáis que sería de utilidad? Ésta es la lista del manual:
Gamepad should work on Android, iOS, and Windows, after it has been paired with the operating
system.
Xbox Gamepad input Function
LEFT, RIGHT, UP, DOWN buttons Navigate through UI components
A button Tap select UI component
B button Move back or cancel
X, Y button Change numeric values
Start button Connect to the mount
Select button Switch between tab pages
L1 button Confirm object centered in the eyepiece
L2 button Hide/Display the slew buttons
R1 button Open the Information page
R2 button Open the Tracking page
Left Joystick Slew the mount
Right Joystick – Left and Right Choose slewing speed
Right Joystick – Up and Down Change numeric values