ATTENTION: THIS VERSION OF cp210x-program IS NOT FULLY TESTED. IT MAY RENDER YOUR CP210x USELESS OR DESTROY IT.
Be aware that the current version is only tested on CP2102.
The goal of this library is to provide access to the EEPROM of an Silabs CP210x under Linux.
The CP210x is an USB-to-serial chip used in a lot of USB devices (similar to FTDIs and PL2303). The CP210x has a EEPROM on the chip which can be programmed via USB. Silabs provides already a library and gui programm to program this EEPROM, but only for windows.
This project uses results from monitoring the USB bus when the windows library programms an CP210x. The windows library was not disassembled for this protocol analysis.
When the programm is finished, a later goal would be to provide a library which can be used to access further functions of the CP210x like the general IO pins of the CP2103. The goal is not to provide an tty driver, such driver exists already for linux and BSD.
Since PyUSB is available on most Linux, Mac OS X and FreeBSD cp210x-program should run flawlessly on these platforms. It is also reported to work on Windows (unknown version). Currently it is tested on Linux 2.6 (Ubuntu) and Linux 3.0 (openSUSE).
If cp210x-program should run as non-root user, add the udev rule found in doc/45-cp210x-programming.rules to /etc/udev/rules.d. When devices with already programmed IDs are reprogrammed at this IDs to 45-cp210x-programming.rules.
$ cp210x-program --read-cp210x -F eeprom-content.hex
$ cp210x-program --read-cp210x -m 001/002
$ cp210x-program --write-cp210x -m 10C4:EA62 \ --set-product-string="Product String" \ --set-max-power=100 \ --set-bus-powered=no
hg clone http://cp210x-program.hg.sourceforge.net/hgweb/cp210x-program/cp210x-program/
The python package 'cp210x' and the python script 'cp210x-program' are provided under the terms of the GNU LGPL. See LICENSE.