Tuesday, April 1, 2014

Quick Decimal, Hex, Binary, Octal Conversion on Windows

Sometimes you just need a quick and dirty way to convert between number systems (decimal, hex, octal, binary). The built in Windows calculator will actually do this for you. Simply start the calculator and under "View" choose "Programmer".


This should switch to the Programmer calculator view. Set the mode to whatever number system you are converting from - it should default to Decimal, and enter the number.


From here you just select the number system you want to convert to.


The number auto updates to the new number system. Done, quick and easy.

Friday, December 6, 2013

Cooling Down an ITX Board by Replacing Junk Thermal Pads

About a year ago I picked up the Sapphire Pure Mini E-350. I subsequently put a system together around it on the cheap over the next 2-3 months as some good deals showed up. It's performed well enough for some light HTPC duties (Netflix, a little indie gaming, etc.), and has enough expansion options and flexibility to have some decent longevity.


Being a mini-ITX board, the cooling is nothing to really write home about - especially with its screaming 40mm CPU fan, but this really shouldn't matter since it has such a low power draw. Since I had recently toyed with the option of leaving it on 24x7 I decided it was time to double check just how bad the temps could get if left unchecked. So I started OpenHardwareMonitor, loaded up the CPU and GPU and let it sit for an hour. Upon coming back to check how things were, I was pretty shocked:


Looking at the temps:
Max CPU: 89.8° C
Max GPU: 90.0° C
Max Temp 1: 78.0° C (I'm assuming this is the FCH -Fusion Controller Hub, see why below)

Just a note that the CPU and GPU temps should always be almost identical considering both parts are on the same die.

After idling for a while temps dropped to around the current values in the screenshot above:
Idle CPU: 62.0° C
Idle GPU: 62.0° C
Idle Temp 1: 52.0 C

Not what I like to see for a product I'm thinking of holding onto for a while. Let's see what the problem is.

The two heatsinks on the board have to be for the APU (CPU and GPU), and FCH. The APU (AMD E-350) has a max TDP of 18 watts, and FCH (AMD A50M) of 5.9 watts. Fully loaded these will get pretty toasty. Time to void the warranty.

First, we pop off the APU heatsink. It's mounted well with 4 spring loaded screws from the back. It has a crappy thermal pad slapped on the bottom:


Notice how thick the material is where the APU made contact - not good for thermal conduction at all. Residue still on the APU, you can see how brittle the material is:


I removed the residue from the APU with isopropyl alcohol. Then, I scrapped it off the bottom of the heatsink with a small wooden skewer. The entire bottom is a rough finish of anodized aluminum. To do this right, the bottom should really be sanded and lapped to a nice finish, maybe a project for another day. At this point - lets check on the FCH:


Same story as before, looks like the pad was almost folded over too. I finished cleaning everything up - we're ready for some thermal paste:



I applied some Arctic Silver I had lying around - really almost anything would be better then the original stuff. Once everything was back together, I powered on and went strait to the BIOS to monitor temps before booting. Things looked good, so I let it boot and ran our test again:


What a huge difference:

Max CPU: 75.3° C        - Δ of 14.5° C
Max GPU: 75.0° C        - Δ of 15.0° C
Max Temp 1: 62.0° C    - Δ of 16.0° C

Idle CPU: 47.5° C          - Δ of 14.5° C
Idle GPU: 47.0° C          - Δ of 15.0° C
Idle Temp 1: 36.0° C      - Δ of 16.0° C

What a huge difference! I was kind of surprised that the temp delta was identical between load and idle, but this is likely due to the rough bottom of the heatsink. Things should only improve as Artic Silver takes several heating/cooling cycles to spread out and "flow" evenly.

Looking at improving things further, the APU heatsink is larger then the 40mm fan. I test fitted a 60mm fan and it would fit while hanging off on one side. This would provide increased airflow over a larger surface area, all while spinning at at a slower speed. I could have this fan hang over the passively cooled FCH heatsink, further improving tempts there.

The board does also support a 4-pin PWM fan on the CPU. This would be an additional option to quiet things down when idle.

I'll update in a few weeks once the thermal paste has cycled a bit.

Sunday, November 10, 2013

Dell PowerEdge R610/R710 Firmware - "The updates you are trying to apply are not Dell-authorized updates"

The other day I was performing some much needed firmware updates on a Dell PowerEdge R610 using the built in UEFI GUI. This usually goes pretty smoothly, but this time I received the following message:
"The updates you are trying to apply are not Dell-authorized updates."

After searching around I finally came up with a solution. The firmware updates have the signing certificates checked by iDRAC and the Lifecycle Controller. Dell changed/expired their cert so it is no longer considered valid by the old firmware. To get the new certs to be considered valid the iDRAC and Lifecycle Controller need to be updated, but since they are considered invalid this can't be done from the UEFI GUI. The answer is to update from the iDRAC web GUI.

Quick note: I documented this after updating, so some screenshots and instructions may not be 100% exact, but should be close enough to get through. Also, if you FUBAR your server its on you. This worked for me, but verify that the files mentioned and process shown match your hardware.

On reboot enter the iDrac by hittering CTRL-E when prompted:

Now enable iDrac. Set "iDRAC6 LAN" to "On":

Under "LAN Parameters" scroll down to IPv4 Settings and set IPv4 to "Enabled" and set valid LAN parameters (static would likely be easiest):


Now would also be a good time to set your iDrac credentials to something you know. Set the password in "LAN User Configuration":

Save changes and exit.

The server will start to boot normally. Would be best to halt the boot process here as you'll just have to reboot again soon (Windows - F8, VMWare - CTRL+O, Linux - Arrow keys, etc).

Now you need to wait for the iDrac to start its networking services. This could happen in 30 secs, or maybe a few minutes. I usually just run a continuous ping of the IP I just set it to until I start seeing a response.

Log into the iDRAC web GUI - https://<IP-you-set-the-idrac-to> (root and whatever you set the password to)

Click the "iDRAC Settings" on the left then choose the "Update" tab at the top:

Download this file (Life Cycle Controller Repair): http://downloads.dell.com/FOLDER00502596M/1/BDF_1.5.5_BIN-12.usc

Click on the "Choose File" button and point it at the BDF_1.5.5_BIN-12.usc file. Click "Upload".

The file will be uploaded and after a few minutes it will prompt you if you want to update. Choose Yes. It should quickly come back saying the update has been applied successfully.

Download this file (iDRAC firmware updater): http://downloads.dell.com/FOLDER01270825M/1/iDRAC6_1.95_A00_FW_IMG.exe

This contains a .d6 file you need (firmimg.d6). I just extracted the file from the exe using 7zip.

Navigate back to the update page (I had to navigate to a different page first) and upload the .d6 file.

The file will be uploaded and after a few minutes (could take up to 20) again it will prompt you if you want to update. Choose Yes. Eventually it should come back saying the update has been applied successfully and the iDRAC will now restart.

You now have to wait for the iDRAC to restart. I just run a continuous ping again and wait to see a few timing out - this happens when iDRAC restarts. Once it starts responding it's successfully restarted.

Restart your server and enter the UEFI - "F10 = System Services"

Run your update again and it should now complete successfully (usually takes several reboots). When its done it will drop you at the main UEFI screen. I usually run the update one more time and it should show everything at the current version:

Reboot and disable iDRAC again unless you have appropriate security measures in place to protect it.

I was able to apply the same process to both R610 and R710 servers of the same generation. YMMV.

Credit to the original thread where I found this solution: http://en.community.dell.com/support-forums/servers/f/177/t/19475476.aspx