<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.recessim.com/w/index.php?action=history&amp;feed=atom&amp;title=Dump_EEPROM</id>
	<title>Dump EEPROM - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.recessim.com/w/index.php?action=history&amp;feed=atom&amp;title=Dump_EEPROM"/>
	<link rel="alternate" type="text/html" href="https://wiki.recessim.com/w/index.php?title=Dump_EEPROM&amp;action=history"/>
	<updated>2026-08-08T00:44:59Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://wiki.recessim.com/w/index.php?title=Dump_EEPROM&amp;diff=2839&amp;oldid=prev</id>
		<title>L0scher: /* Identify the device */</title>
		<link rel="alternate" type="text/html" href="https://wiki.recessim.com/w/index.php?title=Dump_EEPROM&amp;diff=2839&amp;oldid=prev"/>
		<updated>2025-03-16T21:25:03Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Identify the device&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 21:25, 16 March 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l33&quot;&gt;Line 33:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 33:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Double check your wiring before powering up the Raspberry Pi!&amp;#039;&amp;#039;&amp;#039; Failure do so can permanently damage either the Pi, your Pi power supply, the device to which you&amp;#039;re connecting &amp;#039;&amp;#039;or all three.&amp;#039;&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Double check your wiring before powering up the Raspberry Pi!&amp;#039;&amp;#039;&amp;#039; Failure do so can permanently damage either the Pi, your Pi power supply, the device to which you&amp;#039;re connecting &amp;#039;&amp;#039;or all three.&amp;#039;&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;One &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;addition &lt;/del&gt;connection is needed, which is to connect the microprocessor&#039;s #RESET line to a logic low to keep the processor in reset so that it does not interfere with the Pi reading the memory.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;One &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;additional &lt;/ins&gt;connection is needed, which is to connect the microprocessor&#039;s #RESET line to a logic low to keep the processor in reset so that it does not interfere with the Pi reading the memory.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Software ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Software ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>L0scher</name></author>
	</entry>
	<entry>
		<id>https://wiki.recessim.com/w/index.php?title=Dump_EEPROM&amp;diff=2837&amp;oldid=prev</id>
		<title>L0scher: Created page with &quot;A serial EEPROM is a small IC that stores data in a physically compact package.  These are often used in electronic equipment and it&#039;s useful to dump the contents of such devi...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.recessim.com/w/index.php?title=Dump_EEPROM&amp;diff=2837&amp;oldid=prev"/>
		<updated>2025-03-16T21:21:32Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;A serial EEPROM is a small IC that stores data in a physically compact package.  These are often used in electronic equipment and it&amp;#039;s useful to dump the contents of such devi...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;A serial EEPROM is a small IC that stores data in a physically compact package.  These are often used in electronic equipment and it&amp;#039;s useful to dump the contents of such devices to do a thorough job of reverse engineering.  &lt;br /&gt;
&lt;br /&gt;
== Using a Raspberry Pi ==&lt;br /&gt;
Because many of these devices are 3.3V parts, it&amp;#039;s often possible to dump the contents of such devices using nothing more than a Raspberry Pi, some micrograbbers and jumpers.  As an example of this, we&amp;#039;ll show the steps involved in using a Raspberry Pi Zero W to read the contents of the EEPROM in a L+G meter board.&lt;br /&gt;
&lt;br /&gt;
== Identify the device ==&lt;br /&gt;
The EEPROM in the L+G Focus meter is an Atmel (formerly Adesto) [https://www.digikey.com/htmldatasheets/production/1309927/0/0/1/at45db081d-datasheet.html 45DB081D], which is an 8-megabit flash memory that has a [https://en.wikipedia.org/wiki/Serial_Peripheral_Interface SPI bus] interface.  Since this part can be powered by 3.3V and the Raspberry Pi already has a SPI bus, all that&amp;#039;s required is to connect the two. &lt;br /&gt;
&lt;br /&gt;
Here is one way to do that:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Function !! EEPROM pin # !! Pi pin #&lt;br /&gt;
|-&lt;br /&gt;
| MOSI || 1 || 19&lt;br /&gt;
|-&lt;br /&gt;
| SCLK || 2 || 23&lt;br /&gt;
|-&lt;br /&gt;
| #RESET || 3 || VCC&lt;br /&gt;
|-&lt;br /&gt;
| #CS || 4 || 24&lt;br /&gt;
|-&lt;br /&gt;
| #WP || 5 || VCC&lt;br /&gt;
|-&lt;br /&gt;
| VCC || 6 || 17&lt;br /&gt;
|-&lt;br /&gt;
| GND || 7 || 25&lt;br /&gt;
|-&lt;br /&gt;
| MISO || 8 || 21&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Double check your wiring before powering up the Raspberry Pi!&amp;#039;&amp;#039;&amp;#039; Failure do so can permanently damage either the Pi, your Pi power supply, the device to which you&amp;#039;re connecting &amp;#039;&amp;#039;or all three.&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
One addition connection is needed, which is to connect the microprocessor&amp;#039;s #RESET line to a logic low to keep the processor in reset so that it does not interfere with the Pi reading the memory.&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
&lt;br /&gt;
Once this is all done reading the EEPROM is as simple as executing this command on the Pi:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;flashrom --read dump.bin -p linux_spi:dev=/dev/spidev0.0,spispeed=10000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The speed is specified in kHz, so this corresponds to 50MHz.&lt;/div&gt;</summary>
		<author><name>L0scher</name></author>
	</entry>
</feed>