aquí tenéis mi mini tuto sobre este super módulo.
El multi-modulo integra los módulos NRF24L01 (muy utilizado en el mundo arduino y nanos chinos), A7105 (flysky y algunas variantes), CYRF6936 (dsm2 y devo), CC2500 (protocolo frsky). Aunque Banggood lo ha empezado a vender no hace mucho en plan industrial, la idea viene de uno de los usuarios ilustres del foro rcgroups, midelic, y del proyecto DeviationTX (enlaces al final del post).
Junto al módulo me llegó un conector de antena SMA hembra con pigtail y la antena correspondiente. Ojo con el tipo de conector porque no es fácil encontrar antenas decentes de 2.4Ghz con SMA macho (tengo pendiente cambiarlo...). También es importante tener en cuenta que su formato está pensado para montarlo en una cajita de tipo JR (ver enlaces al final).
- Caja JR impresa (lo tenéis en http://www.thingiverse.com/thing:1560786. Hay que hacer algunos apaños. Creo que se adapta mejor el que he puesto en los enlaces al final del post)
En teoría este módulo puede ser instalado en cualquier emisora con soporte PPM (mediante trainer port), donde la selección de protocolos se realizaría mediante un selector físico incluido de 15 posiciones que permitirían elegir hasta 15 protocolos o subprotocolos. En emisoras Turnigy 9X, 9XR, 9XR Pro, TH9X, 9Xtreme, Taranis... con firmware er9x, ersky9X o OpenTX puede funcionar en modo serial obteniendo una integración total con los menús para la selección en caliente del protocolo y la parametrización que sea necesaria. Con la opción en modo serial es importante tener en cuenta que el firmware de la emi debe estar actualizado para incluir en sus menús los nuevos protocolos.
Si vas a utilizar el modo serial, cuando recibas esta maravilla tienes que hacer un par de retoques que dependerán de la revisión del módulo.
- Primera revisión (que es la que tengo yo)
Soldar dos resistencias
Mi modificación:
Segunda revisión (supongo que será la que se está enviando desde hace un par de meses)
Puentear dos pequeños contactos
El funcionamiento en modo PPM eligiendo el protocolo o subprotocolo desde el selector físico aún no lo he probado. Por lo que he leído, en el fichero _Config.h se define una matriz donde elegirnos el orden de los 15 protocolos que queremos tener disponibles.
La actualización del firmware se realiza desde la interfaz ISP. Para poder actualizar las versiones del firmware del módulo de forma más cómoda tengo pendiente soldar los 6 pines para la conexión ISP mediante un programador USBASP a 3.3V o utilizando Arduino. En la imagen de la revisión 2, en la parte superior izquierda pueden verse los pines para la conexión.
Con las actualizaciones del firmware solucionan algunos bugs y pueden incluir el soporte a nuevos protocolos. Aunque están disponibles los binarios con cada última versión (ver enlaces al final) lo ideal es compilar el firmware incluyendo los protocolos que cada uno necesite (no es posible cargarlos todos...). Para la compilación podemos utilizar el IDE de Arduino.
Los pasos a seguir para la compilación y actualización serían los siguientes:
- 1. Descargamos el zip con el proyecto y fuentes: https://codeload.github.com/pascallange ... zip/master
2. Abrimos el proyecto Multiprotocol.ino con el IDE de Arduino y editamos el fichero _Config.h (en la pestaña con mismo nombre) comentando los protocolos que no necesitemos (anteponiendo // a cada línea a comentar). Durante la compilación aparecerá un error si los protocolos que se incluirán son demasiados y no caben en la memoria del Atmega328 que lleva el módulo. En este caso habrá que seguir eliminado protocolos y volver a probar la compilación.
En mi caso he elegido estos:Si vamos a utilizar el modo ppm (eligiendo el protocolo desde el selector físico) habría que adaptar el siguiente array a nuestras necesidades (este modo aún no lo he probado ):Código: Seleccionar todo
//Bellow is the list of all available protocols. Comment the protocols you are not using with "//" to save Flash space. #ifdef A7105_INSTALLED #define FLYSKY_A7105_INO // #define HUBSAN_A7105_INO #endif #ifdef CYRF6936_INSTALLED #define DEVO_CYRF6936_INO #define DSM2_CYRF6936_INO // #define J6PRO_CYRF6936_INO #endif #ifdef CC2500_INSTALLED #define FRSKY_CC2500_INO #define FRSKYX_CC2500_INO #define SFHSS_CC2500_INO #endif #ifdef NFR24L01_INSTALLED #define BAYANG_NRF24L01_INO #define CG023_NRF24L01_INO #define CX10_NRF24L01_INO // #define ESKY_NRF24L01_INO // #define HISKY_NRF24L01_INO #define KN_NRF24L01_INO // #define SLT_NRF24L01_INO #define SYMAX_NRF24L01_INO #define V2X2_NRF24L01_INO #define YD717_NRF24L01_INO // #define MT99XX_NRF24L01_INO #define MJXQ_NRF24L01_INO // #define SHENQI_NRF24L01_INO #define FY326_NRF24L01_INO #define FQ777_NRF24L01_INO #define ASSAN_NRF24L01_INO #endif
3. Verificar la conexión por ISP al módulo, que el selector físico esta en la posición 0 y que tenemos el programador en 3.3 voltios.Código: Seleccionar todo
//The table below indicates which protocol to run when a specific position on the dial has been selected. //All fields and values are explained below. Everything is configurable from here like in the Serial mode. //Example: You can associate multiple times the same protocol to different dial positions to take advantage of the model match (RX_Num) const PPM_Parameters PPM_prot[15]= { // Dial Protocol Sub protocol RX_Num Power Auto Bind Option /* 1 */ {MODE_FLYSKY, Flysky , 0 , P_HIGH , NO_AUTOBIND , 0 }, /* 2 */ {MODE_HUBSAN, 0 , 0 , P_HIGH , NO_AUTOBIND , 0 }, /* 3 */ {MODE_FRSKY , 0 , 0 , P_HIGH , NO_AUTOBIND , 0 }, // option=fine freq tuning /* 4 */ {MODE_HISKY , Hisky , 0 , P_HIGH , NO_AUTOBIND , 0 }, /* 5 */ {MODE_V2X2 , 0 , 0 , P_HIGH , NO_AUTOBIND , 0 }, /* 6 */ {MODE_DSM2 , DSM2 , 0 , P_HIGH , NO_AUTOBIND , 2 }, // option=2=6 channels @ 22ms /* 7 */ {MODE_DEVO , 0 , 0 , P_HIGH , NO_AUTOBIND , 0 }, /* 8 */ {MODE_YD717 , YD717 , 0 , P_HIGH , NO_AUTOBIND , 0 }, /* 9 */ {MODE_KN , WLTOYS , 0 , P_HIGH , NO_AUTOBIND , 0 }, /* 10 */ {MODE_SYMAX , SYMAX , 0 , P_HIGH , NO_AUTOBIND , 0 }, /* 11 */ {MODE_SLT , 0 , 0 , P_HIGH , NO_AUTOBIND , 0 }, /* 12 */ {MODE_CX10 , CX10_BLUE , 0 , P_HIGH , NO_AUTOBIND , 0 }, /* 13 */ {MODE_CG023 , CG023 , 0 , P_HIGH , NO_AUTOBIND , 0 }, /* 14 */ {MODE_BAYANG, 0 , 0 , P_HIGH , NO_AUTOBIND , 0 }, /* 15 */ {MODE_SYMAX , SYMAX5C , 0 , P_HIGH , NO_AUTOBIND , 0 } };
4. Lanzar la compilación y subirlo vía USBASP.
Me he decidido ha actualizar el firmware de la emi para acceder a algunos protocolos que necesitaba después de la actualización del módulo. Después de pegarme durante más de un día y perder algún que otro pelo he conseguido entender como añadir nuevos protocolos y subprotocolos al código del proyecto er9x. He partido de la rama en desarrollo del firmware er9x (donde si que se encuentra disponible el protocolo H8_3D que necesitaba para mi JJRC H20, que he probado que funciona) y he añadido el subprotocolo E010 al protocolo MJXQ (el Eachine E010 es un clone barato del nano Inductrix que estoy esperando recibir). No he podido realizar muchas pruebas con esta versión del firmware de la emi pero de momento pinta todo bien. Si alguno de vosotros quiere probarlo subo los binarios al foro pero tened en cuenta que es una versión alpha, muy verde.
Hace unas semanas publicaron la revisión 821 del firmware er9x que incluye los últimos modelos soportados por el multimódulo
Pues hasta aquí. Si os molan los juguetitos y queréis controlarlos desde una emi medianamente en condiciones os recomiendo este módulo, con el que hasta el momento no he tenido ningún problema.
Por supuesto, cualquier comentario o corrección será bienvenida. Iremos actualizando el post entre todos!!
Enlaces:
El prota: http://www.banggood.com/es/2_4G-CC2500- ... 48377.html
Hilo de la idea original: http://www.rcgroups.com/forums/showthread.php?t=2165676
Hilo en rcgroups: http://www.rcgroups.com/forums/showthread.php?t=2709034
Docu oficial: https://github.com/pascallanger/DIY-Mul ... -TX-Module
Protocolos: https://github.com/pascallanger/DIY-Mul ... Details.md
Fuentes del firmware del módulo: https://github.com/pascallanger/DIY-Mul ... Module.git
IDE Arduino: https://www.arduino.cc/en/Main/Software
Binarios: https://github.com/pascallanger/DIY-Mul ... e/releases
Fuentes del firmware de la emi: https://github.com/MikeBland/mbtx
Mod e instalación del firmware er9x: https://www.youtube.com/watch?v=mHdmA69bLHY
Caja JR: http://www.thingiverse.com/thing:1691786 (este diseño no lo he probado aún)