Hi,
I think I have located the 1.6 temperature sensor (inside the xcalibur) and would like it if some one with a 1.6 xbox could try it out. I have tested it but the temperature read out is a bit "jumpy", it jumps with in 2C when idle. I just tested unplugging the fan and the temp whent up from 40C to 60C, I then plugged it in again and it whent back down again. Would like to see some more people testing it though.
Replace "void CFanController::GetCPUTempInternal()" (xbmc/xbmc/utils/FanController.cpp) with this one:
CODE
void CFanController::GetCPUTempInternal()
{
unsigned short cpu, cpudec;
//HalReadSMBusValue(PIC_ADDRESS, CPU_TEMP, 0, (LPBYTE)&cpuTemp);
if (!bIs16Box)
{
_outp(0xc004, (0x4c << 1) | 0x01);
_outp(0xc008, 0x01);
_outpw(0xc000, _inpw(0xc000));
_outp(0xc002, (0) ? 0x0b : 0x0a);
while ((_inp(0xc000) & 8));
cpu = _inpw(0xc006);
_outp(0xc004, (0x4c << 1) | 0x01);
_outp(0xc008, 0x10);
_outpw(0xc000, _inpw(0xc000));
_outp(0xc002, (0) ? 0x0b : 0x0a);
while ((_inp(0xc000) & 8));
cpudec = _inpw(0xc006);
cpuTemp = (float)cpu + (float)cpudec / 256.0f;
}
else
{
_outp(0xc004, (0x70 << 1) | 0x01); // address
_outp(0xc008, 0xC1); // command
_outpw(0xc000, _inpw(0xc000)); // clear possible old errors
_outp(0xc002, 0x0d); // start block transfer
while ((_inp(0xc000) & 8)); // wait for response
_inp(0xc004); // read out the data reg (no. bytes in block, will be 4)
cpudec = _inp(0xc009); // first byte
cpu = _inp(0xc009); // second byte
_inp(0xc009);
_inp(0xc009); // read out the two last bytes, dont' think its neccesary
cpuTemp = (float)cpu + (float)cpudec / 256.0f;
cpuTemp *= 0.8f; // adjust the "too high" cpu temp
}
}
I would be happy if someone could try it and report back.
regards
Pablot
QUOTE(JayDee @ Mar 31 2006, 05:26 PM)

Since my home pc went down earlier today i havent been able to radmin in and pass it on to any devs. Will make sure they get this info asap.
okay, good.
QUOTE(charlydoes @ Mar 31 2006, 05:52 PM)

First thing you should do is get rid of cpuTemp *= 0.8f;
It was added because someone thought the temperature on his 1.6 box was too high, took a wild guess at what it should be and multiplied by 0.8 to get it.
yeah, I know. But that wasn't the important thing. I still need to see this tested, the exact temperature isn't that important. By looking at the measurements I have I'd say that its constantly about 5-8C too high or something