Sniffing USB with Cynthion ... and a Python software for the DP100

Reverse engineering USB protocols is fun. With a new tool from Great Scott Gadgets even more :). This helped to create a software to use the DP100 power supply under Linux.
I love Linux, but mostly software is only written for Windows and Mac. Unfortunately the USB data transfer protocols of products are often proprietary and so it's hard to write software for Linux. But with the USB sniffer Cynthion from Great Scott Gadgets it's getting easier.
Years ago I used usbmon with Wireshark. This works, but also all the packages of the host controller are logged and it is not so easy to find the right packages with the filter function.
Cynthion contains an FPGA that can be programmed for different tasks. I use it here as USB 2.0 protocol analyzer (Low, Full, and High Speed). The software Packetry is used to log the packages. It has an Hierarchical view, a Transactions view and a view for the Packets to get the right timing. These different views help to understand what's going on.
I sniffed the protocol of an Alientek DP100 power supply. This power supply is tiny and fits very well on your desk without taking space. But this comes with a cost. The display is tiny as are the buttons. So a software for my Linux desktop (in Python) would be cool.
On my homepage I describe how to use Cynthion to sniff an USB protocol. The proprietary protocol is less than self intuitive and even a bit strange. But yes I was successful (with a little help from the Internet) and the software is written.
Find everything about sniffing with Cynthion here:
https://www.weigu.lu/other_projects/usb/cynthion/index.html

I wrote a Python software for Linux to manipulate the DP100. It can surely also be used on Mac and Windows. My software covers the basics needed but can surely be enhanced e.g. to load batteries. So feel free to use and enhance it.
The Python software for the DP100 is on github:
https://github.com/weigu1/dp100_manipulator
and explanations about the software are here:
https://www.weigu.lu/other_projects/python_coding/dp100_manipulator/index.html
https://github.com/weigu1/dp100_manipulator
and explanations about the software are here:
https://www.weigu.lu/other_projects/python_coding/dp100_manipulator/index.html
Discussione (0 nota(e))