Jump to content

Recommended Posts

Does anyone happen to know if the EPROM chip in the 240W PSUs from the m17x-R2 can be extracted/de-soldered and placed inside of the 330W PSU to override the "unsupported adapter" errors when powering up the R2 w/o the 240W? From the research that I've been doing, both use the 1-Wire Design from Maxim Innovation. But what I cannot find are the internal pictures and schematics of the 330W PSU to even contemplate this as a viable mod.

Ideally, I'd like to have a lighter option than 2 x 240W PSUs to power my R2.

Thanks guys.

Link to comment
Share on other sites

  • Founder

Yeah 2x 240W are not portable at all... but I don't have a 330W PSU either so I can't really provide any guidance. Though it shouldn't be that hard to desolder the chip and test it... (given that you have a spare 330W avail)

Link to comment
Share on other sites

Just need to know if it's mechanically possible before I venture into it - if the pin count differs between the 240 and the 330 ID chips, then I'd have to look at other means such as acquiring, adjusting, and flashing the image from and to each PSU chip.

Link to comment
Share on other sites

Got a 330W PSU from Dell today. Tomorrow is a work day for me, but planning on taking it apart on Friday and checking the ID chip to see if it's the same pin count as the one in the 240W. If all looks promising, I'll transplant the chips and go from there.

  • Thumbs Up 6
Link to comment
Share on other sites

  • 2 weeks later...
  • 2 weeks later...

Sorry about that, got sidetracked on some other things. I ended up getting a 330W adapter from Dell and a spare 240W adapter off of eBay and opened both up. I found the ID chip which actually looked like a transistor and displaced the ID chip from the 240W to the 330W. It still threw the "unsupported adapter" warnings in the start-up, down-clocked everything in the Windows environment, and would not charge the battery. I did some further research about the 1-Wire platform from Maxim IC and found that in order for the ID to successfully transmit, it needs to have a certain resistance applied to it in a reverse bias.

I'm still researching and looking at what needs to get altered to successfully get the ID to transmit to the laptop - but it may not only be within the adapters that needs the alteration.

  • Thumbs Up 3
Link to comment
Share on other sites

  • 2 weeks later...
  • 4 weeks later...

Thank you @Nospheratu this is just what I have always been wondering about.

I suspect the resistor that is connected accross the chip determines the wattage of the PSU. If so, one could try to reverse engineer another PSU to see if it has a different resistor, or maybe even simpler, connect a variable resistor and see how the notebook behaves. But then again why make it so simple? The resistor probably has to match the ID chips programming or has nothing to do with it at all.

@svl7 please provide your opinion and/or investigate, because I don't have a Dell Notebook.

Link to comment
Share on other sites

I'm interested in this because I want to try two 7970ms. I can't afford it right now, but I've been messing with the adapter problem.

As we know, the power supply integrates a 1-wire EEPROM and the EC interrogates it to see if its valid or not. I sniffed the 1-wire bus with my logic analyzer when I powered up the board, here is the results:

0xCC - Skip ROM

0xF0 - Read memory command (if it's a 2501)

0x08 - First memory address byte

0x00 - Second memory address byte

0xFB - Should be a CRC of the previous three bytes

0x32 - (2)

0x34 - (4)

0x30 - (0)

Skip ROM means that it won't look for a specific ROM because there is only one device on the bus. Then it asks to read starting at 0x0080. The slave then outputs the checksum of the address and command to the master for verification. Then it starts reading out data as the master requests it. In this case it gets "240" and is done.

240 doesn't appear anywhere in the BIOS code, but it does appear in the BIOS settings screen. I don't know how the BIOS checks if its valid or not. I have yet to get a 330W PS and see what the requested string is.

An easy hack would be to reprogram the EEPROM in the 330W so that it returns 240 from the appropriate memory location. This is what I plan to test when I get a 330W supply. I'll have to build a 1-wire programmer since they are a little different.

Oh and the resistor doesn't really have a special value, it's just a pull-up to VCC since the bus is open-drain, and the devices can only pull it to ground.

  • Thumbs Up 7
Link to comment
Share on other sites

Wait a minute, you are saying, the 240 is actually encoded as ascii? So in order to make use of this information the computer(bios at this stage I guess) has to convert those ascii character to an int. Sounds like a job for an atoi-function or a lookup-table; If it is a lookup-table one could simply modify it, but what I really wonder about is how the computer makes use of this information, if it does at all.

Link to comment
Share on other sites

Well technically ascii characters are only 8-bit which is a char, an int is 16 bits. The BIOS probably just pulls in the three char values from the EEPROM to check and then display in the BIOS screen. I doubt it gets converted, but like you said there is no way to know. I've been staring at the EC code and comparing it to the datasheet hoping to find some connections, like this one and the PWM channels as well. So far I can't make sense of the EC code from the ROM. It doesn't match what is supposed to be there according to the datasheet. If ITE wasn't so tight lipped about their code maybe it could be disassembled.

Link to comment
Share on other sites

I wrote some code for my mbed and dumped the contents of the 1-wire EEPROM in my 240W power supply. Here is the output:

Read ROM:

0x09 0x1A 0xF8 0xB2 0x08 0x00 0x00 0x73

Read memory pages:

0x0000: 0x44 0x45 0x4C 0x4C 0x30 0x30 0x41 0x43

0x0008: 0x32 0x34 0x30 0x31 0x39 0x35 0x31 0x32

0x0010: 0x33 0x43 0x4E 0x30 0x4A 0x39 0x33 0x38

0x0018: 0x48 0x37 0x33 0x32 0x34 0x35 0x39 0x36

0x0020: 0x43 0x32 0x32 0x35 0x34 0x41 0x30 0x30

0x0028: 0x32 0x28 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF

0x0030: 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF

0x0038: 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF

0x0040: 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF

0x0048: 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF

0x0050: 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF

0x0058: 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF

0x0060: 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF

0x0068: 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF

0x0070: 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF

0x0078: 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF

Read status registers:

0xFC 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0x00

The string from memory page 1/2 in ascii form:

DELL00AC240195123CN0J938H7324596C2254A002

It's a DS2502 (Family code 0x09, the first byte of ROM). The datasheet indicates that the first two pages are write protected (0xFC). If the 330W PS is the same way, it won't be easily reprogrammable. However there is something about memory page redirection that I could possibly use to change the value returned for a given read address.

I will have to order a 330W PS to see if it is the same chip. I dumped the contents of a 90W dell PS, and got a different family code so I will need to figure out the part number of the 330W to see if it is reprogammable or would have to be replaced with one that's not write protected.

  • Thumbs Up 5
Link to comment
Share on other sites

Interesting I dont understand how any of you have this working but thats cool. So if one wanted you could use the 240w to get proper id by rubbing id cable together of the 330w adapter. So could you Parallel two adapters like StamatisX did but in this case two 330w in parallel and the 240w just around to start the proper charger id? Not saying anyone needs that but with people adding gpus like 680m and 7970m and add cpu overclock these lappies can surely push a 240watt and maybe push a 330w :)

Paranoid Galaxy S3 on Tapatalk 2

Link to comment
Share on other sites

Yeah, its really strange. By just rubbing the ID cable with the 330w ID cable it works.... I'm not familiar with electronics at all but the ID chip seems like a closed circuit not interacting with the PSU's circuit at all so I really don't understand why the simple swap of the chips isn't working.

Link to comment
Share on other sites

Can the voltage, resistance or any of those electronic factors be part of it? Could one id chip differ from the other in that way and by putting the other one in does not provide the proper signal? So then again i don't understand the rubbing two id cables works. It like its static and your transferring a specific static charge to the other one and they balance out. I would think swapping chips should work too.

Paranoid Galaxy S3 on Tapatalk 2

Link to comment
Share on other sites

I got a 330W power supply and dumped the 1-wire memory. It has the same structure as the 240 and 90 watt Dell models. It's also got the same family code as the 90 watt supply, 0x11. I haven't found out what that is yet, but it is compatible with the DS2502 that I have been working with.

I built a 1-wire programmer by modifying my mbed code for the write memory and status register commands, which was kind of a pain because of the requirement of the 480us 12V programming pulse. I'm going to write up a schematic and the code on my website so I can remember what I did.

Unfortunately, the status register bits for page protection are different in the 330W. Where the 240 write protected the first two pages of data, the 330 write protected the second two unused pages of data. That means I can't write the new data to a different page and use the page redirection bytes to update the memory contents. Since the memory is add-only, I can't change 330 into 240 either.

That means the 1-wire memory will have to be replaced with a new one that isn't write protected, so it can be programmed with the information from the 240W. A DS2502 is only about $2.50 at Mouser so I will probably get some.

I'm disappointed though because if the 330W supply had the same page protection as the 240W I could have programmed it and had it working without even cracking the case. I guess Dell must have figured out that was a weakness and fixed it.

  • Thumbs Up 2
Link to comment
Share on other sites

Well, I cracked open both of my power supplies and located the 1-wire EPROMs. The 330W is a DS2501, so there wasn't any room to reprogram anyway since that is a 512kb device. The 240W is an unmarked SOT-23 package on mine, but it returns the family code 0x09 so it should be a DS2502. I noticed that the PCB for the 330W had both SOT-23 and TO-92 package footprints available, so I transplanted the memory chip from the 240W to the 330W. The second ground pin is floating on the 330W PCB, I soldered it to the other ground pin on the package just in case.

My desk is a mess of circuit boards and test equipment and the power supply is completely open so I haven't plugged it into the laptop yet, but I successfully interrogated the 330W power supply and got the 240W data back. It should work now with the laptop thinking it's a 240W power supply. I'll try it tomorrow.

So I wonder what went wrong with the OP's chip transplant?

  • Thumbs Up 5
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.