you're most likely here for;

Raspberry PI light switch.
Subnet + Automated VLSM calculator.


Using a HP DL380 G7 as a workstation

2 workstations on 1 machine

I have had this idea of using a server as a workstation at my work for a while now, currently I am trying to get 2GPUs to work in a DL380G7 (or Gen6) so I CPU power can be shared and there will be 2 workstations in one chassis. (put a hypervisor on it and pass the GPUs to the 2 guest operating systems.)
The current specs of the machine are:

Update (7) - (Semi) Conclusion

I have installed 2GPUs in the system and it should now be ready for use, I am probably going to mount 2 120MM fans in the lid of the server at some point as the temperatures behind the front row of memory and CPUs are very high, it's very hot in the back of the server, I have already removed the PCI-e covers which were no longer needed, to hopefully increase airflow ever so slightly.

It is every clear both GPUS are breathing very hot air ar the temps are usually around 65C, the videocard above the second PSU bay is running a little hotter. this is the reason I only have 1 750W PSU installed, there are a few holes in the PSU housing allowing for some airflow, I probably have to make cutouts in here at some point to improve thermals and stability. The other video card has access to pretty much all air available in the system, albeit this air is very hot.

I have done some simple tests on the performance on one of the Virtual machines, it seems very responsive as the storage latency is very low with the 8SSD raid 6 array, ESXI reports the latency as 0ms most of the time.
The overhead was surprisingly low in my (limited) test, I ran the Built in CPU-z benchmark on a windows 10 install on bare metal and got 4682 - 4717 points on multithreaded performance, the virtual machine actually managed 4722, which was really impressive to me.

I was also looking at the bus usage for the GPUs as they are connected on a PCI-e 2.0 8x slot, but this seems to be fine as the bus never got close to 100%, not even to 20 for that matter.

Here is the code and some pictures and a video of what is very close to the finished product.

//doing this to your server can damage it.
//Define the PWM pins as fans
int fan1 = 3;
int fan2 = 5;
int fan3 = 6;
int fan4 = 9;
int fan5 = 10;
int fan6 = 11;

//since the fans are "reverse" PWM increasing the duty cycle will decrease the fan speed.
//Define the Variables for the fan control system
int start_delay = 5000; //Amount of miliseconds to spin the fans at start_pwm
int start_pwm = 127; //Intial startup PWM (this needs to do the intial spinup.)
int idle_pwm = 229; //Desired Idle PWM, it is imporatnt the fans do not stall out at this value.
int middle_offset = 2; // Higher to make the middle 2 fans spin faster to cool the CPUs
int target_temp = 322; // Target temperature at the thermal probe.

void setup(){
//Set the outputs
pinMode(fan1, OUTPUT);
pinMode(fan2, OUTPUT);
pinMode(fan3, OUTPUT);
pinMode(fan4, OUTPUT);
pinMode(fan5, OUTPUT);
pinMode(fan6, OUTPUT);

//Make all the fans spin up to the initial starting speed.
analogWrite(fan1, start_pwm);
analogWrite(fan2, start_pwm);
analogWrite(fan3, start_pwm);
analogWrite(fan4, start_pwm);
analogWrite(fan5, start_pwm);
analogWrite(fan6, start_pwm);
//Wait for the delay
//Make the fans spin at the desired idle pwm
//WARNING: Nothing is monitoring temps and thus they will have to be monitored manually!
analogWrite(fan1, idle_pwm);
analogWrite(fan2, idle_pwm);
analogWrite(fan3, idle_pwm-middle_offset);
analogWrite(fan4, idle_pwm-middle_offset);
analogWrite(fan5, idle_pwm);
analogWrite(fan6, idle_pwm);
void loop (){}

The high pitched sound you hear later in the video is the Quadro FX1800 card, it spins down once the operating system initialises it.

The beginning

In case you were wondering what kind of speed you can expect when you put 8 of those SSDs in raid 60 on an HP P410I controller:

The post is extremely slow but that is ok as the machine can stay on at all times or start scheduled just before work.
There are some issues preventing this from working right now:
- The HP server turns up it's fans when you put in an PCI-e GPU, which means the server suddendly isn't quiet anymore.
HP actually has really amazing and smart fan management, this means the 360 (with lower power CPUs) and the 380 can literally be quiet enough to operate in an office environment (albeit not under 100% contantly, but that is not going to happen)
- It seems like the second (physically 16x) PCI-e slot (which is right above the PSU) doesn't support GPUs, this will need some more testing.


The GPU was not working in PCI-e slot above the power supply because the PCI riser I took out of a DL380G6 server was physically damaged, I have replaced it and it is now working.
I have also put a 47Ohm Resistor in series with one fan now and I will test if this is functional tomorrow. I am really not sure if this is a realistic value, if it is not I will update the best value I have been able to find.
I am considering adding more 2/4 more fans in the empty space because there is no second drive bay, this would likely increase cooling performance by a lot while allowing me to run everything at low RPMs

Update (2)

Because I did not have enough 47Ohm resistors I put in 39Ohm resistors, the server was a lot quieter than it was before, but still far from quiet enough for a quiet office. I am now putting in 117Ohms worth of resistor to find out if this will resolve the issue and make the server silent enough for an office.

Please keep in mind that servers are not meant to run under these conditions and that you obviously can damage them them doing things like this to them.

When you take out all the fans (the 6 in a row, so the power supply and GPU remain) the server is dead silent. The main fans that have to cool the server do not have to be as quiet as the rest of the chassis but at least quiet enough so it won't be irritating when people are trying ot do their work.

If I can'nt make the chassis fans quiet enough I am going to consider modding the lid of the server to put in 120/140MM fans, to cool it, and/or maybe even look into watercooling it.

While soldering in the resistors in the fans I have noticed that there are 2 editions of the HP DL380G7 Fan (HP 496066-001). One is being produced by Delta, and the other one is made by Nidec. So far I have only used the Nidec model in this project as the fans have a lower power rating, 2.45A compared to 3.3A and don't have a frame which fills up most of the space around the cilinder.
The nidec fans have enough room for a big enough resistor to hide it under the red plate. (left Nidec, Right Delta)

Another (minor) issue could be that the server keeps spinning up it's fans and letting the speed drop a bit, the fans are not running at a constant speed, they ramp up and they rev back down. I am now sure how annoying this will be once the server is quiet enough.
If this is really annoying I will look into fooling the server into thinking the fans are installed and running using an Arduino, and put a few thermal probes in the system and have the Arduino control the actual fans keeping noise minimal.

Update (3)

After trying the 117Ohm resistors I have come to the conclusion that the fans would not even spin up. I have also thought about it a bit more and discovered that it is an extremly bad idea to make the fans spin slower by adding an resistor as there is already electronics in the fans which can be (ab)used to make the fans spin slower. This means I will snip the PWM input lead and hook this up to my arduino nano, which will then generate the PWM signal to make the fans spin. I will leave Fan speed detection wire connected to the server while praying it won't shut down if I do so (because of the very low fan speed.)

This hopefully means I will only have to generate a signal to control the fans and I leave the signal going back to the server as it is.

The fans are designed to operate at a voltage of around 12V, which means if you use a resistor to drop the input voltage they will not spin up properly, which will cause them to speed up and rev back down, as I mentioned earlier.

Update (4)

Blowing up 1 Arduino later I know that it is possible to control the fans with an arduino, it works very well.

As you can see in the video the 12V is very close to the Arduino pins, after changing the code a bit so I could set the speed using the serial interface I set the speed too hight and the wires moved a little, causing the 12V line to short out over the Arduino, sadly killing it :(

Another thing to take note of is the pinout on the HP fans, as they took me some time to get figured out before I was sure I could hook it up, If you are wondering here is the pinout.

DL380G7 fan Pinout
HP is very likely using the second ground pin to detect if a fan is installed(they are shorted using a little bridge), You only have to hook up one.

The little square on the bottom indicates the little notch on the header, and the colour of the circles indicates the colour of the wire the pin is connected to.

Another important thing to take note of is that the fans are Reverse(?) PWM, meaning if you increase the duty cycle the fans will spin slower.
So if you set the duty cycle to 50% (analogWrite(127);) the fan will spin a lot faster than when you set it to a higher value, like 75% (analogWrite(191);). If you let the fan stall out it will detect it and come to an complete stop, meaning you can't spin it too slow.

I am going to hook up each fan individually, but my code will likely controll them in groups. The fans in the middle will spin a little bit faster, because there will be more air resistance and more heat.

Update (5)

It looks like I am nearing the conclusion of this project. I have currently set up the system with 4 Delta fans and they are really loud, when spinning the Delta fans by hand they provide a much more noticable indent than the Nidec fans. This makes me believe the Nidec fans will be the quieter cooling solution, although I have had 2 Nidec fans with bad bearings so far so I am not sure how long they will hold up compared to the Delta fans.

With 4 fans in the system the server becomes rather quiet when it has posted (compared to the previous situation), I hope to make it a lot quieter once I swap out the fans.

Currently the server would be quiet enough for a rather loud office, but as the office this machine is going to run in is as loud as a slow spinning 120MM fan, or the coil whine of the closest laptop it's still too loud.

I will probably write one more update after this before adding some personality (probably just adding a few LEDs behind teh grill so it looks more aggressive :o ) and writing the conclusion, in which I will summarize my findings.

Here is a video Demo of the server posting with 4 Delta fans (warning loud), the post takes really long as there is 192GB of memory in the system.

I am still going to make the fans run a lot faster during the post, as this will ensure all the fans spin up, and if the system ever were to thermally shutdown it will have a while to cool back down before booting into the os.

Update (6)

With the Nidec fans the server has become a lot quieter, but with the current code the server still is not as quiet as I was hoping for, The nidec fans can go a lot slower before stalling out. I am not sure how the server will sound in the office environment but in my room it's still quite audible.

The loud fan that doesn't spin down is on the video card, this is because the system hasn't posted yet.

The temperatures were quite high, especially Temp30, which was reporting a temperature of over 90C.

I have set up the raid 6 array, and installed windows 10 on it, it is worth nothign that the installation took a long time.
Once booted into windows it's a monster, tearing through anything you throw at it. in the simple CPU-Z benchmark it was more than twice as a stock 4790K (the CPUs managed 4717 points on multi and 315.2 on single threaded performance).

The (Sequential 32q) results on teh storage were pretty amazing too at consistently over 740MB/s, the other results were worse, getting as low as 11MB/s for the 4K random reads.

The next step is for me to use the thermal probe I made to maybe shut off some of the fans when the server is running cool. I am not sure if I will do this as I would rather have a little more noise which would be consistent than fans kicking off and on all the time.

The server will get an ESXI install and a second GPU, this will bring the system up to spec. I am probably going to add some LEDs behind the front grill to add some personality.

Another thing I would like to point out is that I definitely do not recommend using resistors to make the fans spin slower, this will cause the fans to not properly spin up and speed up and rev down all the time, which is really annoying. Another problem is the power requirements for the resistors, I thought I used beefy enough for the servers, but they evidencely got really hot.

why this site

This is my website on where I can put some projects/share some information with the rest of the world \o/

server upgrade

More information on the about page!

I have updgraded replaced my server (I run my webiste on this server too), here is a short overview of the specificatoins, for more information you can visit the about page!

Here is a short overview of the specifications of the system:

-CPUIntel Core I5 7600
-Ram8 GB generic ram
-Storage5x 500GB HDD

And some roles/features:

-Hyper-VVirtual machines
-StoragePersonal cloud project
9-10 May 2017

Why IPv6

The site is now available on IPv6!

I decided to do something about my site again because as an IT student it wouldn't hurt if I had something to show off with ;), this site includes some links and I might try to keep some posts on here.
The main reason I added IPv6 support is because it is where the future is; At some point there will be people that don't even get a IPv4 address anymore, meaning they will not be able to visit sites that only run on IPv4 (unless they use a proxy, which has it's own problems...)
The main reason switching to IPv6 will be a good thing for in the future is because IPv4 addresses are running out. An IPv4 address can look something along the lines of:, this is a a 32 bit value. If we put this in a table we can see that there is a total of 32 bits, 8 for every set of numbers separated by a dot. The IP address is noted in a normal decimal format.

IP address (DEC)19216811
IP address (BIN)1100 00001010 10000000 00010000 0001

The total amount of IPv4 addresses is: 4,294,967,296 (2 to the power of 32), but a lot of these addresses cannot be used because they are used for other purposes, things like on local networks, and more.
To solve the problem of there not being infinite IP addresses we put multiple devices on one location behind a router, a router allows multiple local machines to connect to external networks over 1 address, the router makes sure that if Computer1 sends a request to it gets delivered on that machine.
IPv6 however is a 128 bit value, that means there are a total of 3.4*10^38 Addresses (Mouse for full value) this is enought to give every device it's own IPv6 address, and providers are doing this already. This also means that the firewall on said device needs to be good.
An IPv6 address is a set of 8 Hexadecimal values each 4 characters long; Hexadecimal(also known as HEX) means that there are a total of 16 possible values per character, HEX stands for 6 and decimal for the 10 numbers 0 thru 9 to add 6 more we use the first letters of the alphabet: A, B, C, D, E and F so the characters for Hexadecimal are: 0123456789ABCDEF: I will now add in a conversion table (-->)

As we can see table I put in here; You need 4 binary values to store the same amount of information as one Hexadecimal value, this is explained by the fact that we are working in different "base" math, Binary is base 2, there only are 2 possible states, either a 1 or 0, High or Low, On or Off. One hexadecimal value can have a total of 16 states, this is the reason it can store more information.

29 March 2017
Hai, I use cookies to make things work - Made by: Elias Eskes - © 2017