• Overclocking Lab
  • My Arduino-based RAM SPD reader/writer (free and open source) (p.13)
2021/12/08 04:05:25
a213m
I messed up SA1 controls in the latest FW, will post a fixed update in a few hours. In the meantime, grab the working FW here:
https://github.com/1a2m3/...re/SpdReaderWriter.ino
 
Fixed, see one post below
2021/12/08 15:59:27
a213m
Here's the full release: 20211208

GUI

  • Includes FW 20211208

Firmware

  • Fixed SA1 control
 
2021/12/28 04:21:59
rekeyed
Hi!
I finally got a DDR4 adapter, tried to read some memory. With some modules, software cannot connect to the device. Got "nothing found" in port selection dialog. it tooks some time before I thought of connecting with no module, uncheck  "I2C fast mode" and then insert the memory module. Maybe it's better to detect the device at a low I2C speed?
 
P.S. with 10K pull-up resistors from +3.3V to SDA and SCL lines device connects in both I2C modes
2021/12/28 14:19:30
a213m
Confirmed, pull up resistors are required for anything faster than standard mode. I'll prepare a new build which will allow connecting to device when fast mode is enabled with DIMM present without pull up resistors to gracefully disable fast mode from the GUI.
2021/12/28 17:30:19
a213m
Here you go: 20211228

GUI

  • Fixed port not being released after failed connection

Firmware

  • Improved connection compatibility
2022/02/02 16:12:31
a213m
New version with a small changelog but a major feature update: 20220202

GUI

  • Added support to read and write system DDR4 RAM SPDs on Intel X299 platforms
 
About:
 
This release will let you read and write system memory SPDs on Intel LGA2066/X299 motherboards, just like the full version of Thaiphoon Burner.
 
Yes, you got that right. This is a pure software solution.
This feature does not rely on Arduino or other external programming device. (External Arduino-based devices are still supported, though.)
Tested on Windows 10 x64, but should work on 32-bit and 64-bit versions of Windows XP and later.
 
How to use:
  1. If you are running an RGB-capable memory, disable dynamic RGB effects, or set color to static!
  2. Run "spdrwgui.exe" as admin.
  3. Click "Connect" and select a device. The numbers represent CPU SMBus controllers in the PCI configuration space.
    The last number represents SMBus number.*
  4. Use Read/Write/Verify/Check RSWP buttons as usual to perform desired tasks.
    If you have more than one DIMM per bus, you will be asked to choose its I2C address.*
 
*
Bus numbering and addressing:
 
Skylake-X and Cascade Lake-X systems don't use chipset SMBus to access RAM SPD's, instead they rely on internal memory controllers' SMBuses accessible via PCI configuration space.
On my system (and most X299 boards) there are 2 controllers, one for each group of DIMMs located on either side of the CPU.
Bus 0 controls slots located to the left of CPU socket, next to the IO area, whereas bus 1 controls the other group of slots to the right of CPU socket.
Each bus provides access to DIMM EEPROMs via a unique address. The addresses are not in the same order as slots appear on the motherboard.
 
Refer to the image below for bus numbering and addressing:
 

 
Implementing X299 hardware support took a lot of time and resources, so I would appreciate if you support my efforts.
If you like this update and want more platforms added in the future releases, please consider donating using links in the About window.
 
Edited: formatting, typos
2022/02/03 10:13:57
Cool GTX
thanks for the new update
2022/02/08 20:23:59
a213m
New version: 20220208

GUI

  • Fixed reading from serial device returning invalid data due to broken address setting
  • Fixed write protection not being checked before writing on X299
  • Fixed retry button not working upon write error
  • Added option to disable RGB warning
  • Improved X299 RSWP detection
  • Improved SMBus detection
2022/02/20 17:42:28
a213m
New version with several fixes and new features: 20220220

GUI

  • Fixed data verification not being performed after partial writes to partially protected EEPROMs
  • Fixed incorrect "multiple EEPROMs" warning message when checking RSWP on serial device
  • Fixed crash that occurred when checking RSWP on serial device
  • Added detailed SMBus info under Device>Info menu
  • Added option to connect to SMBus on startup
  • Added human-friendly SMBus naming
 
2022/02/22 16:08:53
a213m
New version: 20220222

GUI

  • Added support to read and write system DDR3 RAM SPDs on Intel desktop LGA1156, 1155, and 1150 systems, as well as mobile 5/6/7/8/9 series platforms *
  • Fixed unhandled exception crash on AMD systems when running program as admin
 
*
Just like my X299 update from February 02, this release adds support for mainstream Intel DDR3 platforms and will let you read and write system memory SPDs without additional hardware on these platforms:
  • LGA1156: H55, P55, H57, Q57
  • LGA1155: H61, B65, Q65, P67, H67, Q67, Z68, B75, Q75, Z75, H77, Q77, Z77
  • LGA1150: H81, B85, Q85, Q87, H87, Z87, Z97, H97
  • Mobile: NM10, PM55, HM55, HM57, QM57, QS57, HM65, HM67, UM67, QM67, QS67, NM70, HM70, HM75, HM76, UM77, HM77, QM77, QS77, HM86, QM87, HM87, HM97
X79 is not supported.
 
Mainstream DDR4 support is available but currently disabled, and if you have an Intel LGA1151 or LGA1200 board and want to test DDR4 support, PM me or respond here.

Use My Existing Forum Account

Use My Social Media Account