There is a hardware design called „Willem Programmer“ which is continuously developed further by several people. It seems that the company „KEE Electronics“ provides the software and some hardware versions today. The original design may come from the company Sivava which also sells a version of the programmer.
I bought a Willem 5.0E Programmer from some chinese source. This hardware looks different from e.g. the kee one.
There are versions with parallel connector and others with pure USB connector. The parallel versions are cheaper.
The programmer comes with a software for windows. Before buying, I checked the Internet and found that there is a reimplementation for Linux, called „geepro„.
My version of the programmer is controlled via parallel port and uses a USB cable for power connection. So it can only be used with a PC that has a parallel port. I added a cheap PCI-card with a parallel connector to my PC, so the hardware setup is simple.
Just download the software (Link here). It must be compiled from source. The installation consists of three steps (configure, buiild, install). See its README file. If the configure part lists libraries that are missing, use your packaging tool to add these (development versions of) libraries. On a clean OpenSuse 13.1, I had to install 3 additional libraries.
After successful build, I installed the software to /usr/local. The install step listed an error „No such file or directory: ‚/usr/local/lib/geepro/drivers/altera_byteblaster.driver‘ but repeating the install step several times succeeded 🙂
Use geepro to control willem programmer
There seems to be no documentation for using geepro.
After installation of geepro, you can start the software by typing „/usr/local/geepro“. It comes up with a user interface. Select „Willem 4.0“ as programmer, select the device (for me „parallel port parport0) and test the connection. A LED should flash on the programmer and the test should give a „connection ok“ dialogue box.
Then Select a chip. After selection, the required switches are listed as a picture on the user interface („Chip“ tab). Adjust all switches as requested and then insert the chip. Then, its content can be read or written („Buffer“ tab).
The content can also be manipulated in several ways.
There is also a „HW Test“ pad. I haven’t used it so far.