Ingeniería inversa de un transmisor domótico RF 315Mhz


Tengo este control remoto y transmisor y quiero aplicar ingeniería inversa a las 2 señales de RF enviadas por el transmisor. Este es el tablero .
El tablero dice "ak-rk01se". También puedo abrir el transmisor y ver que tiene un chip PT2264 .

A mi disposición también hay un dispositivo de radioaficionado pirateado DVB-T. para que pueda ver todos los datos que salen de 315MHz.
Aquí hay un ejemplo de grabación del botón grande con demodulación AM. ¿
Alguien sabe cómo abordar esto?

Actualización, así es como se ve cuando lo importo y ejecuto una señal de normalización en audacia. La misma onda cuadrada se repite una y otra vez.Aucacity muestra una señal sana

La pregunta sigue siendo: ¿Cómo uso un transmisor de señal de RF para imitar esta señal? Tengo una raspberry pi y puedo conseguir un transmisor de RF.

¿Qué es exactamente lo que quieres hacer? ¿Emular el transmisor o algo más? ¿Qué quiere decir con decodificación CW en este contexto? ¿Convertiste la frecuencia a banda base? De todos modos, el chip solo proporciona una señal de banda base que luego debe multiplicarse por la portadora, por lo que esto facilita los análisis.
Quiero averiguar qué señal se está transmitiendo, luego usar algo como esto e imitar la señal actual con una Raspberry Pi. Quité la CW (onda portadora). Ya que logré decodificar la señal que está basada en AM.
No tengo tiempo para una respuesta completa en este momento, pero me parece que la mejor manera sería leer la hoja de datos de PT2264, comprender la forma en que genera la salida y luego averiguar la configuración de su dispositivo en particular utilizando datos capturados e inspeccionando las conexiones de los pines directamente. Luego, genere esos datos en R-Pi y obtenga un transmisor que pueda mantener la velocidad de datos requerida y use ASK. Finalmente, introduzca los datos en el transmisor y espere lo mejor.
@AndrejaKo lee la respuesta a continuación y mis comentarios, parece que no es ASK, sus ondas cuadradas digitales en AM.
@GuySoft: lo que ha descrito podría ser fácilmente ASK, es decir, ondas cuadradas digitales sobre AM. Sospecho que es ASK.
@GuySoft Me parece 2-ASK, pero estoy abierto a que se demuestre lo contrario. ¿Cuál es su definición de PEDIR y por qué esto NO sería PEDIR?
@AndrejaKo Si ASK son ondas cuadradas sobre AM, entonces no entendí ASK.
@GuySoft Well ASK es un tipo de modulación en el que tiene un número fijo de niveles de amplitud y la amplitud de la portadora cambia entre ellos. Cuando filtra el portador, obtiene azúcares de varios niveles. Lo que vinculaste no me parece simple PREGUNTAR. Parece que además del uso de ASK, también están usando codificación de línea. Puedes ver que al final de cada cero, hay una sección corta donde la amplitud es uno y al principio de cada uno, hay una sección corta donde la amplitud es cero. No recuerdo el nombre de ese código en particular en este momento...
@AndrejaKo ¿Estás seguro de que ese 'uno' adicional no es un error? Porque en el esquema de PT2264 no se menciona. ¿ Funcionaría un transmisor como este ?
@GuySoft Si se refiere extra oneal artículo que vinculó, no creo que sea un error. El artículo, por lo que puedo ver, no menciona que el transmisor usa PT2264, por lo que asumí que está usando otro circuito integrado. Dado el precio del módulo que vinculas, si yo estuviera en tu lugar, lo compraría y experimentaría. No hay mucha información sobre el módulo que vinculó en el comentario y el módulo que vinculó en cuestión, por lo que no veo una manera simple de decidir si funcionarán bien juntos hasta que lo intente.

Respuestas (3)

¿Qué tal hacer algo simple: simplemente conecte un PT2264 a la Raspberry PI! No tiene sentido reinventar la rueda.

Parece un chip relativamente económico y hace toda la modulación adecuada que desea. Todo lo que necesita hacer es averiguar exactamente cuál es la frecuencia de la portadora y conectar las cosas de manera adecuada.

Porque significa agregar interruptores lógicos, no pueden hablar porque el PT2264 usa 12V. Significaría construir un circuito mucho más complejo. Prefiero usar un módulo RF y mantener el control remoto intacto.
@GuySoft Bueno, depende de dónde estén tus puntos fuertes y cuánto tiempo quieras dedicar a esto. Para muchas personas, es más fácil hacer la conmutación que descubrir un esquema de comunicaciones de RF. La interfaz tampoco es tan difícil. Solo algunas resistencias y transistores. No digo que piratear un módulo RF sea malo, solo que no es la única solución válida.
Ya tengo la señal, lo único que me queda es ver cómo recrearla. Incluso sabemos por una de las respuestas su codificación. Usar un módulo de RF barato que sería mucho más simple, al menos para mí.
Lo hice funcionar al final usando este transmisor codificador TB217: cgi.ebay.com/ws/… Es básicamente un PT2264 con la placa lista

He hecho exactamente esto con un dispositivo similar. De hecho, estoy trabajando en una publicación de blog sobre ingeniería inversa, pero lamentablemente está baja en mi lista de prioridades y la lista es larga. :-(

Todos estos son parte de un grupo muy simple de transmisores y receptores de radio. No tienen ninguna inteligencia en ellos, por lo que no puede simplemente conectar un pin de transmisión UART o un pin de recepción y esperar que las cosas funcionen. Depende de usted enviar un flujo de datos bien formateado que permita al receptor mantener el bloqueo. Los métodos populares implican la codificación de bits en forma de Manchester o la utilización de codificación de restricción de longitud de ejecución, como 8b10b.

Parece que su sistema en particular está transmitiendo de manera similar al mío; un tiempo de bit constante y un '1' largo o un pulso '1' corto para indicar los dos niveles lógicos. Esta es una implementación de codificación de encendido y apagado muy simple y es bastante fácil de crear y decodificar con cualquier microcontrolador. Es más simple que la codificación de Manchester o los códigos de expansión como 8b10b, pero paga por ello con un ancho de banda disponible reducido. Por lo general, esto no es un problema para este tipo de sistemas, ya que no está tratando de maximizar la transmisión de datos a través del canal.

La implementación de mi receptor particular utiliza un periférico Timer1 de AT90CAN128 configurado en modo de captura. Configuré un temporizador de ejecución libre 64us y luego, cada vez que la línea de recepción cambia de estado, el periférico del temporizador captura el valor del temporizador y señala una interrupción. A partir de ahí, solo miro para ver cuánto dura el tiempo 'alto' calculando el delta en los valores del temporizador y si está por encima de un umbral, es un 1, de lo contrario, es un cero (y si es demasiado corto lo considero ruido y lo ignoro) . Reúno estos bits cambiándolos a una variable y cuando he reunido suficientes, envío el valor de 32 bits a un pequeño software FIFO y le señalo a mi rutina principal que hay datos para procesar.

Para transmitir puedes hacer algo similar. Configure un temporizador con una tasa de tic que sea "agradable" para su aplicación en particular. (En la imagen, parece que unos 500 us son buenos, ya que el tiempo de bit parece ser de unos 2 ms y el ancho del "pulso corto" es de unos 500 us). Desea un tiempo de bits constante, por lo que debe transmitir uno de dos estados: alto durante 1,5 ms/bajo durante 0,5 ms o alto durante 0,5 ms/bajo durante 1,5 ms. Puede hacer esto con desbordamientos del temporizador o ir un poco más elegante y configurar el temporizador para establecer/borrar automáticamente el pin según el valor, si el periférico lo permite. Probablemente también pueda salirse con la suya abusando de la función PWM. Para simplificar, me aseguraría de que puedas dormir con precisión durante unos 500 us y simplemente explotarlo un poco. Haz que funcione, luego ponte elegante.

De todos modos, ahora a la ingeniería inversa. Recuerde que dije que estas radios son muy baratas y sencillas. Puede ver en el gráfico que hay una secuencia constante de 16 bits: 0101010101010101; esto es para permitir que el receptor se fije en la señal. Después de eso, parece que la presión real del botón probablemente envía el valor de 8 bits 00001101. Queda un bit 0, que posiblemente sea paridad o simplemente se use como un bit de parada. Podrás ver lo que está pasando si presionas otros botones. En mi particular aventura de ingeniería inversa para estos transmisores, realicé la ingeniería inversa del protocolo utilizado para transmitir la temperatura y la humedad. Supuse correctamente en el estado 1 y 0 (podría haberse invertido) y supuse incorrectamente en el orden de bits (era LSB, supuse que MSB). También hubo una "batería baja"

Recrear la transmisión es solo una cuestión de enviar los valores que ha realizado ingeniería inversa al módulo de radio "en bruto" utilizando uno de los métodos que describí anteriormente. Alimentas esos valores al módulo transmisor y ¡voilà!

De hecho, se parece al código de Manchester. ¡Bien! Así que ahora sabemos qué es la transmisión. Pero estoy contando 24 bits, no 16. Pregunta: ¿qué se puede usar para generar esa señal? No necesito Tx y Rx. Solo Tx, eso es solo para transmitir exactamente la misma secuencia de bits, para que el receptor haga su trabajo. Solo quiero imitar el control remoto.
Veo 25 bits: 8 pares "10" seguidos de 8 bits seguidos de lo que llamaré un bit de paridad. Y para transmitir, mencioné tres métodos posibles en la respuesta, con la sugerencia de simplemente golpearlo en un bucle. Para transmitir un 1, establezca la salida alta, dormir 1,5 ms, establecer baja, dormir 0,5 ms. Para transmitir un 0, establecer alto, dormir 0,5 ms, establecer bajo, dormir 1,5 ms.

Bien, hagámoslo bien. ¿Ha demodulado con éxito sus datos digitales y ahora desea poder recrear estos datos con precisión con una raspberry pi y acoplar ese flujo de datos digitales a un transmisor AM de 315 MHz?

¿Hasta ahora?

Para que esto funcione, debe estar seguro de la modulación de transmisión utilizada en el transmisor original; si es simple ASK (modulación por cambio de amplitud), entonces tiene una buena posibilidad de que funcione, pero debe ser preciso con la frecuencia de transmisión de su portadora o Es posible que su receptor no capte nada en absoluto. Debe solicitar el uso de un analizador de espectro para verificar la frecuencia precisa a la que transmite. Oye, puedes tener suerte, pero en mi experiencia probablemente no.

Si se trata de una forma más compleja de transmisión de AM, como portadora suprimida, entonces tiene pocas posibilidades de encontrar un transmisor estándar que haga el trabajo.

Cuando demodulo usando AM obtengo esta señal digital . Es bastante claro, ¡incluso puedes ver la modulación sinusoidal de la onda cuadrada! No es AFK ¿verdad? Solo está enviando ondas cuadradas digitales a través de AM.
Además, aquí hay una segunda señal (el otro botón). Se ve muy similar, excepto que hay dos "bits" que cambiaron.
Una cosa que no verá es la onda sinusoidal de la portadora, que es demasiado alta y es poco probable que su captura de pantalla muestree más de 630 millones de muestras por segundo para evitar el alias. Es factible, pero obtenga la frecuencia portadora correcta.