
A UPS é comumente usada em aplicativos de servidor para proteger contra quedas de energia. Para aplicações domésticas, por exemplo, para proteger um NAS, existem pequenas fontes de alimentação ininterruptas (UPS), mas todas elas não têm a comunicação HID USB para desligar o NAS/servidor/host quando a bateria fica baixa. Para aplicações em pequena escala, como os produtos da Synology NAS que operam em 12V, atualmente não existe um produto da UPS capaz de amortecer a energia e se comunicar sobre o USB quando o nível da bateria fica criticamente baixo. Somente soluções de alta tensão (110V ou 230V) existem, que também incluem um inversor e, portanto, são muito menos eficientes e dominadas para um NAS de sinologia de 12V simples. Este é um UPS de código aberto simples, baseado em um STM32F405 e escrito em ferrugem.



A comunicação HID USB é baseada no excelente trabalho realizado por Abratchik para a plataforma Arduino aqui. O hardware é essencialmente apenas um circuito de carregamento onde a capacidade restante é monitorada pelo MCU.

Atenção! Esta PCB não contém um circuito de proteção contra bateria - se você deseja implementar um, basta usar a caixa da bateria Keystone 1047 em vez do Keystone 1048p e conectar um BMS 2S de fuga antes de conectar as baterias à PCB. O hardware pode ser encontrado na pasta de hardware, contendo arquivos de etapa para o caso, bem como os arquivos Eagle para o PCB.
Conecte a placa usando um V3 ST-Link (com TagConnect) a uma porta USB no computador. Certifique-se de alimentar a placa com um conector USB-C adicional. (ST-link não fornece energia)
Primeiro inicie o servidor Openocd em uma janela de terminal/console: openocd -f interface/stlink-v2-1.cfg -f target/stm32f4x.cfg
Flash/Execute o código no hardware usando:
cargo run --release
NOTA: A liberação é importante para o USB funcionar de maneira confiável!
Para configurar seu sistema, siga este guia!