EEPROM Dump File Help! - Page 1
Forum section: electronics / beginners

author: BarelyHuman
author_rank: Contributor
timestamp: August 04, 2024, 09:24:21 pm
content: I need help figuring out how to interpret dump file data!I'm working on a project that utilizes an S-24CXX series EEPROM (S24C02AD1Y1206). I am new to dump files and EEPROM programming but would like to learn to interpret the data and eventually be able to program my own data utilizing a T48 programmer. Currently I have been able to get Xgpro working to read the data off the chip (using the preset SEIKO S-24C02A @SOIC8) and then input the data into HxD. I am not sure how to do a byte swap with HxD or if i even need to byte swap the data. I will attach the dump data below. If it helps at all one of the numbers that should be stored on the chip is 628. I am hoping someone can point me in the right direction as to what i may be doing right or wrong and where i need to go from here. Thanks ahead of time!Edit:00 00 00 06 06 06 C7 C7 C7 00 00 00 00 00 00 0000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0000 00 92 27 06 96 27 06 04 00 00 00 00 00 00 0000 28 06 04 28 06 04 04 28 06 08 28 06 0C 08 2806 12 28 06 1A 12 28 06 16 28 06 04 16 28 06 2028 06 36 20 28 06 24 28 06 04 24 28 06 28 28 060C 28 28 06 32 28 06 1A 32 28 06 36 28 06 04 3628 06 40 28 06 76 40 28 06 44 28 06 04 44 28 0648 28 06 0C 48 28 06 52 28 06 1A 52 28 06 56 2806 04 56 28 06 60 28 06 36 60 28 06 64 28 06 0464 28 06 68 28 06 0C 68 28 06 72 28 06 1A 72 2706 76 27 06 04 76 27 06 80 27 06 F6 80 27 06 8427 06 04 84 27 06 88 27 06 0C 88 27 06 92 27 061A 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

author: wraper
author_rank: Unknown
timestamp: August 04, 2024, 09:33:23 pm
content: It's a totally worthless question. Interpret what? It's just some data, could be whatever. The only way to guess what it could mean is if you know what particular device does, and what say config it may store in EEPROM. It's not some program code which you could disassemble.

author: BarelyHuman
author_rank: Contributor
timestamp: August 04, 2024, 09:40:22 pm
content: The device is used to measure and display the rotational speed of rotating equipment and collects data on how fast the components are spinning. It also collects persistent running hours data.

author: wraper
author_rank: Unknown
timestamp: August 04, 2024, 09:48:39 pm
content: Then it may store some settings in there, and the data it collects. What, how and in which format it stores the data is completely arbitrary. The most efficient way is sniff with logic analyzer how it interacts with EEPROM when doing certain things, say saving particular settings. Also you could just change some settings and see what data changes.

author: BarelyHuman
author_rank: Contributor
timestamp: August 04, 2024, 10:06:55 pm
content: Thank for the reply. Is there any information I can collect with the code itself? I don't have access to a logic analyzer and am not sophisticated enough to use one (yet), but is any of the data going to be useful in figuring out what the coding scheme is or data ordering? I am looking for the persistent data mainly and the string 628 (persistent hours) shows up a lot in little endian. if it helps at all the device was manufactured in japan around 2006-2007.00 00 00 06 06 06 C7 C7 C7 00 00 00 00 00 00 0000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0000 00 92 27 06 96 27 06 04 00 00 00 00 00 00 000028 060428 0604 0428 060828 060C 0828061228 061A 1228 061628 0604 1628 062028 0636 2028 062428 0604 2428 062828 060C 2828 063228 061A 3228 063628 0604 3628 064028 0676 4028 064428 0604 4428 064828 060C 4828 065228 061A 5228 0656280604 5628 066028 0636 6028 066428 06046428 066828 060C 6828 067228 061A 72 2706 76 27 06 04 76 27 06 80 27 06 F6 80 27 06 8427 06 04 84 27 06 88 27 06 0C 88 27 06 92 27 061A 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00Edit:I will try adding hours to the device by inputting a signal to the speed trigger and get the value to 629 or higher and compare the new dump, maybe this will help determine if this is faulty thinking

author: JustMeHere
author_rank: Frequent Contributor
timestamp: August 04, 2024, 10:32:52 pm
content: Have you tried to analyze the data with a Hex Editor? I see some file separator records and small data chunks. Believe it or not, the "non-printable" characters show up a lot in data and provide a very good hint about the data.

author: BarelyHuman
author_rank: Contributor
timestamp: August 04, 2024, 10:38:37 pm
content: Im not very good with HxD yet, still learning and watching videos, but here is a screen grab of the HxD output. Any insight is VERY welcome!

author: ledtester
author_rank: Super Contributor
timestamp: August 05, 2024, 12:34:02 am
content: What is the device?Is "628" a decimal or hexidecimal number? What is it suppose to represent ("presistent hours")?One thing you could do is first take a snapshot of the EEPROM. Then run it for some length of time and take another snapshot and compare. Maybe only a few bytes change.If I was really desperate I would replace the EEPROM with a blank one (all FF's) and see what happens. The EEPROM might get initialized when you turn on the device.Of course, I'd only do this if I was pretty sure this wouldn't cause any damage to the device or other equipment.What is the device???

author: BarelyHuman
author_rank: Contributor
timestamp: August 05, 2024, 01:06:22 am
content: QuoteThe 628 is displayed as a whole number representing the devices operating hours , i believe it has a 4 digit display (8888) but the thousands digit is not illuminated until it reaches 1000+ hours. Its a tach for an old marine engine. I have a second one i may pull apart and read the data off of. Im trying to figure out if I can match the hours on both devices, one is reading much lower as it was disconnected for a long time. I was thinking about putting a new chip on the board but I want to understand what im doing before i try and put a new chip in. Im not even sure if I can write to this EEPROM yet but it would be nice to have a matching set.

author: perieanuo
author_rank: Frequent Contributor
timestamp: August 05, 2024, 05:29:10 am
content: hi, you didn't attach the hex file, forcing us to make a file with your data.anyway, a programmer can do whatever he wants when he save data into eep, but in this case i doubt he scrambled anything, so chances you get values from whatever parameter/read value converted to hex are great.

author: m k
author_rank: Super Contributor
timestamp: August 05, 2024, 10:54:37 am
content: Ring buffer.Start, end and how many ticks.00 00 00 06 06 06 C7 C7 C7 00 00 00 00 00 00 0000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0000 0092 27 0696 27 06 0400 00 0000 00 00 0000 28 0604 28 06 0404 28 0608 28 06 0C08 28 0612 28 06 1A12 28 0616 28 06 0416 28 0620 28 06 3620 28 0624 28 06 0424 28 0628 28 06 0C28 28 0632 28 06 1A32 28 0636 28 06 0436 28 0640 28 06 7640 28 0644 28 06 0444 28 0648 28 06 0C48 28 0652 28 06 1A52 28 0656 28 06 0456 28 0660 28 06 3660 28 0664 28 06 0464 28 0668 28 06 0C68 28 0672 28 06 1A72 27 0676 27 06 0476 27 0680 27 06 F680 27 0684 27 06 0484 27 0688 27 06 0C88 27 0692 27 06 1A00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

author: BarelyHuman
author_rank: Contributor
timestamp: August 05, 2024, 11:15:10 am
content: Thanks! That was a huge help! I did some reading and looked at the code related to the circular buffer pattern and isolated the strings related to 628. If I wanted to change the output to say 500 instead of 628 does the following code look about right? I’ll post the dump files when I get back to my computer later today.00 00 00 06 06 06 C7 C7 C7 00 00 00 00 00 00 0000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0000 0092 1F 0696 1F 06 0400 00 0000 00 00 0000 28 0604 28 06 0404 28 0608 28 06 0C08 28 0612 28 06 1A12 28 0616 28 06 0416 28 0620 28 06 3620 28 0624 28 06 0424 28 0628 28 06 0C28 28 0632 28 06 1A32 28 0636 28 06 0436 28 0640 28 06 7640 28 0644 28 06 0444 28 0648 28 06 0C48 28 0652 28 06 1A52 28 0656 28 06 0456 28 0660 28 06 3660 28 0664 28 06 0464 28 0668 28 06 0C68 28 0672 1F 0676 1F 06 0476 1F 0680 1F 06 F680 1F 0684 1F 06 0484 1F 0688 1F 06 0C88 1F 0692 27 06 1A00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

author: m k
author_rank: Super Contributor
timestamp: August 05, 2024, 11:32:00 am
content: 628 is a decimal value, so 500 would be 00 05.Leftmost is also quite possibly a decimal of 1/100.How buffer is filled is another thing.

author: ledtester
author_rank: Super Contributor
timestamp: August 05, 2024, 11:44:51 am
content: Quote from: BarelyHuman on August 05, 2024, 11:15:10 amI would just change all of the 06 bytes in the third column to 05. I would expect the output should be "528".However, the presence of the "1F 06" byte sequences raises some questions as to whether "628" is a decimal value or not.

author: m k
author_rank: Super Contributor
timestamp: August 05, 2024, 04:00:49 pm
content: Maybe it's not a ring buffer.Maybe all positions are static and leftmost values also.If so then it continues from 72 27 06 and replaces 27 to 28.Initial speed would be 04 but next F6 possibly something else.It's also pretty fond of number 4.

author: BarelyHuman
author_rank: Contributor
timestamp: August 05, 2024, 05:15:43 pm
content: I’m going to crack open the other device to give another data set to compare, hopefully it can give clues as to what is going on.

author: BarelyHuman
author_rank: Contributor
timestamp: August 05, 2024, 10:52:57 pm
content: I pulled apart 2 other devices and was able to get dump files on them, I also successfully cloned one of the devices onto another so the chip is not in a write protect mode. Here are the 3 dump files. The devices store 2 sets of hours data onto them, one is trip. Hopefully somebody can give me some insight into where to hours data is stored within the code. I labeled the files with their corresponding hours, the third device is set at 0 hours on the trip.

author: ledtester
author_rank: Super Contributor
timestamp: August 05, 2024, 11:32:41 pm
content: What's your ultimate goal?Have you run the device for an hour or two and compared how the EEPROM contents changed? I think that would be very helpful.

author: BarelyHuman
author_rank: Contributor
timestamp: August 05, 2024, 11:50:14 pm
content: I left it powered on via a benchtop power supply for well over an hour and the hours did not change, the trigger wire for the rpm must be involved in sending a signal to let the unit know it is “running”. I might pick up a signal generator and play with that a bit. My ultimate goal other than to match my pops old boat tachs, which I think I have been able to do just by cloning the data, is to understand the data and how and why it is stored the way it is and to have fun along the way. I played around with electronics and micro controllers a long time ago and thought you know I might be able to do something with this.

author: radiolistener
author_rank: Super Contributor
timestamp: August 06, 2024, 01:25:59 am
content: Quote from: BarelyHuman on August 05, 2024, 01:06:22 amIt looks like it store 628 in BCD format: 28 06With reverse byte order you will get 06 28...Your dump has a lot of copy for these values, I have no idea what is the reason to duplicate it.Maybe it stores some kind of log in eeprom with records and different records contains that value.Hex representation of 628 = 0x274, but there is no 02 and no 74 byte in your dump. So, it definitely not store it in hex format.

author: BarelyHuman
author_rank: Contributor
timestamp: August 06, 2024, 01:36:12 am
content: Quote from: radiolistener on August 06, 2024, 01:25:59 amI just tried changing all of the [28 06] values to [28 01] trying to get an output of 128 but something is going wrong with the buffer when I try to write to EEP and it fails the write.

author: wraper
author_rank: Unknown
timestamp: August 06, 2024, 11:14:10 am
content: Try selecting some another 24C02 ICs in programmer software. They're not exactly the same and may have some differences, especially in maximum page write size.

author: m k
author_rank: Super Contributor
timestamp: August 06, 2024, 11:46:36 am
content: 02 02 02 06 06 06 8F 8F 8F 00 00 00 00 00 00 0000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0000 0092 05 03 96 05 03 0496 05 03 00 06 03 9500 06 03 04 06 03 0404 06 03 08 06 03 0C08 06 03 12 06 03 1A12 06 03 16 06 03 0416 06 03 20 06 03 3620 06 03 24 06 03 0424 06 03 28 06 03 0C28 06 03 32 06 03 1A32 06 03 36 06 03 0436 06 03 40 06 03 7640 05 03 44 05 03 0444 05 03 48 05 03 0C48 05 03 52 05 03 1A52 05 03 56 05 03 0456 05 03 60 05 03 3660 05 03 64 05 03 0464 05 03 68 05 03 0C68 05 03 72 05 03 1A72 05 03 76 05 03 0476 05 03 80 05 03 F680 05 03 84 05 03 0484 05 03 88 05 03 0C88 05 03 92 05 03 1A00 00 00 00 00 00 00 00 00 00 00 00 00 00 0000 00 00 06 06 06 EA EA EA 00 00 00 00 00 00 0000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0000 0004 21 02 52 20 27 7208 21 02 56 20 27 7A12 21 02 60 20 27 5616 21 02 64 20 27 5620 21 02 68 20 27 6C24 21 02 72 20 27 7228 21 02 76 20 27 7A32 21 02 80 20 27 9636 21 02 84 20 27 9640 21 02 88 20 27 EC44 21 02 92 20 27 F248 21 02 96 20 27 FA52 21 02 00 21 27 7756 21 02 04 21 27 7760 21 02 08 21 27 4D64 21 02 12 21 27 5368 21 02 16 21 27 5B72 21 02 20 21 27 7776 21 02 24 21 27 7780 21 02 28 21 27 8D84 21 02 32 21 27 9388 21 02 36 21 27 9B92 21 02 40 21 27 F700 00 00 40 21 27 4604 00 00 44 21 27 4600 00 00 00 00 00 00 00 00 00 00 00 00 00 00

author: m k
author_rank: Super Contributor
timestamp: August 06, 2024, 06:13:45 pm
content: So first and second time triplets are separated.Below are 7th bytes laterally.The very fist 00 is an empty space of the original file.If only last file has zero trip its presence can be a bit mask of 3rd set of the beginning of the ROM.Triplets at the beginning can be a programming error, space is plenty, correction not needed.04 00 04 0C 1A04 36 04 0C 1A04 76 04 0C 1A04 36 04 0C 1A04 F6 04 0C 1A04 95 04 0C 1A04 36 04 0C 1A04 76 04 0C 1A04 36 04 0C 1A04 F6 04 0C 1A72 7A 56 56 6C72 7A 96 96 ECF2 FA 77 77 4D53 5B 77 77 8D93 9B F7 46 46

author: BarelyHuman
author_rank: Contributor
timestamp: August 06, 2024, 10:13:08 pm
content: Quote from: m k on August 06, 2024, 06:13:45 pmThanks this looks like you’ve found the scheme! I’m trying to understand how these strings of code correspond to the output of 628. I think 04 is an initialization but I don’t get how the data corresponds to specific numbers on the display.

author: m k
author_rank: Super Contributor
timestamp: August 07, 2024, 06:52:19 am
content: Our time markings are from Babylonians, but since Babylonians didn't need computers we better adapt a bit.Few simpler values are centi minute and milli hour.Order of numbers is an egg thing.(from Travels into Several Remote Nations of the World)Numbers are read from memory, not bit by bit but byte by byte.(maybe not literally anymore, by memory is still arranged like that)So what is last, little or big, defines endianness.#12 and #19 have more.Three 3rd triplet values are C7 8F EA.12*16 + 7 = 1998*16 + 15 = 14314*16 + 10 = 234First non zero after those is position 42 hex, 4*16 + 2 = 66 decimal.199-66 = 133143-66 = 77234-66 = 168All aremonikersmultiples of 7, so beginning of double centi time plus something.So it really is a ring buffer.Second triplets are 6, that can be a length of the data.E,wrong word.