This seems to be a common occurrence - the causes (possibly) being:
- Unplugging it too soon after programming it. Perhaps one should give it a slow "10" count before unplugging it?
- Changing more than one parameter at a time.
- Changing something other than the serial number.
- On the EEPROM chip, short the SCL and SDA pins (5 and 6) together while plugging it in - then removing the short and programming it.
- Shorting the SDA pin (pin 5) of the EEPROM to ground (pin 4) while plugging it in - then removing the short and programming it.
On a hunch I plugged in a "good" RTL SDR (one that I hadn't bricked) and downloaded the contents (using the "-r" option) and saved it with a .BIN extension as raw data using the same rtl_eeprom program. In looking at this file with a HEX/ASCII editor (such as the one built into the "PonyProg" program) I could see the data (some ASCII text) which seemed to comprise a device ID and the serial number.
Using a hot-air rework station I removed the 24C02B EEPROM (256x8) chip from the dongle and soldered it to an 8-pin DIP-to-SOIC-8 header and put it into a programmer. Interestingly, when I looked at the EEPROM's contents after having done this they were all zeroes - clearly something had gone wrong in the write process!
Importing the .BIN file into the programming software I changed the serial number to what I'd originally wanted it to be and programmed it, verifying that it "took". I then unsoldered the EEPROM from the header and put it back in the RTL-SDR dongle, again with the hot air rework tool.
Success! The dongle was working again - with the "new" serial number.
Anyway, it saved me $20 in not getting another dongle - not counting my time!
* * *
This is the contents of a .HEX file that can be programmed into the EEPROM on an RTL-SDR dongle to "un-brick" it. As noted above, you will need to be able to program the chip - probably out of circuit - to effect the repair.
Simply copy and past the hex data below into a plain text file and rename it with a .HEX extension:
In the above file, the serial number is in plain ASCII as "00001234" starting at address 0x37 with the last character at 0x45, skipping every other byte with a null (0x00) between each character. Again, I'd recommend using a .HEX editor with an ASCII pane such as the one in the "PonyProg" program to better-visualize its contents. There are clearly fewer than 256 bytes used which means the smaller (128x8) 24C01 EEPROM chip could have been used, so be sure to check which device is being used before programming.
This page stolen from ka7oei.blogspot.com