Contribute
Register

HP z600 workstation is FULLY working with macOS sierra

Status
Not open for further replies.
Greetings, loving my Z600 w/Sierra 10.12.5... having an issue that I'd like to rectify. USB is broken after "wake". Unit sleeps fine, but wakes with no USB for 30 seconds, then loads. Any help on this issue would be much appreciated. Thank you.
 
So do you use the Z600 with custom fans? This is not directly related to x86, but I'm also doing a Hackintosh out of a Z600, but I'm also trying to switch the fans to more silent ones.

Problem is that the computer checks that the fans match to some specifications and refuses to boot, if the fans are of wrong type.
 
Last edited:
@mavavilj, please update your profile (personal details) with your Motherboard or Make/Model, CPU and Graphics Card.
The Rules said:
Profiles need to contain at least your primary system to assist others with helping you.
 
So do you use the Z600 with custom fans? This is not directly related to x86, but I'm also doing a Hackintosh out of a Z600, but I'm also trying to switch the fans to more silent ones.

Problem is that the computer checks that the fans match to some specifications and refuses to boot, if the fans are of wrong type.
Nope! It won't refuse to boot, it will just prompt to skip the alert by pressing f1 on every boot (which also sucks!). I'm upgrading all the 10 fans to Arctic. Will sure register the entire process! And once i'm done, i'll share the link here =)
 
Nope! It won't refuse to boot, it will just prompt to skip the alert by pressing f1 on every boot (which also sucks!). I'm upgrading all the 10 fans to Arctic. Will sure register the entire process! And once i'm done, i'll share the link here =)
There should be an option in the BIOS to turn off this alert so you won't need to press F1 every boot up.
 
There should be an option in the BIOS to turn off this alert so you won't need to press F1 every boot up.
Well, nope. There is't. HP Bioses on the Z series consider fans a top security hardware, so you can't disable the messages =(
 
Nope! It won't refuse to boot, it will just prompt to skip the alert by pressing f1 on every boot (which also sucks!). I'm upgrading all the 10 fans to Arctic. Will sure register the entire process! And once i'm done, i'll share the link here =)

Have you made any progress?

I'm looking to do the same with a Z600 and I was wondering what could be the best way to approach this.

Things I've thought so far:

1) Simply exchanging the fans.
-Probably not going to work out very well, because of the BIOS check on fans. Potentially only fans with specs very similar to the original ones (I speculate that the BIOS checks the max RPM) could work without the error.
2) Soldering the new fans in chain with the original ones. The original ones would need to be shut down somehow of course after their purpose as being the things that make the BIOS accept the fans is served.
3) Sort of like 2), but instead of chaining fans, then merely connect the new fans to a power source got somewhere else. But I'm not sure whether the Z600 has any spare Molexes or such. One could perhaps split the PCI-e connector to get power for the fans. Or maybe SATA ports could be used?
 
I did some testing with my HP Z600 using an Akasa fan splitter.

Findings:

  1. It's possible to connect two fans to one 5-pin port. I don't know yet if the voltage is halved or something, but it works.
  2. The BIOS will boot without the F1 error, even with two fans running in the same bus.
  3. However, one cannot disable the HP official fan (it's needed for the startup to pass without error). I tried keeping it stopped while in boot and then the F1 error comes back. So it seems as if the HP fan has to be allowed to run at least during the initial boot up. It could maybe be disabled after the boot/BIOS check has passed.
  4. Have you ever wondered why some desk computers do that high RPM "wroom", when they're booted? I believe that that's exactly what's used to check the fan. So what it probably does is that it tries out the max RPM of the connected fan and it has to match some specified one.
  5. It also seems that all 4-pins in the HP fan have to be connected. I tried connecting only two and the F1 error pops up. This is probably because pin 3 is for reading out the RPM and pin 4 (PWM) is for the motherboard to control the fan speed.
  6. It's possible to stop the HP fan after the check has passed and the system will continue running.

6. could potentially offer the path of adding some sort of circuit or device that stops the stock fans after the fan check has passed. This could maybe be automatic. http://www.burntlatke.com/fan-controller.html
 
Last edited:
Some progress:

I'm able to fake the CPU fans to be detected by using an Arduino and writing a 50% duty cycle 25Hz PWM signal to the TACH pin (pin 3) on the motherboard CPU fan connector.

The code for doing this is simply:

-code-


int pwmPin = 3; // e.g.

void setup()
{
setPwmFrequency(3, 1250); // 31250/1250 = 25Hz
}

void loop()
{
analogWrite(pwmPin, 127); // 127/255 ≈ 50% duty cycle, which is a duty cycle tested to work.
}

/**
* Divides a given PWM pin frequency by a divisor.
*
* The resulting frequency is equal to the base frequency divided by
* the given divisor:
* - Base frequencies:
* o The base frequency for pins 3, 9, 10, and 11 is 31250 Hz.
* o The base frequency for pins 5 and 6 is 62500 Hz.
* - Divisors:
* o The divisors available on pins 5, 6, 9 and 10 are: 1, 8, 64,
* 256, and 1024.
* o The divisors available on pins 3 and 11 are: 1, 8, 32, 64,
* 128, 256, and 1024.
*
* PWM frequencies are tied together in pairs of pins. If one in a
* pair is changed, the other is also changed to match:
* - Pins 5 and 6 are paired on timer0
* - Pins 9 and 10 are paired on timer1
* - Pins 3 and 11 are paired on timer2
*
* Note that this function will have side effects on anything else
* that uses timers:
* - Changes on pins 3, 5, 6, or 11 may cause the delay() and
* millis() functions to stop working. Other timing-related
* functions may also be affected.
* - Changes on pins 9 or 10 will cause the Servo library to function
* incorrectly.
*
* Thanks to macegr of the Arduino forums for his documentation of the
* PWM frequency divisors. His post can be viewed at:
* http://forum.arduino.cc/index.php?topic=16612#msg121031
*/
void setPwmFrequency(int pin, int divisor) {
byte mode;
if(pin == 5 || pin == 6 || pin == 9 || pin == 10) {
switch(divisor) {
case 1: mode = 0x01; break;
case 8: mode = 0x02; break;
case 64: mode = 0x03; break;
case 256: mode = 0x04; break;
case 1024: mode = 0x05; break;
default: return;
}
if(pin == 5 || pin == 6) {
TCCR0B = TCCR0B & 0b11111000 | mode;
} else {
TCCR1B = TCCR1B & 0b11111000 | mode;
}
} else if(pin == 3 || pin == 11) {
switch(divisor) {
case 1: mode = 0x01; break;
case 8: mode = 0x02; break;
case 32: mode = 0x03; break;
case 64: mode = 0x04; break;
case 128: mode = 0x05; break;
case 256: mode = 0x06; break;
case 1024: mode = 0x07; break;
default: return;
}
TCCR2B = TCCR2B & 0b11111000 | mode;
}
}


-code-

The same logic doesn't seem to work on the memory fan though (I might try to make better measurements). I've tried different duty cycles, but the memory fan connector doesn't seem to be able to be tricked or then the values I'm giving it are still wrong.
 
Status
Not open for further replies.
Back
Top