home net image

Monitoring a Dell Precision 420

Tworoads Home
Our Home
News and Events
Photo Galleries
Scott's Page
• Palm Pilot
Paul's Page
Yukon's Page
Scout's Page

Home Automation
• Weather Station
• Temp. Readings
Home Network
• Precision 420
• Cisco 675
Our Tivo
Tworoads Software
• HelioStat
• Loc Notes
• MoonCal
• GPS Find


I am using NetBSD 2.0, where there is good substructure but few chips supported for environmental monitoring. The alternative in the BSD world is a user space program called mbmon. I also used dmidecode to probe the BIOS for information on monitoring. Both are available in the package system. I'm still working on alterations to mbmon for the DS1780, in the mean time I can give you working patches for the DS1780 if you contact me.


Semiconductor DS1780 chips. but no other hardware monitoring semiconductors. Using mbmon compiled with ALLOW_UNKNOWN defined allowed me to confirm the operation of atleast one DS1780. Ultimately I found that both DS1780s are used to monitor motherboard temperatures, power supply voltages and power supply fans. Mbmon also alerted me to the existence of one ADM1021/MAX1617 like temperature monitor. The temperature fluctuations on this device would seem to indicate that it monitors one of the CPUs. I could not determine what is controlling the CPU or Chassis fans. However I did note that the Card Cage/Lower Fan is off under moderate operation.

Using the mbmon -D (debugging) mode there are several candidate SMBus slave addresses.

[Intel8XX(ICH/ICH2/ICH3/ICH4/ICH5/ICH6), IO-Base:0xCCD0]
 SMBus slave 0x30(0x18) found...
 SMBus slave 0x58(0x2C) found...
 SMBus slave 0x5A(0x2D) found...
 SMBus slave 0x60(0x30) found...
 SMBus slave 0x62(0x31) found...
 SMBus slave 0x64(0x32) found...
 SMBus slave 0x66(0x33) found...
 SMBus slave 0x98(0x4C) found...
 SMBus slave 0xA0(0x50) found...
 SMBus slave 0xA2(0x51) found...
 SMBus slave 0xA4(0x52) found...
 SMBus slave 0xA6(0x53) found...
 SMBus slave 0xC6(0x63) found...
Set SMBus slave address: 0x58
Probing Winbond/Asus/LM78/79 chip:
  CR40:0x01,  CR41:0x00,  CR42:0x10,  CR43:0x00
  CR44:0x10,  CR45:0x00,  CR46:0x00,  CR47:0xF7
  CR48:0x2C,  CR49:0x80,  CR4A:0xFF,  CR4B:0x81
  CR4C:0xFF,  CR4D:0xFF,  CR4E:0xFF,  CR4F:0xFF
  CR56:0xFF,  CR58:0xFF,  CR59:0xFF,  CR5D:0xFF
  CR3E:0xDA,  CR13:0xFF,  CR17:0xFF,  CRA1:0xFF
  CR20:0xC2,  CR22:0x57,  CR23:0xC1,  CR24:0xC0
  CR27:0x23,  CR29:0x55,  CR2A:0x92,  CR2B:0xCD

The DS1780s can be found at 0x58 and 0x5A, while the ADM1021 is at 0x98. Monitoring the first DS1780 (0x58) gives the following:

Temp.= 35.5,  0.0,  0.0; Rot.= 1939, 1985,    0
Vcore = 2.52, 1.68; Volt. = 1.48, 5.02, 12.00,   1.68,  0.00

Monitoring the second DS1780 (0x5A) gives the following:

Temp.= 33.5,  0.0,  0.0; Rot.=    0,    0,    0
Vcore = 0.91, 1.47; Volt. = 3.28, 3.30, 11.94,   1.78,  0.00

Monitoring the ADM1021 (0x98) gives the following:

Temp.= 36.0, 29.0,  0.0; Rot.=    0,    0,    0
Vcore = 0.00, 0.00; Volt. = 0.00, 0.00,  0.00,   0.00,  0.00
where the second temperature is the CPU temperature.


After some correlation using dmidecode, and physically manipulating the fans for testing purposes (blowing compressed air over them) I came up with the following probe definitions:

ChipSlave AddressPhysical Location
DS1780 #10x58"bottom" of the motherboard, below expansion cards
DS1780 #20x5A"upper right" of the motherboard, right of memory cards
ADM1021 #10x98unknown: on CPU card?
DS1780 #1Temp.On chip (near power supply)
DS1780 #1Fan #1Inboard Power Supply
DS1780 #1Fan #2Outboard Power Supply
DS1780 #1Voltage #12.5V Aux
DS1780 #1Voltage #2Vcc VID1
DS1780 #1Voltage #3VDDQ AGP
DS1780 #1Voltage #4+5V
DS1780 #1Voltage #5+12V-A
DS1780 #1Voltage #6Vcc VID2
DS1780 #2Temp.On chip (near memory)
DS1780 #2Voltage #1Unknown
DS1780 #2Voltage #2+1.5V
DS1780 #2Voltage #3+3.3V AGP
DS1780 #2Voltage #4+3.3V Aux
DS1780 #2Voltage #5+12V-B
DS1780 #2Voltage #6+1.8V
ADM1021 #1Temp. #1On chip?
ADM1021 #1Temp. #2On CPU

Scott Presnell
Last modified: Thursday, May 22, 2008 16:29 PDT