Posts Tagged #Hardware

A generic tag for posts about computer hardware or other physical electronic devices.

Updated Posted by Arnon Erba in How-To Guides on .

If you have a recent business-class Dell PC with TPM version 1.2, you may be able to upgrade it to TPM version 2.0. Several Dell models are capable of switching between TPM version 1.2 and 2.0 provided a few conditions are met.


First, your PC must support switching to TPM 2.0. Most supported models are listed in the “Compatible Systems” section of the instructions for the Dell TPM 2.0 Firmware Update Utility itself. If you can’t find your system in that list, there’s a good chance it isn’t supported by this process.

Second, your PC should be configured in UEFI Boot Mode instead of Legacy Boot Mode. Switching boot modes generally requires a reinstallation of Windows, so it’s best to choose UEFI from the start.

Finally, while optional, it’s recommended that you update your BIOS to the latest version. You can get your serial number by running wmic bios get serialnumber from within PowerShell or Command Prompt. Then, you can provide this serial number to the Dell support website to find the latest drivers and downloads for your PC.

Once you’re ready, you can clear the TPM and run the firmware update utility. However, since Windows will automatically take ownership of a fresh TPM after a reboot by default, we have to take some additional steps to make sure the TPM stays deprovisioned throughout the upgrade process.

Step-By-Step Instructions

  1. First, launch a PowerShell window with administrative privileges. Then, run the following command to disable TPM auto-provisioning (we’ll turn it back on later):
    PS C:\> Disable-TpmAutoProvisioning 
  2. Next, reboot, and enter the BIOS settings. Navigate to “Security > TPM 1.2/2.0 Security”. If the TPM is turned off or disabled, enable it. Otherwise, click the “Clear” checkbox and select “Yes” to clear the TPM settings.
  3. Then, boot back to Windows, and download the TPM 2.0 Firmware Update Utility. Run the package, which will trigger a reboot similar to a BIOS update.
  4. When your PC boots back up, run the following command in another elevated PowerShell window:
    PS C:\> Enable-TpmAutoProvisioning 
  5. Reboot your PC again so that Windows can automatically provision the TPM. While you’re rebooting, you can take this opportunity to enter the BIOS and ensure that Secure Boot is enabled (Legacy Option ROMs under “General > Advanced Boot Options” must be disabled first).
  6. Finally, check tpm.msc or the Windows Security app to ensure that your TPM is active and provisioned.


Updated Posted by Arnon Erba in News on .

The proximity sensor on several iPhone models appears to have been temporarily affected by the iOS 11.3 update released in March this year. The proximity sensor, which is located near the earpiece and the front-facing camera, is supposed to detect when the phone has been placed near a user’s ear so that the screen can be blanked to prevent unwanted touch input. However, after the iOS 11.3 update, some proximity sensors appear to be constantly stuck on, causing the screen to go black even when the phone is not engaged in a call.

I confirmed the issue on my iPhone 7 after trying to figure out why the screen was randomly turning black. You guessed it: I was placing my finger over the proximity sensor by mistake. Upon further investigation, it turned out that I could replicate the strange behavior in any app and even on the home screen.

The Fix: Force Restart

Fortunately, a force restart fixed the proximity sensor issues, even though a regular shutdown/restart did not. To force restart your iPhone, refer to Apple’s help page on the subject:

iPhone X or iPhone 8

Press and quickly release the Volume Up button. Press and quickly release the Volume Down button. Then, press and hold the Side button until you see the Apple logo.

iPhone 7

Press and hold both the Side and Volume Down buttons for at least 10 seconds, until you see the Apple logo.

iPhone 6s and older

Press and hold both the Home and the Top (or Side) buttons for at least 10 seconds, until you see the Apple logo.

The Forums Agree

It appears the proximity sensor issue has already made an appearance on the Apple forums:

Updated Posted by Arnon Erba in How-To Guides on .

Several months ago, I was handed a sheet of paper with a strange error printed on it. One of our HP M602’s had spit it out, it seemed, while working on a real print job for one of our users. On further inspection, the printer had printed several identical pages with the same error, smiley face and all:

☺@EJL 1284.4

My first guess was a corrupted driver, so I re-installed the printer for the user who had reported the issue and waited for the error to come back.

It didn’t stop there. It wasn’t long before several users started reporting the error, all from different computers running different operating systems, and then the error pages started printing in the middle of the night when no one was using the printer.

We maintain a small fleet of HP M602’s and M605’s, but until this point the error had only been appearing on one of them. Updating the firmware on that printer didn’t help: instead, by the second week, all of our printers were randomly printing the @EJL 1284.4 pages.

Tracking Down the Issue

At this point, we inspected the print logs on the printers themselves and realized that every time an error page printed a “Guest print” event was added to the job log. Unfortunately, the M602/M605’s don’t log the source IP of the jobs they receive, but they do log the time and date when the job was processed. Now that we knew a network device was responsible for the mysterious print jobs, it was just a matter of finding the device on our network. After overcoming a minor setback caused by incorrect time and date settings on most of the printers, we were able to log traffic on the network and correlate it with the timing of the mysterious “Guest print” jobs to find the source IP of the offending device.

To figure out which computers were communicating with the printer, we shut down the printer and set up a Linux box in its place with its IP address. The, we gave the printer a new IP address, and configured the Linux box to forward all the traffic it received to the new IP address of the printer. Since the Linux box was now in a position to receive all traffic intended for the printer, a simple tcpdump session quickly revealed the source IP addresses of all the computers trying to send jobs to the printer. At this point, it was simply a matter of waiting for another error page to print, and the printer happily obliged.

Thanks, Epson (Fixing the Problem)

With the source IP address of the offending computer in hand, we tracked down the physical source of the rogue print jobs. It turned out to be a MacBook Pro, running a full Epson software/driver suite, that had joined our network at the same time that the error pages started printing. Some extensive Googling from the past week had led to the conclusion that “EJL” stood for “Epson Job Language”, so I formed a quick hypothesis that the Epson drivers were doing something that our HP printers weren’t very happy about. I uninstalled the Epson drivers from the MacBook, and sure enough, the @EJL 1284.4 pages stopped instantly.

Whatever the exact cause, the issue was clearly caused by a conflict between the Epson software suite and our HP network printers. If you encounter this error and you’re not on a large network like we are, it might be worth checking your computer for Epson software.

Epson, if you’re out there reading this, you owe me 3 reams of paper and a black toner cartridge for an HP M602.

A Little More About @EJL 1284.4

According to the Undocumented Printing Wiki’s page on Epson Job Language, the @EJL 1284.4 command:

takes the printer out of the Epson packet mode communication protocol (whatever that is) and enables IEEE 1284.4 communications mode

On top of this, the HP/Epson conflict has been well documented on HP’s support forums over the past year:

Updated Posted by Arnon Erba in General on .

One of the hardest and most contentious steps of building a computer is applying thermal paste. While most everything else is as simple as snapping connectors together, putting in screws, and hoping that your graphics card isn’t too big for your case, it’s hard to be sure that the cooling system of your PC is operating at maximum efficiency. Installation notwithstanding, I’ve always wondered two things about thermal paste:

  1. If reapplying old thermal paste after a few years is a good idea
  2. If third-party thermal compounds are better than the ones that come with pre-built PCs

With an old desktop sitting around my house and a few spare hours, I decided to answer both questions by setting up some tests and replacing the stock thermal paste.

Setting Up the Test

I tried to make the test as scientific as possible with the hope of getting a clear answer. The PC in question was purchased in 2012, so it’s a good example of an older machine that’s seen regular home use over the course of its life. Before starting the test, I had to clean out a vast amount of dust that had accumulated inside it over the years.

Computer: Lenovo H520s small form factor desktop
CPU: Intel Core i5-2320 at 3.00 GHz, turbo boost up to 3.30 GHz
Software: Speccy for temperature data and IntelBurnTest for load testing
Thermal Paste: Arctic Silver Céramique 2
Ambient Temperature: 19° C (66° F)

Speccy is certainly not the only piece of software that can be used to record CPU temperatures, but I’ve found it to be reasonably accurate in the past. Besides, the temperatures by themselves are not that important — I’m mainly interested in the difference in temperatures before and after replacing the thermal paste.

Baseline Tests

To establish a baseline, I tested the PC at a warm idle and then under load. To make sure the computer was sufficiently warm, I ran a few passes with MemTest86+. Memtest86+ doesn’t put much load on the CPU, but I just wanted to get the computer doing something so it didn’t have the unfair advantage of a cold start. After letting it run for a few hours, I rebooted directly into Windows and waited until the CPU was almost completely idle before recording the temperatures.

When comparing idle versus load temperatures, it’s important to keep in mind that the i5-2320 downclocks and undervolts itself when idle to save power. At idle, downclocked to 1.6 GHz on all four cores, I measured the average CPU temp as well as the general spread of temperatures per core.

Average CPU temperature at idle: 30° C
Temperature spread at idle: 28° C to 32° C

To establish a baseline at load, I ran IntelBurnTest on “high” (2048 MB of RAM) for 5 passes and recorded the maximum temperature from the final pass.

Average CPU temperature at load: 70° C
Temperature spread at load: 68° C to 71° C

It’s worth noting that this particular motherboard seems to only increase the CPU fan speed once the CPU reaches 70° C. I was surprised at how warm the chip had to get before the fan speed increased, but once it reached 70 degrees the temperatures seemed to stabilize.

Replacing the Thermal Paste

There’s a number of different techniques that can be used to apply thermal paste. Some people suggest drawing a line across the CPU, while others suggest spreading the thermal paste out before installing the heatsink. I’m not a fan of either of those approaches, since the line can easily be squeezed over the edge of the CPU and air bubbles can be introduced into the paste by spreading it. Instead, I opted to use the tried-and-true “single dot in the center of the CPU” method.

First, however, I wanted to see what the original thermal paste looked like. Here’s what I saw when I detached the stock heatsink:

It’s not bad. The paste is spread out evenly and isn’t too thick. It also wasn’t dry in the slightest, even though some Internet forums claim that old paste dries up over time.

The paste was also spread evenly on the stock aluminum heatsink, as I expected:

With my curiosity satisfied, I cleaned the CPU and heatsink with isopropyl alcohol (92% concentration, the highest I can usually find in stores). I put on slightly more thermal paste than I generally do, but Arctic Silver Céramique 2 is advertised as non-conductive in the off chance that it does get somewhere it shouldn’t.

With the new thermal paste on, I re-installed the stock heatsink and pieced the computer back together. Careful inspection down the side of the heatsink revealed that the replacement paste had just barely reached the edge of the CPU, indicating that it had fully covered the CPU lid as intended.


Arctic Silver’s site claims that Céramique 2 is capable of dropping CPU temperatures by “2 to 10 degrees centigrade”. They also claim that due to the nature of the paste it takes “a minimum of 25 hours and several thermal cycles” for it to reach maximum cooling efficiency. Unfortunately, I didn’t have 25 hours to wait for the paste to fully cure, so I ran the CPU through a couple thermal cycles and called it good. Feel free to discount my results because of this, but keep in mind I have tested the break-in period before and I don’t think it makes much of a difference.

I performed the same tests as with the stock paste, so see the “Baseline” section for the methods I used. Without further ado, here’s the results I measured at idle after replacing the stock thermal paste:

Average CPU temperature at idle: 25° C
Temperature spread at idle: 24° C to 27° C

And the results at load:

Average CPU temperature at load: 70° C
Temperature spread at load: 68° C to 72° C

To my surprise, the idle temperature dropped by fully 5° C, at least according to my measurements. However, the load temperature didn’t change at all.

Five degrees at idle could be chalked up to measurement error, but I’d like to think that replacing the paste had some effect. On the other hand, I have a plausible but disappointing explanation for why the load temperatures didn’t change: the fan speed on this particular desktop is dynamic and seems to only increase when the CPU hits 70° C. Without a way to constrain the fan to a certain speed, it did its job and kept the CPU from going too far over 70° C. For what it’s worth, the points at which the fan speed increased seemed identical before and after replacing the thermal paste, indicating that the CPU wasn’t heating up much faster either way.

In short: was it worth it? Not to me, as it took several hours and a lot of effort and resources for minimal gain. It seems like, at least on this particular computer, there’s little improvement to be gained by replacing the stock thermal paste.

Updated Posted by Arnon Erba in General on .

Google’s Chromecast hit the market two years ago, and has sold well because of its promising features and its compellingly low pricing. Here’s how it works and what might make it a good purchase for you.


How it Works

Chromecast is essentially a tiny computer that pipes media content into an HDMI port on your TV. That’s about all it does. You can’t interact with the device’s software aside from attaching it to your WiFi network and changing the background image it displays when it’s idle. All of the device’s settings must be changed through the mobile app or from a small desktop app for your computer. It doesn’t make your TV into a separate computer; instead, it acts much more like an HDMI cable.

The primary purpose of Chromecast is to help you display your mobile device’s video or audio stream on your TV. Chromecast uses Google’s new Cast technology to function, which many apps now support. In an app that supports Google Cast, all you have to do is tap the Chromecast icon and you can cast your screen and audio output to your TV.

The cool part about casting media from your mobile device is that in a Cast-enabled app, the media stream is handed off from your device to the Chromecast entirely. That means that you can start playing a YouTube video on your tablet, tap the Chromecast icon, and then lock or turn off your tablet. In apps like Netflix, Hulu, or YouTube, your Chromecast will stream the requested media straight from the Internet without having to go through your mobile device. This is where Chromecast starts to sound a lot more appealing than an HDMI cable.

Chromecast also offers a feature for desktops that’s still in beta mode: the Google Cast browser extension for the Chrome browser. Using this extension, you can cast Chrome tabs or even your entire Windows or Mac desktop to your Chromecast. However, this is not the most reliable Chromecast feature, at least for now.

The utility of Chromecast also depends on the features your TV provides. Chromecast can’t draw power from the HDMI port alone, so it requires a USB power supply as well. On newer TVs with built-in USB ports, you can simply hook up your Chromecast to one of the TVs USB ports. On older TVs that only have “service” USB ports, you’ll have to use the bundled external power adapter. Also, if your TV is new enough to have HDMI ports that support the Consumer Electronics Control feature, starting a cast will cause your TV to automatically switch inputs to display what you’re playing on the Chromecast.

Why You’d Want It

If you want to enable internet streaming for an old TV, Chromecast is perfect. It’s cheap and easy to set up and works with Android and iOS tablets and phones. If you regularly use mobile devices and want some way of easily streaming music or video to your TV, Chromecast is for you. The ability to cast media while your device is locked or turned off is impressive and useful.

However, if you’re looking for some way of connecting your desktop or laptop to your TV, Chromecast may not be as useful. The Google Cast browser extension for Chrome works well on sites that are optimized for Chromecast, but otherwise casting tabs can be laggy or unreliable. The connection quality, being wireless, is easily bested by a direct HDMI connection.

Also, if you’re looking at Chromecast as a way to play DVDs or other offline media on your TV, you’ll be disappointed to hear that you can’t. Google Cast for desktop only supports casting media that can be played in the Chrome browser. You can open offline music files of certain types in Chrome, but as of now there is no way to play DVDs or CDs.

Bottom line: if you use mobile devices often and need some way to play music or video on your TV while still being able to use your tablet or phone, Chromecast is for you.

Setting it Up

Google has done a good job making Chromecast easy and fun to set up. The pictures below are of the unboxing, and the last two show Google’s simple in-box instructions on how to set up the Chromecast. Essentially, you plug your Chromecast into your TV and into the power adapter, and then download the app on your mobile device or on your computer.

Updated Posted by Arnon Erba in General on .

You’ve probably noticed that network speeds, hard drive capacity, and memory size all use different measurements. What do these measurements mean, and how can conversions be made between them?

Bytes to Bits

Networking speed is commonly measured in gigabits, megabits or kilobits per second. This is a different measurement than that which is commonly used for hard drive capacity, or gigabytes. The difference lies in the fact that one byte = 8 bits. Kilobits, megabits, and gigabits are all multiples of bits, whereas kilobytes, megabytes, and gigabytes stem from the byte. This means that networking speed measurements are 1/8th of storage space measurements, which is why downloading a 30 megabyte file over a 30 megabit per second Internet connection takes eight seconds instead of one second.

Now let’s compare hard drive capacity vs. memory capacity. This is a confusing issue that involves mislabeled storage sizes.

A gigabyte is actually 1000 megabytes, despite the common misconception that it is 1024 megabytes. The proper terms for the 1024-based measurements are kibibytes, mebibytes, gibibytes, and so on. Megabytes are decimal values, and mebibytes are binary values. The misconception arises from the JEDEC memory standards that label binary memory sizes (64, 128, 256, 512, 1024, etc.) using the decimal terms kilobyte, megabyte, gigabyte, and so on. Hard drive manufacturers also use the terms megabytes and gigabytes, but measure hard drive space using decimal values. Because of this, one gigabyte of hard drive space is 1,000,000,000 bytes whereas one gigabyte of RAM is actually 1,073,741,824 bytes.

Of course, the actual storage space on a hard drive will be less than the advertised capacity after it is formatted, further adding to the confusion.

This is why I can never simply answer the question, “How many megabytes are in a gigabyte?”