EVGA

Helpful ReplyHot!My Arduino-based RAM SPD reader/writer (free and open source)

Page: << < ..6789 > Showing page 6 of 9
Author
ryanly88
New Member
  • Total Posts : 4
  • Reward points : 0
  • Joined: 2022/12/15 03:05:11
  • Status: offline
  • Ribbons : 1
Re: Would anyone be interested in open source and free DDR4 SPD reader/writer? 2022/12/15 03:56:08 (permalink)
 
Can DDR5 SPD read/write operations be supported ?
 
DDR5 UDIMM SPD :  SPD5118
8 Kbit SPD (Serial Presence Detect) EEPROM with Hub function (SPD Hub) and integrated Temperature Sensor (TS)
Package: DFN8(2x3)    2.00x3.00x0.75 mm      0.50mm Pitch
 
NVM Map(8 Bits wide):
Device name       Device address        Buffer address            Describe
SPD5118             0x0000 – 0x03FF   0x0000 – 0x03FF         non-volatile memory
 
SPD5118  PINOUT
PIN1: LSDA
PIN2: HSDA
PIN3: HSCL
PIN4: LSCL
PIN5: VDDSPD 1.8V
PIN6: VSS GND
PIN7: VDDIO 1.0V
PIN8: HSA
 
ryanly88
New Member
  • Total Posts : 4
  • Reward points : 0
  • Joined: 2022/12/15 03:05:11
  • Status: offline
  • Ribbons : 1
Re: Would anyone be interested in open source and free DDR4 SPD reader/writer? 2022/12/15 04:01:17 (permalink)
DDR5  UDIMM  SPD related pins
PIN1,145,146: PMIC VIN  5.0V
PIN148: HSA
PIN4:    HSCL
PIN5:    HSDA
PIN151: PWR_EN 3.3V
PIN147: PWR_GOOD
Mr. Fox
iCX Member
  • Total Posts : 252
  • Reward points : 0
  • Joined: 2012/03/24 12:50:21
  • Location: AZ - America's Blast Furnace
  • Status: offline
  • Ribbons : 3
Re: Would anyone be interested in open source and free DDR4 SPD reader/writer? 2022/12/15 05:33:57 (permalink)
Wow, this is amazing. I had not seen it until now. Great job. I am glad to see it works for DDR5. Will work for programming user-defined XMP profiles too?

Wraith // EVGA Z690 Dark K|NGP|N | 13900K | MSI 4090 Suprim X | 32GB DDR5 | EVGA SuperNOVA 1600 P2 | HC-500A Chiller | MO-RA3 360 D5*3 || EVGA DG-86
Banshee // ASUS Z690 Apex | 13900KF | ASROCK 6900 XT OC Formula | 32GB DDR5 | Corsair RM1200x SHIFT | XT45 1080 Nova D5*2 || Corsair 5000D Airflow
Half-Breed // Precision 17 7720 | 7920HQ (BGA filth) | Quadro P5000 16GB (MXM) | 32GB DDR4 || Grade A Off-Lease Refurb

 
a213m
SSC Member
  • Total Posts : 877
  • Reward points : 0
  • Joined: 2006/02/08 11:10:24
  • Location: 🇨🇦
  • Status: offline
  • Ribbons : 20
Re: Would anyone be interested in open source and free DDR4 SPD reader/writer? 2022/12/15 15:33:07 (permalink)
Currently SPD-RW has limited software DDR5 support (Vendor, Model, and CRC information).
 
Arduino DDR5 support will be updated once I get my hands on DDR5 modules. (No ETA yet). I have a prototype ready, but schematics and firmware won't be published until it is tested.
 
As for SMBus DDR5 reading/writing there's no support for now. If you have an Intel or AMD DDR5 system and can run test on your system to speed up DDR5 support, let me know via PM or here.

My free and open source SDR-DDR5 SPD reader/writer with write protection capabilities
 
New: 13900K, Z790 HERO, 2x32GB 6800C32, 4090, 2TB SN850, AX1600i
Old: 10980XE, X299SE2, 8x8GB 4000C15, 4090, 2TB SN850, AX1600i
a213m
SSC Member
  • Total Posts : 877
  • Reward points : 0
  • Joined: 2006/02/08 11:10:24
  • Location: 🇨🇦
  • Status: offline
  • Ribbons : 20
Re: Would anyone be interested in open source and free DDR4 SPD reader/writer? 2022/12/31 15:34:22 (permalink)
Happy new year, everyone!
 
Here's a new version with quite a changelog: 20221231
 
GUI
  • Fixed: Not responding to save shortcuts keys (Ctrl+S) unless the File menu was opened prior to saving loaded data
  • Fixed: Imported SPD CRC status information not being updated after closing previously edited SPD without saving
  • Fixed: Program closing when selecting to save changes before exiting and closing Save File dialog without saving
  • Fixed: Error after clicking on an empty ASCII area, if loaded data size wasn't a factor of number of bytes per row
  • Fixed: Editor preview not reflecting "Highlight similar bytes" option change in real time in the Settings window
  • Fixed: Mouse back and forward buttons activating panel under the pointer when navigation history is empty
  • Fixed: Menu and toolbar Save buttons becoming unavailable for imported data after opening the File menu
  • Fixed: Screenshot tool not capturing updated window contents after restoring down the maximized window
  • Fixed: Editor not scrolling to cursor position outside of visible area when manually going to the same offset
  • Fixed: New Name text field position in the Rename Arduino device dialog window after it was being resized
  • Fixed: Navigation history losing first cursor position and active panel when going back after going forward
  • Fixed: All right-aligned check boxes in the Settings window are perfectly aligned regardless of DPI settings
  • Fixed: Navigation menu items showing up as available under the Edit menu after clearing editor contents
  • Fixed: Check RSWP Status window displaying incorrect device name when connected to SMBus controller
  • Fixed: Edits made to imported or pasted data were not saved when saving to a local file for the first time
  • Fixed: Duplicate log entries showing up in the event log when importing SPD data from non binary files
  • Fixed: Screenshot tool capturing black borders around the maximized window in Windows 7, 8, and 8.1
  • Fixed: Program not starting in Windows XP, Vista, 7, 8, and 8.1 if custom DPI font settings were used
  • Redesigned: Arduino and Smbus related settings moved to Hardware tab in the Settings window
  • Redesigned: Replaced device type selection with a drop-down menu in the Select Device dialog
  • Redesigned: Dragging file onto the editor will activate and bring the main window forward
  • Redesigned: Data editor side offset numbers are not shown, when no data is loaded
  • Added: Status displaying the number of unsaved changes in the Settings window
  • Added: Revert button to undo unsaved changes in the Settings window
  • Added: Option to hide copy preview in the Settings window
  • Added: Option to toggle main toolbar buttons captions
  • Added: Pascal and Java byte array data copy formats
  • Added: CPU-Z text report SPD import support
  • Added: DDR5 XMP & EXPO CRC validation
  • Improved: Arduino connection time
  • Improved: Startup loading time
  • Improved: Performance
  • Improved: Stability

CLI

  • Updated: Compatibility
 



Although the changelog is huge, most of the fixes are related to the the new editor I introduced in the last version. I also fixed UI scaling under non standard DPI settings.
 
There are a couple of new features I'd like to point out: CPU-Z text report import and additional DDR5 CRC validation.
 
To use CPU-Z report import feature, start CPU-Z, save report as a text file (click Tools and select "Save report as TXT"). Then open the text file in SPD-RW. If you have multiple SPDs present, you'll be asked to choose SPD number, just like as if you were to read SPD from Arduino or Smbus with multiple devices on the same bus.
 
DDR5 SPDs can feature up to 5 XMP profiles, and/or 2 Expo profiles. Unlike DDR4, which used 2 CRCs to validate base configuration and block 1 data, DDR5 uses 1 CRC to validate base data. However, this time around, XMP 3.0 and AMD Expo profiles, if present, are also validated using the same algorithm to ensure data integrity. This release will validate all CRCs present in DDR5 SPD dumps.

My free and open source SDR-DDR5 SPD reader/writer with write protection capabilities
 
New: 13900K, Z790 HERO, 2x32GB 6800C32, 4090, 2TB SN850, AX1600i
Old: 10980XE, X299SE2, 8x8GB 4000C15, 4090, 2TB SN850, AX1600i
a213m
SSC Member
  • Total Posts : 877
  • Reward points : 0
  • Joined: 2006/02/08 11:10:24
  • Location: 🇨🇦
  • Status: offline
  • Ribbons : 20
Re: Would anyone be interested in open source and free DDR4 SPD reader/writer? 2023/01/20 15:05:49 (permalink)
New version: 20230120
 
Reuploaded: minor fix - explorer wasn't opening after saving firmware, download again. :)

GUI

  • Added: Drag & drop file support under admin privileges in Windows Vista and higher w/ UAC enabled
  • Added: Found Arduinos firmware version number in Select Device window
  • Added: Scroll lock functionality
  • Improved: Restored originally used default non-ASCII placeholder
  • Improved: Performance when handling large file size errors
  • Improved: Arduino RSWP operations performance
  • Fixed: False file import entry added to event log after cancelling CPU-Z text report SPD importing
  • Fixed: Pressing save shortcut keys (Ctrl+S) saving opened file when no edits have been made
  • Fixed: Not responding to mouse navigation buttons, if pointer was outside of editable area
  • Fixed: Error message not displaying Arduino identifier upon EEPROM write failure
  • Fixed: Delay during closing program when Arduino auto connection is enabled
  • Fixed: Arduino RSWP capabilities polling while no slave devices are present
  • Fixed: New or reset Arduino name validation upon initial connection
  • Fixed: Misaligned characters in editor when using odd font sizes
  • Fixed: Cursor resetting position when changing font settings
  • Fixed: DDR5 SPD manufacturer ID and name detection

CLI

  • Added: Optional /nocolor command line switch to display SPD contents in monochrome
  • Added: Error messages are displayed when accessing SMBus without admin privileges
  • Fixed: Command line /scan ignoring specified SMBus bus number
  • Improved: SPD reading and writing performance
  • Updated: Info and help contents

SMBus

  • Fixed: Driver file extracting when running program without admin privileges
  • Fixed: Driver not stopping after quitting program
 
Notable improvements:
 
Starting with Windows Vista, Microsoft introduced UAC feature to improve OS security. When enabled, applications launched with higher privileges prevent drag-and-drop operation from applications launched with lower privileges. (You can try it yourself by launching notepad as admin, and trying to drag and drop a file from desktop or explorer into the main window - you will notice the operation is blocked.) This release modifies the behavior of the editor using ChangeWindowMessageFilterEx and ChangeWindowMessageFilter APIs to allow drag-and-drop operations under admin, which is required to access SMBus.
 
I also added a Scroll Lock functionality. When scroll lock is off, arrow keys move the cursor within the document. With scroll lock on arrow keys will keep cursor in place and will scroll document up and down, like in MS Excel.
 
Good things will come to those who wait. 🕔
 
Edit: typos
post edited by a213m - 2023/01/21 17:47:49

My free and open source SDR-DDR5 SPD reader/writer with write protection capabilities
 
New: 13900K, Z790 HERO, 2x32GB 6800C32, 4090, 2TB SN850, AX1600i
Old: 10980XE, X299SE2, 8x8GB 4000C15, 4090, 2TB SN850, AX1600i
Cool GTX
EVGA Forum Moderator
  • Total Posts : 30975
  • Reward points : 0
  • Joined: 2010/12/12 14:22:25
  • Location: Folding for the Greater Good
  • Status: offline
  • Ribbons : 122
Re: Would anyone be interested in open source and free DDR4 SPD reader/writer? 2023/01/21 17:36:16 (permalink)
Thank you for continuing to post updates

Learn your way around the EVGA Forums, Rules & limits on new accounts Ultimate Self-Starter Thread For New Members

I am a Volunteer Moderator - not an EVGA employee

https://foldingathome.org -->become a citizen scientist and contribute your compute power to help fight global health threats

RTX Project EVGA X99 FTWK Nibbler EVGA X99 Classified EVGA 3080Ti FTW3 Ultra


Delirious
EVGA Forum Moderator
  • Total Posts : 17474
  • Reward points : 0
  • Joined: 2007/11/15 13:34:04
  • Location: at my computer
  • Status: offline
  • Ribbons : 61
Re: Would anyone be interested in open source and free DDR4 SPD reader/writer? 2023/02/03 20:59:16 (permalink)
Thanks!

"Be quick to listen, slow to speak and slow to anger" 
Affiliate Code XZUMV9TJW5
Associate Code: 7PM43CU71IB2IAP
education may be expensive but wait until you get the bill for ignorance
A wise man once said that we can't make anyone feel or do anything. We can throw things into the wind, but it's up to each person to decide how they want to react, where they want to stand when things fall.
a213m
SSC Member
  • Total Posts : 877
  • Reward points : 0
  • Joined: 2006/02/08 11:10:24
  • Location: 🇨🇦
  • Status: offline
  • Ribbons : 20
Re: Would anyone be interested in open source and free DDR4 SPD reader/writer? 2023/02/05 16:14:45 (permalink)
The update you all have been waiting for: 20230205
 

Core

  • Added: DDR5 support

GUI

  • Improved: RSWP report accuracy when multiple devices are present on the same bus
  • Fixed: Delay when switching between Arduino and SMBus in Select Device window
  • Fixed: Freeze when reading SPD from Arduino with multiple bus addresses
  • Improved: stability and performance in virtualized environments

CLI

  • Added: Mandatory address parameter when working with RSWP switches

Firmware

  • Improved: Performance and stability

Schematic

  • Improved: Stability and reliability
  • Removed: Optional modules
 
This release adds DDR5 support. This will let you read, edit, and write DDR5 SPDs, as well as toggle individual block write protection. The update requires new firmware, even if you don't need DDR5 support, because I updated protocol. The firmware is fully compatible with old schematic. The updated schematic will let you use DDR5 and any other RAM of previous generation simultaneously.
 

 
Stay tuned for updated guide.

My free and open source SDR-DDR5 SPD reader/writer with write protection capabilities
 
New: 13900K, Z790 HERO, 2x32GB 6800C32, 4090, 2TB SN850, AX1600i
Old: 10980XE, X299SE2, 8x8GB 4000C15, 4090, 2TB SN850, AX1600i
noisy ghost
New Member
  • Total Posts : 3
  • Reward points : 0
  • Joined: 2023/02/23 04:20:46
  • Status: offline
  • Ribbons : 0
Re: Would anyone be interested in open source and free DDR4 SPD reader/writer? 2023/02/23 05:26:47 (permalink)
hello, friend a213m thank you for the application and even more for its interface, tell you that I had a problem trying to modify the SPD,
I must clarify that I do not use arduino, to connect I use the mother gigabyte "GA Z77 -D3H",
the memories that I try to modify have RSWP activated, in the interface the button "CLEAR RSWP" appears in gray, and I can't click!!
I read all the comments in the thread and I did not find any information that would help me.
I also clarify that I was able to modify ram memories that have RSWP disabled and it was a complete success.
so I wonder, can you disable RSWP and thus modify the SPD only with arduino? sorry for my English, I hope you understand my question...
I await your contribution, thank you very much.
I'm using version 20230205!!!
post edited by noisy ghost - 2023/02/23 08:33:19
rjohnson11
EVGA Forum Moderator
  • Total Posts : 102253
  • Reward points : 0
  • Joined: 2004/10/05 12:44:35
  • Location: Netherlands
  • Status: offline
  • Ribbons : 84
Re: Would anyone be interested in open source and free DDR4 SPD reader/writer? 2023/02/23 06:11:42 (permalink)
noisy ghost
hola amigo a213m gracias por la aplicación y mas por su interfaz, comentarte que tuve un problema al tratar de modificar el SPD, debo aclarar
que no uso arduino, para conectar uso el gigabyte madre "GA Z77- D3H",
las memorias que trato de modificar tienen RSWP activado, en la interfaz aparece en gris el botón "CLEAR RSWP", y no puedo hacer click!!
Leí todos los comentarios del hilo y no encontré ninguna información que me ayudara.
También aclaro que pude modificar memorias ram que tienen RSWP deshabilitado y fue todo un acierto.
entonces me pregunto se puede deshabilitar RSWP y asi modificar el SPD solo con arduino?
perdon por mi ingles, espero se entienda mi pregunta...
espero su aporte, muchas gracias.



Translation:
hello friend a213m thanks for the application and more for its interface, tell you that I had a problem trying to modify the SPD, I must clarify I don't use arduino, to connect I use the mother gigabyte "GA Z77-D3H", The memories that I try to modify have RSWP activated, the "CLEAR RSWP" button appears in gray on the interface, and I cannot click it!! I read all the comments in the thread and couldn't find any information that would help me. I also clarify that I was able to modify ram memories that have RSWP disabled and it was a success. so I wonder can you disable RSWP and thus modify the SPD only with arduino? Sorry for my English, I hope you understand my question... I look forward to your contribution, thank you very much.
 
A reminder that posts on the EVGA forum must be in English only. 

AMD Ryzen 9 7950X,  Corsair Mp700 Pro M.2, 64GB Corsair Dominator Titanium DDR5  X670E Steel Legend, MSI RTX 4090 Associate Code: H5U80QBH6BH0AXF. I am NOT an employee of EVGA

noisy ghost
New Member
  • Total Posts : 3
  • Reward points : 0
  • Joined: 2023/02/23 04:20:46
  • Status: offline
  • Ribbons : 0
Re: Would anyone be interested in open source and free DDR4 SPD reader/writer? 2023/02/23 08:23:29 (permalink)
I'm sorry, I already changed the language, thanks for the correction

 
a213m
SSC Member
  • Total Posts : 877
  • Reward points : 0
  • Joined: 2006/02/08 11:10:24
  • Location: 🇨🇦
  • Status: offline
  • Ribbons : 20
Re: Would anyone be interested in open source and free DDR4 SPD reader/writer? 2023/02/23 14:39:43 (permalink)
Yes, RSWP functions are only available with Arduino based controllers.

My free and open source SDR-DDR5 SPD reader/writer with write protection capabilities
 
New: 13900K, Z790 HERO, 2x32GB 6800C32, 4090, 2TB SN850, AX1600i
Old: 10980XE, X299SE2, 8x8GB 4000C15, 4090, 2TB SN850, AX1600i
noisy ghost
New Member
  • Total Posts : 3
  • Reward points : 0
  • Joined: 2023/02/23 04:20:46
  • Status: offline
  • Ribbons : 0
Re: Would anyone be interested in open source and free DDR4 SPD reader/writer? 2023/02/24 05:58:51 (permalink)
ok thanks for clarifying that doubt.

 
OfficialMalakai
New Member
  • Total Posts : 5
  • Reward points : 0
  • Joined: 2022/02/13 13:48:45
  • Status: offline
  • Ribbons : 0
Re: My Arduino-based RAM SPD reader/writer (free and open source) 2023/03/01 20:03:32 (permalink)
Wow this awesome! Great work man.

yours truly,
a213m
SSC Member
  • Total Posts : 877
  • Reward points : 0
  • Joined: 2006/02/08 11:10:24
  • Location: 🇨🇦
  • Status: offline
  • Ribbons : 20
Re: My Arduino-based RAM SPD reader/writer (free and open source) 2023/03/14 20:24:11 (permalink)
SMBus hotfix: 20230314
  • Fixed: Inaccessible SMBus on some systems that don't have device 0 on PCI bus where SMBus controller resides
Just like the last hotfix, this release is marked as pre-release because it contains an updated dll only. To use, extract the archive into directory where you have v.20230205 located, overwriting the old file.

My free and open source SDR-DDR5 SPD reader/writer with write protection capabilities
 
New: 13900K, Z790 HERO, 2x32GB 6800C32, 4090, 2TB SN850, AX1600i
Old: 10980XE, X299SE2, 8x8GB 4000C15, 4090, 2TB SN850, AX1600i
QuepAll
New Member
  • Total Posts : 4
  • Reward points : 0
  • Joined: 2023/03/25 12:29:26
  • Status: offline
  • Ribbons : 0
Re: My Arduino-based RAM SPD reader/writer (free and open source) 2023/03/25 12:42:17 (permalink)
An amazing program, almost the only one of its kind. If you allow me to give you advice, add amd smbus support, it is not write protected, this will cover a huge number of laptops, for example lenovo legions, this will greatly popularize your program. If you need any technical data let me know.
a213m
SSC Member
  • Total Posts : 877
  • Reward points : 0
  • Joined: 2006/02/08 11:10:24
  • Location: 🇨🇦
  • Status: offline
  • Ribbons : 20
Re: My Arduino-based RAM SPD reader/writer (free and open source) 2023/03/25 14:44:08 (permalink)
Hi, what AMD platform would you like to see supported? I added AM4 & Threadripper along few other AMD based systems a while back (https://forums.evga.com/FindPost/3557968), but to add new AM5 I need hardware or someone who has such system and is willing to run tests for me.
 
 

My free and open source SDR-DDR5 SPD reader/writer with write protection capabilities
 
New: 13900K, Z790 HERO, 2x32GB 6800C32, 4090, 2TB SN850, AX1600i
Old: 10980XE, X299SE2, 8x8GB 4000C15, 4090, 2TB SN850, AX1600i
QuepAll
New Member
  • Total Posts : 4
  • Reward points : 0
  • Joined: 2023/03/25 12:29:26
  • Status: offline
  • Ribbons : 0
Re: My Arduino-based RAM SPD reader/writer (free and open source) 2023/03/27 08:26:52 (permalink)
a213m
Hi, what AMD platform would you like to see supported? I added AM4 & Threadripper along few other AMD based systems a while back (), but to add new AM5 I need hardware or someone who has such system and is willing to run tests for me.

Hi, as far as I know, at the end of 2021, a huge number of laptops with such a device came out AMD SMBus
INF file oem10.inf INF Section AMDSMBus64
Hardware ID PCI\VEN_1022&DEV_790B&SUBSYS_384217AA&REV_51
Placement information PCI bus 0, device 20, function 0
PCI Device AMD K19.5 FCH - SMBus Controller
 
 
And almost all of them were equipped with memory with incorrect secondary timings, which can be corrected. One of my laptops has exactly the same problem.
 
mainboard chipset Northbridge: 16301022h
Southbridge 790E1022h
SMBUS base address #0 0B00h
base address #1 0000h
SPD on SMBUS at 50h and 52h
 
It will be very cool if you can add support!
a213m
SSC Member
  • Total Posts : 877
  • Reward points : 0
  • Joined: 2006/02/08 11:10:24
  • Location: 🇨🇦
  • Status: offline
  • Ribbons : 20
Re: My Arduino-based RAM SPD reader/writer (free and open source) 2023/03/27 18:51:23 (permalink)
I need to see your SMBus controller PCI registers dump.
 
Load CPU-Z with default settings, save report as text file (Tools > Save Report as TXT). Locate "SMBus Controller" section under "PCI Devices" category and post that info.
 
It should look similar to this:
 

 
Paste your info as text, preferably enclosed in [code] or [pre] tags for better readability.

My free and open source SDR-DDR5 SPD reader/writer with write protection capabilities
 
New: 13900K, Z790 HERO, 2x32GB 6800C32, 4090, 2TB SN850, AX1600i
Old: 10980XE, X299SE2, 8x8GB 4000C15, 4090, 2TB SN850, AX1600i
QuepAll
New Member
  • Total Posts : 4
  • Reward points : 0
  • Joined: 2023/03/25 12:29:26
  • Status: offline
  • Ribbons : 0
Re: My Arduino-based RAM SPD reader/writer (free and open source) 2023/03/27 19:14:01 (permalink)

 
Description SMBus Controller
Location bus 0 (0x00), device 20 (0x14), function 0 (0x00)
Common header
Vendor ID 0x1022 (AMD)
Model ID 0x790B
Revision ID 0x51
PI 0x00
SubClass 0x05
BaseClass 0x0C
Cache Line 0x00
Latency 0x00
Header 0x80
PCI header
Subvendor ID 0x17AA (Lenovo)
Subsystem ID 0x3842
Int. Line 0x00
Int. Pin 0x00
PCI registers
    00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
00 22 10 0B 79 03 04 20 02 51 00 05 0C 00 00 80 00
10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
20 00 00 00 00 00 00 00 00 00 00 00 00 AA 17 42 38
30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
A0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
B0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
D0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
F0 7F 70 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 

post edited by QuepAll - 2023/03/27 19:48:59
a213m
SSC Member
  • Total Posts : 877
  • Reward points : 0
  • Joined: 2006/02/08 11:10:24
  • Location: 🇨🇦
  • Status: offline
  • Ribbons : 20
Re: My Arduino-based RAM SPD reader/writer (free and open source) 2023/03/27 20:10:02 (permalink)
Based on your device info, your smbus should already be supported. AMD support was tested on AM4 system with SMBus RevID 0x61, and I implemented support for FCH controllers (0x790B) starting from revision 0x49, yours is 0x51, which is within the supported and tested range.
 
What does
spdrwcli.exe /find smbus
output? (Run it as admin).

My free and open source SDR-DDR5 SPD reader/writer with write protection capabilities
 
New: 13900K, Z790 HERO, 2x32GB 6800C32, 4090, 2TB SN850, AX1600i
Old: 10980XE, X299SE2, 8x8GB 4000C15, 4090, 2TB SN850, AX1600i
QuepAll
New Member
  • Total Posts : 4
  • Reward points : 0
  • Joined: 2023/03/25 12:29:26
  • Status: offline
  • Ribbons : 0
Re: My Arduino-based RAM SPD reader/writer (free and open source) 2023/03/28 05:56:28 (permalink)
output:
SPD-RW - EEPROM SPD reader and writer
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Version 2.23.02.05
(C) 2021-2023 A213M
 
when run spdrwguildr.exe  as admin device-connect smbus looking for device - nothing found
a213m
SSC Member
  • Total Posts : 877
  • Reward points : 0
  • Joined: 2006/02/08 11:10:24
  • Location: 🇨🇦
  • Status: offline
  • Ribbons : 20
Re: My Arduino-based RAM SPD reader/writer (free and open source) 2023/03/28 14:00:33 (permalink)
Thanks, check your PM.

My free and open source SDR-DDR5 SPD reader/writer with write protection capabilities
 
New: 13900K, Z790 HERO, 2x32GB 6800C32, 4090, 2TB SN850, AX1600i
Old: 10980XE, X299SE2, 8x8GB 4000C15, 4090, 2TB SN850, AX1600i
slowmouse
New Member
  • Total Posts : 2
  • Reward points : 0
  • Joined: 2018/05/01 00:12:34
  • Status: offline
  • Ribbons : 0
Re: My Arduino-based RAM SPD reader/writer (free and open source) 2023/04/12 04:05:26 (permalink)
Hi ! . thank you for this program. I also do not have the ability to use smbus. Is it possible to do something with this?
 
Description SMBus Controller
Location bus 0 (0x00), device 31 (0x1F), function 4 (0x04)
Common header
 Vendor ID 0x8086 (Intel)
 Model ID 0x7A23
 Revision ID 0x11
 PI 0x00
 SubClass 0x05
 BaseClass 0x0C
 Cache Line 0x00
 Latency 0x00
 Header 0x00
PCI header
 Address 0 (memory) 0x0000004402018000
 Address 4 (port) 0x0000EFA0
 Subvendor ID 0x1458 (GIGABYTE)
 Subsystem ID 0x5001
 Int. Line 0xFF
 Int. Pin 0x03
PCI registers
  00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
 00 86 80 23 7A 03 00 80 02 11 00 05 0C 00 00 00 00
 10 04 80 01 02 44 00 00 00 00 00 00 00 00 00 00 00
 20 A1 EF 00 00 00 00 00 00 00 00 00 00 58 14 01 50
 30 00 00 00 00 00 00 00 00 00 00 00 00 FF 03 00 00
 40 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 50 01 04 00 00 01 01 00 00 00 00 00 00 00 00 00 00
 60 04 05 05 00 00 00 0A 0A 00 00 00 00 00 00 00 00
 70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 80 24 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 90 00 00 21 01 00 0C 00 00 1F 00 20 01 00 0E 00 00
 A0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 B0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 D0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 F0 00 00 00 00 00 00 00 00 00 00 13 00 00 00 00 00

 
spdrwcli /find smbus
output is :
 
   SPD-RW - EEPROM SPD reader and writer
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Version 2.23.02.05
(C) 2021-2023 A213M
a213m
SSC Member
  • Total Posts : 877
  • Reward points : 0
  • Joined: 2006/02/08 11:10:24
  • Location: 🇨🇦
  • Status: offline
  • Ribbons : 20
Re: My Arduino-based RAM SPD reader/writer (free and open source) 2023/04/12 04:15:27 (permalink)
slowmouse
Hi ! . thank you for this program. I also do not have the ability to use smbus. Is it possible to do something with this?
 
...
 Vendor ID 0x8086 (Intel)
 Model ID 0x7A23
 ...




Your hardware is not supported yet. I'll start working on Alder Lake & Raptor Lake platforms support soon when I get my Z790 board delivered, so stay tuned for updates. :)

My free and open source SDR-DDR5 SPD reader/writer with write protection capabilities
 
New: 13900K, Z790 HERO, 2x32GB 6800C32, 4090, 2TB SN850, AX1600i
Old: 10980XE, X299SE2, 8x8GB 4000C15, 4090, 2TB SN850, AX1600i
a213m
SSC Member
  • Total Posts : 877
  • Reward points : 0
  • Joined: 2006/02/08 11:10:24
  • Location: 🇨🇦
  • Status: offline
  • Ribbons : 20
Re: My Arduino-based RAM SPD reader/writer (free and open source) 2023/04/13 23:30:47 (permalink)
Ok, Intel 600 & 700 series confirmed to be working and will be supported in the next public release (no ETA yet, because I got a few other things to finish).
 

(Never mind the version numbers, I don't update them for test builds)

My free and open source SDR-DDR5 SPD reader/writer with write protection capabilities
 
New: 13900K, Z790 HERO, 2x32GB 6800C32, 4090, 2TB SN850, AX1600i
Old: 10980XE, X299SE2, 8x8GB 4000C15, 4090, 2TB SN850, AX1600i
slowmouse
New Member
  • Total Posts : 2
  • Reward points : 0
  • Joined: 2018/05/01 00:12:34
  • Status: offline
  • Ribbons : 0
Re: My Arduino-based RAM SPD reader/writer (free and open source) 2023/04/14 02:14:26 (permalink)
Thank you for such great work !
BEVANYANG
New Member
  • Total Posts : 1
  • Reward points : 0
  • Joined: 2023/05/22 19:28:45
  • Status: offline
  • Ribbons : 0
Re: My Arduino-based RAM SPD reader/writer (free and open source) 2023/05/22 19:32:34 (permalink)
[引用=a213m] how can i contact you sir?I am interested in DDR4 DDR5 SPD programmers!
 
GitHub 上的官方项目仓库:

 
最新的二进制文件

 
最新固件:

 
 

指导:

第 1 部分 - 硬件

 
根据下面的示意图连接你的 Arduino + DIMM:
 

点击图片查看完整版。找到
 
该示意图显示了分为多个部分的模块:
  • Arduino section shows pins used on Nano V3 model. Use its 3.3V pin as a VCC source. If your Arduino doesn't have a dedicated 3.3V output, use a step-down 3.3V regulator, like LM7833. Pins labeled SA1_EN, HV_EN, and HV_FB can be assigned in "" file. 5V pin is required to power a 9V step-up converter (HV_SOURCE) and DDR5.
  • HV_CTL and one of 9V sources are needed to enable and detect 9V on SA0 for RSWP related operations. Use either a step-up/boost converter (HV_SOURCE), or a 9V battery (HV_SOURCE_ALT), not both!
  • SA1_CTL is used to switch pin SA1 on EEPROM between VCC and ground. This is needed because RSWP-supported EEPROMs used on DDR3 and DDR2 require different SA1 configurations to enable or disable RSWP. It is also used to prevent addressing conflicts when DDR5 is used.
 
Refer to your Arduino model pinout, on my Nano model SDA and SCL are A4 and A5, respectively:

 
Parts list:
  • Arduino: Nano V3 or any AVR-based model with I2C / TWI interface.
  • OK1: PC817 or any general purpose optocoupler with a maximum collector to emitter voltage above 10V and a diode current below 40mA and forward voltage below 5V.
  • R1, R2: Pull up resistor for I2C lines.
  • R3: Current limiting resistor for optocoupler diode, values between 390Ω and 560Ω work fine.
  • R4, R5: Voltage divider for HV feedback (HV_FB) on SA0. The values used will work for 5V and 3.3V Arduinos.
  • R6: Pull up resistor for SA1 pin.
  • D1: Any general purpose schottky diode.
  • C1: 6.3V, 560uF
 
EEPROM pins to DIMM pins guide:
 
DDR5:    VIN_BULK=1, HSCL=4, HSDA=5, HSA=148, PWR_EN=151, GND=6*
DDR4:    SA0=139,   SA1=140,   SA2=238,   GND=2*,   SDA=285,   SCL=141,  VDDSPD=284
DDR3:    SA0=117,   SA1=237,   SA2=119,   GND=2*,   SDA=238,   SCL=118,  VDDSPD=236
DDR2:    SA0=239,   SA1=240,   SA2=101,   GND=4*,   SDA=119,   SCL=120,  VDDSPD=238
DDR:      SA0=181,   SA1=182,   SA2=183,   GND=3*,   SDA=91,     SCL=92,    VDDSPD=184
SDRAM: SA0=165,   SA1=166,   SA2=167,   GND=1*,   SDA=82,     SCL=83,    VDDSPD=168
 
* There are multiple GND pins on DIMMs, the table shows just one of them for each RAM type.
 
DDR5 UDIMM pins locations:
 




DDR4 DIMM pins locations:



 
Obviously don't solder wires directly to DIMM contacts or motherboard solder points, get a spare slot from components resellers, like Digikey, or get a DIMM adapter, like the one pictured below. Those are cheap, and have pins labeled for easy identification.
 


 
 

Part 2 - Firmware


Upload to your Arduino once everything is assembled. Both files are required. Make sure the values in match the pins names you used if your pins differ from the ones in the guide.
 

Part 3 - Windows GUI application

 
Latest application can always be found here:
 

 
The application requires 4 or later to be installed. Supported OSs are Windows XP SP3 and up. The application is compiled for x86 architecture, so both 32 bit and 64 bit OSs are supported.
 
Once your device is assembled and tested, start the program. Click "Connect" toolbar button, make sure selected baud rate matches the one you programmed, select your device from the list, and click "Connect" to start working:
 

 
Click on the device identified by its serial port name and EEPROM address detected on its I2C bus to start working with it.
 
 

Part 4 - Windows Console application

 
The program can read and write bytes, and enable or disable write protection. The operation depends on its command line arguments. The supported arguments are:
 
  1. /help
  2. /find
  3. /scan <PORT>
  4. /read <PORT> <ADDRESS#> <filepath> /silent
  5. /write <PORT> <ADDRESS#> <FILEPATH> /silent
  6. /writeforce <PORT> <ADDRESS#> <FILEPATH> /silent
  7. /enablewriteprotection <PORT> <ADDRESS#>
  8. /enablewriteprotection <PORT> <ADDRESS#> <block#>
  9. /disablewriteprotection <PORT> <ADDRESS#>
  10. /enablepermanentwriteprotection <PORT> <ADDRESS#>
 
The parameters in CAPS are mandatory. Parameter <filepath> is optional when 
/read
switch is used, output will be printed to console only.
 
You'll need to know two parameters to work your DIMM - port name and EEPROM address. To find out what port your device is using, run this command:
 
spdrwcli.exe /find

 
If everything works, you'll get a port name your device is connected to:
 

 
 
 
Found Device on Serial Port: COM3

 
In my case it is COM3. If the program can't find any devices, make sure the sketch is properly uploaded to your Arduino and no other application is using your Arduino's serial port - that includes Arduino IDE Serial Monitor. Close it, if you have it open.
 
With a DDR4 DIMM present you'll want to scan your device for EEPROM addresses on I2C bus. With SA0-SA2 connected to ground, the address will be 80, however, it is still recommended to run this test to ensure the EEPROM is detected:
 
spdrwcli.exe /scan COM3

 
In most cases, if everything is fine, you'll see a device at address 80 detected:
 

 
 
 
Found EEPROM at address: 80

 
When I used DDR4 slots cut out of an old motherboard with both DIMMs populated, both were detected at addresses 80 and 82, even though I soldered wires to one slot only:
 

 
 
 
Found EEPROM at address: 80
Found EEPROM at address: 82

 
To read SPD from your DIMM, run:
 
spdrwcli.exe /read COM3 80

 
This will output SPD contents in HEX on screen. Plain and simple.
 

Reading EEPROM at address 80

000: 23 10 0C 02 84 19 00 08 00 00 00 03 01 03 00 00
010: 00 00 08 0C F4 1B 00 00 6C 6C 6C 11 00 74 20 08
020: 00 05 70 03 00 A8 1E 2B 2B 00 00 00 00 00 00 00
--edited on purpose--
1D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
1E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
1F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Read 512 bytes from EEPROM at address 80 on port COM3 in 1547 ms

 
To save SPD to file, add a file path at the end. File path can be absolute or relative. If file path has spaces in it, enclose it in "double quotes":
 
spdrwcli.exe /read COM3 80 C:\temp\spdoutput.bin

spdrwcli.exe /read COM3 80 "C:\temp\my ddr4 spd file.bin"

 

Reading EEPROM at address 80 to C:\temp\my ddr4 spd file.bin

000: 23 10 0C 02 84 19 00 08 00 00 00 03 01 03 00 00
--edited on purpose--
1F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Read 512 bytes from EEPROM at address 80 on port COM3 in 1562 ms to file "C:\temp\my ddr4 spd file.bin"

 
Edit your SPD in a HEX editor or any specialized program, like Thaiphoon Burner. 
 
To write your new SPD to DIMM, run:
 
spdrwcli.exe /write COM3 80 C:\temp\newspd.bin

 
EEPROMs have limited number of write cycles, sometimes between 10,000 and 1,000,000. By default, the program writes bytes only if they differ from existing values. By doing that, it first reads a byte and if it matches the input value, the write operation is skipped. Byte is written only it it needs to. If you want to force writes, regardless of existing SPD data, use 
/writeforce
switch instead of
/write
.
It will take a bit longer (5-10 s.) because of required delays after each write.
 

Writing "C:\temp\my ddr4 spd file.bin" (512 bytes) to EEPROM at address 80

000: 23 10 0C 02 84 19 00 08 00 00 00 03 01 03 00 00
010: 00 00 08 0C F4 1B 00 00 6C 6C 6C 11 00 74 20 08
020: 00 05 70 03 00 A8 1E 2B 2B 00 00 00 00 00 00 00
--edited on purpose--
1D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
1E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
1F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Written 512 bytes to EEPROM at address 80 on port COM3 in 7093 ms

 
Optionally, to hide progress you may add 
/silent
switch at the end after a file path is specified when using
/read
,
/write
, or
/writeforce
switches:
 
spdrwcli.exe /read COM3 80 C:\temp\spdoutput.bin /silent

spdrwcli.exe /write COM3 80 C:\temp\newspd.bin /silent

 
You may protect the entire EEPROM from writing with this command:
 
spdrwcli.exe /enablewriteprotection COM3

 
If the blocks weren't write-protected previously, you'll receive a response like this:
 

 
 
 
Block 0 is now read-only
Block 1 is now read-only
Block 2 is now read-only
Block 3 is now read-only

 
Or enable write protection on each individual block by specifying block number (0-3):
 
spdrwcli.exe /enablewriteprotection COM3 0

spdrwcli.exe /enablewriteprotection COM3 2

 
Each block specifies a section of 128 bytes. Block 0 is bytes at offset 0-127, block 1 is bytes 128-255, and so on.
 
Please note the address isn't used, only port number. That's because RSWP commands don't use addresses, all devices on the I2C bus will act simultaneously.
 
To clear write protection, run the following command:
 
spdrwcli.exe /disablewriteprotection COM3

 
Again, the device address isn't used.
 
Once write-protection is cleared, you'll see this response:
 

Write protection successfully disabled.

 
To enable permanent write protection, run this command:
spdrwcli.exe /enablepermanentwriteprotection COM3 80

 
Please note permanent protection can be enabled on most DDR3 and some DDR2 modules. DDR4 does not support permanent software write protection.
 
That's all for now.
 
我总是乐于接受建议和评论。随时报告任何错误或要求添加您希望在项目中看到的任何功能,无论它与硬件、固件还是应用程序相关。

[/引用]


a213m
SSC Member
  • Total Posts : 877
  • Reward points : 0
  • Joined: 2006/02/08 11:10:24
  • Location: 🇨🇦
  • Status: offline
  • Ribbons : 20
Re: My Arduino-based RAM SPD reader/writer (free and open source) 2023/05/22 19:39:01 (permalink)
Well, you can post your question here, if it is related to the project, that's what the thread is for.
Otherwise send me a private message.
 
 

My free and open source SDR-DDR5 SPD reader/writer with write protection capabilities
 
New: 13900K, Z790 HERO, 2x32GB 6800C32, 4090, 2TB SN850, AX1600i
Old: 10980XE, X299SE2, 8x8GB 4000C15, 4090, 2TB SN850, AX1600i
Page: << < ..6789 > Showing page 6 of 9
Jump to:
  • Back to Mobile