Adaption of the PI Reader and software (www.instructables.com/id/Raspberry-Pi-Python-EEPROM-Programmer/)

After reading the article (https://www.instructables.com/id/Raspberry-Pi-Python-EEPROM-Programmer/) I was fascinated with the fact that with my PI I could read data from an EPROM without any addition hardware and as I have no any experience with EPROMS or Python I thought this looks very straightforward. So I built the setup cabling and installed the python script. The script did read from the chip straight away but of course it only reads one address at a time. So after some googling about python syntax I changed the script to read all the addresses in one go and to pipe the output into a text file in blocks of HEX.

Now came the problems, I took a chip from my old C64 as a test. I then copied and pasted the raw hex output into a freeware Hex editor (HDX), but looking at the ASCII code it was 100% unreable. I knew there must be some short plain text in there and when I checked with an original bin file from the internet, this was the case but the data I had from my chip was garbage. To cut a long story short after a couple of days of trial and errors flipping various combinations of the address probing I finally managed get a result which matched the original bin file. Here is a revised working copy of the EEPROMr.py file. Many many thanks to the writer of the original file (Headamage), as without it I would of have no clue where to start. I have no idea why it did not work out of the box as all the pins matched up to the diagram but here is the modified script I now use. The coding is very rough and has not been cleaned up as it was only a proof of concept exercise. It has been tested with 27C256 and 27C512 chips (on the 512, A15 is achieved by the reuse of the WE(4) pin. My purpose was only to read a chip so 'write enable' is not needed). The script is hardcoded to read 65535 addresses, therefore for the 27C256 chip it reads and outputs the data twice.

revised EPROM read script
missing
revised version of the pin outs (taken from https://www.instructables.com/id/Raspberry-Pi-Python-EEPROM-Programmer)
missing
first result using the EEPROMr script
missing
final result using the revised script above
missing
breadboard
missing
breadboard