Como um fã de gadgets, às vezes eu me empolgo e desta vez eu comprei um robô aspirador Neato XV-11 (que por sinal funciona muito bem).
Agora, parece haver uma atualização de firmware para o dispositivo que tenho de fazer no Windows. No entanto, eu tenho um MacBook Pro 2008, então decidi usar o BootCamp.
Para fazer a atualização, você precisa de um cabo mini usb e conectá-lo ao seu robô. O aplicativo de atualização irá configurar uma conexão serial com o robô, que é emulado sob COM3 no meu caso.
Isso não funciona porque, no Windows, qualquer conexão serial com o dispositivo trava após o primeiro caractere enviado. Eu tentei eu mesmo com Putty e Hyperterminal para configurar uma conexão serial de teste (115200 baud). Eu quero digitar "help", que listaria os comandos robots, mas apenas o "h" é retornado para mim.
Se tentou o mesmo em OSX (com o terminal e o comando screen, /dev/ttsy.usbmodem662, as mesmas configurações do Windows) e tudo funciona bem (recebo a lista de comandos do robô suportados)!
Após a depuração com um monitor de comunicação serial no Windows, vi que a conexão ainda está aberta após o "h", mas o dispositivo não está enviando nada depois disso. Quando eu, então, desconectar a sessão, desconectar o USB e conectá-lo de volta, noto que o dispositivo reage de repente a todos os meus comandos anteriores. Um pouco como se estivesse em buffer (só posso ver isso por causa do logger serial).
Eu experimentei o XP SP3 (x86) e o Windows 7 (x64) com o Bootcamp, o Parallels e o VMware Fusion. Entrei em contato com o suporte ao cliente dele, mas ainda estou aguardando uma resposta técnica.
Atualização - tentativa de solução alternativa do FrankenSerial:
Em minhas tentativas desesperadas de consertar isso, tentei conectar o dispositivo de dentro do OSX por meio de um pipe para o VMWare. Você pode fazer isso com um programa unix chamado socat. Basicamente, ele abre um fluxo de leitura / gravação de /dev/ttsy.usbmodem662 para a porta COM1 do VMWare. Consegui me comunicar com o dispositivo na COM1 por meio dessa solução. Infelizmente, a ferramenta de atualização de firmware primeiro procura por um dispositivo USB chamado Neato XV-11 que é simulado em COM3. Mudar o Windows do COM1 para o COM3 não funciona nem (eles provavelmente enumeram os dispositivos usb, para que eles não precisem varrer todas as portas COM).
Alguma pista do que está acontecendo?
Esse é um problema conhecido do Windows (na Apple hw)?
De alguma forma, o USB - > Emulação serial no Windows parece quebrada com o meu hardware?