I recently added a UPS to my server rack to keep my internet and home network running during a power outage. After unpacking it, I investigated its USB port and discovered it wasn’t for powering other devices. Instead, it connects to a host computer to provide information like battery charge status, remaining runtime, and current load.
I wanted to access this data without relying on third-party software, so I decided to see if I could reverse-engineer the protocol using Linux.



Oh it’d be a great learning exercise for sure, though for that I’d rather see someone read spec and put it into practice. Though that’d be more of a UPS than a USB exercise I guess.