¿Cómo hacer que 32u4 arduino ignore DTR para USB Serial?

Los "puertos serie USB" basados ​​en 32u4 se niegan a enviar datos a la PC a menos que DTR en el lado del software de la PC esté configurado en alto. Si el software de la PC no establece DTR en verdadero (¿alto?), Entonces Serial.print() en Arduino entra en un agujero negro, y el software nunca obtiene las respuestas de Arduino.

Necesito obtener un paquete de software de terceros para trabajar con mi dispositivo basado en Arduino Pro Micro. Este software establece DTR en falso, lo que funciona bien con muchos otros dispositivos. Aruino recibe datos de la PC muy bien, solo se pierden las respuestas de arduino.

Resultado final... el software puede enviar comandos a mi dispositivo, pero debido a que el software de la PC no establece DTR en verdadero (¿alto?), mis respuestas Serial.print() no se reciben... el 32u4 esencialmente bloquea las respuestas porque DTR es bajo... a pesar de que los datos en serie van al arduino.

Los microcontroladores PIC y Arduino UNO, etc., no requieren que DTR se configure alto en el lado de la PC para que la serie USB funcione, los chips FTDI parecen ignorar DTR, por lo que este software de terceros funciona bien con la mayoría de los otros dispositivos.

Modificar mi hardware no es una opción. ¿Cómo puedo, en software/firmware, piratear este dispositivo para ignorar DTR para que este software de PC de terceros pueda ver los datos en serie del dispositivo?

Sospecho que el comportamiento tiene que ver con los controladores USB involucrados, no con el hardware conectado. Al menos en una Mac, la comunicación con un chip FDTI se ejecuta a través de un controlador diferente que la comunicación con un USB ATmega, y sospecho que es lo mismo para otras plataformas.
Se maneja dentro de la función Serial to USB incorporada del microcontrolador 32u4. Arduino no tiene acceso a DTR. QUIERO ignorar DTR, pero no puedo encontrar la manera de hacerlo. Los chips FTDI parecen (¿incorrectamente?) Ignorar DTR. La mayoría de los otros dispositivos para este propósito están basados ​​en FTDI, por lo que no ha sido un problema para el proveedor de software.
Entonces, ¿tiene un puente Arduino y Mega32U4 USB/Serial? ¿Tiene código fuente y pads de programación expuestos en el 32U4?
Es arduino pro Micro, conectado directamente a USB en Windows... en realidad, una placa personalizada con un pro micro montado.

Respuestas (1)

Hmm, luego de una revisión adicional, buscando en la fuente de Arduino el código de serie USB , me parece que la verificación DTR está en la línea 224 (primera línea de size_t Serial_::write(const uint8_t *buffer, size_t size)). No soy muy optimista acerca de deshabilitarlo (probablemente inundará algún búfer), pero podría valer la pena intentarlo.

Por mucho que odie decir esto, ya que es un truco feo, funcionó y es probablemente la mejor solución a mi problema. :-) Gracias.