Firmware personalizado ensina novos truques à placa de retransmissão USB
LarLar > Notícias > Firmware personalizado ensina novos truques à placa de retransmissão USB

Firmware personalizado ensina novos truques à placa de retransmissão USB

Dec 14, 2023

Se você está procurando uma maneira rápida e fácil de controlar alguns dispositivos do seu computador, uma placa de relé USB barata pode ser a solução ideal. Esses são dispositivos bastante simples, consistindo em pouco mais que um microcontrolador e um punhado de relés. Mas isso não significa que não há espaço para melhorias e, como [Michał Słomkowski] demonstrou recentemente, atualizar essas placas com um firmware personalizado permite que o usuário modifique sua funcionalidade padrão.

No caso dele, [Michał] queria construir um filtro de linha que cortasse a energia de todos os dispositivos conectados a ele quando o computador entrasse no modo de suspensão. Infelizmente, ele não podia apenas verificar se havia 5 V na linha, pois sua placa-mãe mantinha as portas USB ligadas o tempo todo. Mas com algumas modificações no firmware da placa de retransmissão, ele concluiu que seria capaz de detectar se havia alguma atividade USB observando o pacote de início de quadro que sai a cada milissegundo quando o barramento está ativo.

Agora [Michał] não está reivindicando ser a primeira pessoa a criar um firmware personalizado para uma dessas placas, na verdade, ele credita um projeto de firmware de código aberto existente como inspiração para seu trabalho. Mas ele criou um firmware GPLv3 totalmente novo para esses dispositivos ATtiny45, que inclui, entre outras melhorias, a versão mais recente do V-USB. Por acaso, o V-USB inclui detecção de pacote de início de quadro pronta para uso, o que tornou muito mais fácil implementar seu código de detecção de atividade.

Com o novo firmware atualizado para o chip da placa de relé, [Michał] o colocou em um gabinete e conectou as tomadas. Mas ainda faltava uma peça do quebra-cabeça. Parece que o Linux não enviará realmente os pacotes de início de quadro, a menos que esteja se comunicando ativamente com um dispositivo USB, como parte do chamado recurso de economia de energia "suspensão seletiva". Felizmente, há suporte para desabilitar esse recurso para dispositivos específicos com base em seu par de ID de fornecedor/produto, então, depois de um pouco de mexer no udev, tudo estava funcionando conforme o esperado.

Adoramos projetos de firmware personalizados aqui no Hackaday. Eles não apenas mantêm o software proprietário fora de nossos dispositivos, mas também desbloqueiam recursos novos e expandidos que, de outra forma, ficariam ocultos atrás de paywalls artificiais.