Tuesday, November 6, 2018

An open letter to hardware manufacturers

Computers run on electrical energy, and most if not all the energy that runs their processing circuitry gets converted into waste heat. A computer with an under-powered cooling system is at risk of failure from overheating if it ever runs a program that puts a load on it. We don't see machines burning out often under load anymore because modern components have protections built in that will throttle down their speed if they run too hot and shutdown if they cannot keep themselves below the rated maximum limit. This does not give you a license to be lazy and pair a powerful component like a high end CPU with a poorly designed cooling system because the component will be slowed by thermal limits and the user will have wasted their money on an expensive part that will never reach its full potential. Users are not always told by sales people to consider their cooling solution and will therefore buy a computer that is heavily bottle-necked by a poor design, and any attempt by people like me to explain this is met with skepticism and in some cases accusations of brand loyalty against their decision. Users deserve to get their full value from their purchases and they aren't always educated on the complexities of picking the best product, this is not their fault as few people are an expert in all fields and most typically defer to those they trust such as you, the manufacturers.

I get that many users want thinner and lighter machines that are more powerful, but these are mutually exclusive traits. Most users will think that a MacBook Pro with a Core i9 will be faster than my desktop Ryzen 5 1600X due to the fact the laptop has a Core i9 but they'd be surprised when they end up thermal throttling and my much cheaper desktop takes the lead. You can have a powerful machine but if it cannot run at full speed due to thermal throttling, not only will it be a waste of money but it will also have a shorter service life and lose performance per watt ratings and therefore get less done with a given power supply. Many users are unaware of this fault of their gadgets, and won't notice until a properly built machine is shown to them. This ignorance it not their fault, and it's something we all need to help with. This however does not mean that you should sell them a shiny machine that won't perform at its full level.

In a laptop or small PC, keep thermals and power usage as a top priority and use parts with a lower TDP and increase the performance of the cooling system. Doing so will allow the machine to run faster, quieter, and more energy efficient. My PC for example has a CPU cooler that's about double what's required as that was the only cooler in stock at the time. Due to the overkill nature of the cooler, my CPU fans never spin up past 20% and my machine is quieter than an otherwise equal machine with a smaller cooler. This also leaves headroom to overclock and squeeze out a tiny bit more speed. My laptop suffered from overheating and a similar cooling system to the MacBook Pro line, I modified the cooling system, replaced the thermal compound, wired the fans together, and separated the intake and exhaust vents, and the result is a machine that is 10 degrees Celsius cooler, quieter, and more stable than the factory configuration. I should not have had to modify my laptop but it shows the gains are not only for an enthusiast machine as my laptop is never used for heavy loads now that I have a desktop. Users typically don't have the skill to pull off such a modification (I barely did), it's up to you to make a good product that won't need such a drastic step to keep it running as advertised.

I'm not asking to have the thin and light machines and tablets discontinued, I get that people like them, and I may buy one someday. What I'm asking for is appropriate design that takes engineering over a check box an a spec sheet. A user will be better served by a product that has a less powerful and power hungry CPU and GPU if their machine cannot cool the more powerful one. Maybe a user is better off to go with a dual core CPU on a small laptop than the six core inferno that will bake after a second or two of moderate load. Please design your products to run cooler and more efficiently before you slap a hot running CPU inside to check a box. I humbly ask that you be transparent about how and why devices run and why a more powerful CPU is not always faster. It makes the job of local nerds much easier when we don't have to explain the laws of thermodynamics to explain why a machine is running loud, hot, and slow.

I am humbly asking that you put engineering above the spec sheet, market cooling and/or real world performance as much as you market the weight and size. And maybe you'd consider making enthusiast and professional grade machines again, but maybe more professional or enthusiast grade with matching cooling, power, and balanced part selection. What used to be common sense should be common once again.

Friday, June 1, 2018

Two apps on the store, one to go.

I have been posting lately about my apps being placed on the Play Store. I have now released my second app through the store. First I released Crypto Helper to the store and despite having no advertising it got downloads in countries I forgot I released it in, Although I have yet to make a single cent on it because I put it on sale from the beginning. I then released my second app, Genetic Helper, which is now available through the Play Store.

While I made these applications for private usage amongst my friends I decided that I would share them with the world free here on my blog, and then I figured I would invest a few dollars to buy a developer membership with Google and release the apps on the store where they would be easier to download. I am hoping to eventually make my initial investment back on my apps, but I am unsure if that will happen. I the mean time I hope to have them up and in view of any employers I may work for in the future as a means to demonstrate my progress.

Here is some images linking to the store pages for Crypto Helper and Genetic Helper:

Friday, May 25, 2018

My first Play store listing.

I found my app Crypto Helper on the Play store, it's not exactly easy to find unless you know what to type in but perhaps with time and search engine optimization I can move it up a few in the listings and maybe get a few downloads.

I have decided to put it on sale for free, I can always make it free later but I cannot go back to paid so a solution that allows me to weigh my options while allowing early users to use it is to make a sale.

Download it on the Play store here: https://play.google.com/store/apps/details?id=com.dalton.cryptohelper

Thursday, May 24, 2018

Lessons from building a PC.

For a while now I have been using my desktop PC as my main system, I prefer my laptop to my phone, and my desktop to them both which seems backwards compared to the popular trend of smaller and lighter computers and favoring phones and tablets running phone software over traditional computing powerhouses. As a programmer, hobbyist, enthusiast, and gamer I cannot understand this trend of ditching traditional computers for phones, though I can understand wanting a small and light laptop at the expense of power, though I cannot understand why a PC is neglected in that case as a general work horse to cover for the lack of power in the laptop.

I built my PC long before I needed it, this was due to all the parts I wanted going on sale at the same time for deals that I could not pass over. I built it with expansion in mind as things like RAM are very expensive right now and I don't need them just yet.

Specs:
  1. CPU - AMD Ryzen 5 1600X not yet over clocked
  2. GPU - AMD Radeon rx 580 8GB GDDR5 - Sapphire Nitro version - You need a GPU to add a screen to Ryzen at least when I bought it
  3. 16GB DDR4 RAM configured as 1x 16GB Corsair vengeance RAM with the lowest latency I could find
  4. 512GB Samsung PRO M.2 SSD, NVMe based
  5. EVGA 1000 watt PSU similar to this but the mother board connector is not detachable.
  6. All resting on the ASUS ROG Strix B350-F full ATX motherboard which was the cheapeast in stock at the time due to the sale.
Although I should have used 2 or 4 sticks of RAM with less capacity if I wanted to stay within recommended configurations, I left 3 slots open for expansion when the cost falls, and I bought 16GB when I only really need 6 or 8GB because 16GB sticks should have plenty of capacity for my future expansion once prices fall.

My CPU came without a heat sink and the only one in stock large enough to handle a future over clock was the Corsair H100i v2 AIO water cooler, the sale made it the same price as an air cooler so I was happy to take the aesthetic upgrade. Six cores are nice but I only ever use 3 so accidentally leaving a heavy application running makes little to no perceivable dip in performance for me.

About six months before building the machine I purchased the power supply, this was because I had some cards to try out in a loaned machine with a power supply barely big enough for its modest CPU. I had no idea how big I needed for this rig I would build but I knew I going to have multiple GPU's installed so I went overkill with a 1000 watt unit. The advantage despite the price of a vastly over sized power supply is the unit's eco mode which powers off the fan below a temperature threshold rarely powers up the fan unless the entire system is under an artificial stress test load. It's also got plenty of room to expand and remain in the most efficient part of its efficiency curve.

The SSD was the right price, thats the only reason I bought it. As a 512 GB pro model with very good speeds it has a hefty price tag normally but I got it for less than my vastly inferior SATA based SSD. It was less to buy this SSD than to buy the consumer model which was not on sale at the time.

My GPU handles loads quite well, I notice buttery smooth game play even with a spare monitor connected for other programs like recorders with noise levels low enough my CPU fans drown out the GPU fans. The only game it has trouble with is Factorio, I don't think this is a fault of the card or my CPU because my vastly inferior laptop is exactly the same with the stuttering and 56 FPS maximum. This was not an issue until a certain upgrade, and the game is in preview so I expect this is an optimization issue and not a hardware or software issue. I purchased an AMD graphics card because although the gap between AMD and Nvidia is narrow I hear more efficiency in computing on GPU from AMD than Nvidia, and since I built this rig as a work station and not a gaming machine I prioritized computing over gaming. I also purchased an AMD unit because of crossfire which is more friendly to me than SLI due to less restrictions on hardware and software. I am impressed with the cooling system but I feel my airflow needs tweaking as I can feel hot spots under the card where there should be cool, fresh air. This issue will be rectified once I get some new case fans and move one cable that is blocking one of the card's exhaust areas.

My only issue with the motherboard is the placement of the PCIe slots, I wish they moved the SSD space down and moved the full sized slots up exactly one spot so that I could physically fit 3 cards in my case without an extension cable. Moving the PCIe slots would also allow a better view of the LED lit chipset heatsink which is decorative and would be nice to see rather than hidden by the video card.

I learned that sometimes following the manual is a bad idea, my AIO cooler manual says to hook the two fans into the pump block and plug the pump into the CPU fan header but this draws too much current for my motherboard and it's better for BIOS fan control to hook the two fans into the CPU fan headers and the pump block into the dedicated AIO pump header. I also learned how much more pleasant gaming hardware is to work with than the hardware in typical consumer computers, my memory was not installed correctly when I pulled it to work on something near by to lower risk of damaging my only memory module, and some POST code lights helped me figure out it was a memory issue and re-seat the module, there was no video output so those lights saved me a lot of trouble. A luxury I did not have on any consumer machines I've worked with.

This project taught me about cable management and airflow, and I'm about to make a serial port and SATA bracket for my micro controller programming and RAID with my hard drives in their external enclosure. I also learned to check ho many drives physically fit into a computer case before buying it but I still did not have much choice at the time. the case i have will only hold 4 desktop drives but it would fit 5 or 6 mobile drives.

Monday, April 23, 2018

Added support for all my Andorid apps.

Rectified an installation issue in Numberwiz which had it's API versions slightly out of whack, it would've worked for anyone on android 7.0 or higher but since it doesn't have any issues supporting older Android versions I decided to make it work on my device and many others running Android 4 or higher.

More importantly I added support for Multi Window mode on Android 7.0 on all 3 apps (Genetic Helper, Crypto Helper, and Numberwiz) i also made them support Multi Window for Samsung devices running below Android 7.0. I feel it may also me supported on most Multi Window capable devices but I can only verify on the devices I have.

Here are some screen shots of the multi window support on my personal Galaxy S5:

Numberwiz sharing screen with Crypto Helper.

Genetic Helper and Crypto Helper sharing screen time.


Links are the same as always:

Download page and checksums here.

Direct download for Numberwiz: https://goo.gl/IF9lfF

Direct download for Genetic Helper: https://goo.gl/z35evC

Direct download for Crypto Helper: https://goo.gl/0L10ob

Enjoy!

Wednesday, February 14, 2018

Lessons from buying, breaking, and fixing my laptop PC.

My laptop is an ASUS K501-UX, I have mixed feelings about the machine. They are nice for battery life considering its processing power. I have attached images of my rework on the unit below.

My model shipped with:
  • 6th generation (Skylake) dual core i7 6500u CPU
  •  8GB DDR3 RAM, Nvidia GTX 950m GPU
  •  128 GB m.2 SATA SSD
  •  1TB SATA mechanical hard drive
I imaged the SSD onto an external to preserve factory settings before installing Linux Mint on the first day I had it, I have used the Windows drive for a while and although Windows 10 is much better than previous versions I still prefer Linux Mint for several reasons ranging from software architecture to my preferred look and feel.

The modifications I made to the machine are as follows:
  • Replaced the mechanical hard drive with a Samsung 850 EVO 500GB SATA based SSD
  • Upgraded the thermal paste (I'll explain later)
  • Soldered the smaller fan to the main board
  • Fixed the audio chips after solder exploded onto them
Replacing the hard drive and installing Linux onto it was my best decision with this machine, I used the new SSD as my Linux boot disk so I can easily put Windows back onto the smaller SSD if I so choose as I still have the disk image floating around my collection of hard drives. The Samsung SSD I installed is fast and saturates the SATA bus it's connected to allowing real world performance in the order of 450 to 499 MB read per second, not overly impressive compared to an NVMe SSD pulling more than 3 gigabytes per second read speed but the limiting factor here is the SATA bus and not the SSD.

Linux boots fast, and its quite stable on this machine. When I first had it there were some idiosyncrasies but an update a while ago made these disappear. The only issue I have so far is with the GPU which isn't surprising given Nvidia's attitude toward Linux and the fact that this machine has a hybrid graphics solution courtesy of Nivida's optimus technology. One is the integrated GPU that comes fixed to the CPU, it's slower but less power hungry than the discrete graphics processor which is slightly unstable on this unit. The issues have been largely fixed but I cannot put the machine to sleep if the Nvidia chip is running or it'll crash my graphical interface. However, Linux is still working fine and I can access it via the network over SSH, but having one GPU break the interface and render the machine unusable is not something a user wants to deal with. There are a few theories to the underlying cause, one of which was presented b a colleague who's got some experience with this issue and he thinks it might be a quirk with hybrid graphics and Intel's Skylake lineup, he reasons the CPU generation has other GPU related issues under Windows so this might be a CPU thing under Linux. Fortunately this is rarely an issue as I never use the discrete graphics unless gaming and plugged in to the power supply and the integrated Intel graphics are perfectly stable and they're fast enough for most uses. Since I rarely use the dedicated GPU, I don't bother activating it and therefore it's not worth the effort to troubleshoot it for the once per year I might use it.

I have noticed a flaw in this model though, I have had two of them because a power surge broke one of them. The surge was caused by a faulty UPS which was ironically supposed to protect them from such surges. I've since recycled the faulty UPS. Due to the fact I've owned two identical machines, I know this flaw is not a defect in my unit but either a design flaw, oversight, or some kind of independent fan control that fails to do its job properly. The flaw involves the small fan, this model has two fans and the small one will never activate even of it shuts down due to overheating. This happened to me 5 or 6 times and it took a while to narrow down the issue to overheating. The hinge exhaust design looks appealing and leaves room for ports but it can easily be made to not work properly as hot air can be sucked into the cold air intake and the entire system can be restricted by the closed lid. My model comes with a large intake on the bottom to help reduce the issue but I'm still not very fond of the design for laptops with a thermal output above the "thin and light" laptop range.

Once I found that the motherboard never sends power or signal to the fan on both units I have owned, I took matters into my own hands and soldered control and power wires from the working fan to the not working fan and now they both spin up together. I should have used good quality solder as my solder had an air bubble which exploded and propelled solder into the case, I tracked it all down and the only glob that proved to be an issue was one that shorted my audio chips. I eventually ended up having to pull apart the cooling system to access the audio chips and fix the short circuit which is why I replaced the old thermal compound since it cannot be reused after the heat spreader is removed. I found that this laptop had really poor thermal compound which applied badly, the quality was comparable to what one might find in a MacBook Pro which aren't known for having goo thermal performance. After the modifications and repairs to my cooling system, the temperatures dropped by 10 degrees. Crashes due to overheating no longer happen. My fans spin less because the load on one fan is split between two. And my battery life increased by 30 minutes, a five percent increase in battery life is quite a large gain from merely improving the thermal performance.

What I learned is that laptops in general are not designed for performance, and after market desktop PC thermal paste is a significant improvement over the factory applied paste on this machine and many other models. Checking if your fans work is a must and knowing how to get them both to work is also ideal.

My next laptop will be checked and stress tested on the first day I own it, and I will also consider upgrading the thermal paste if needed and maybe fixing the fans if they don't work as advertised.




Inside the back plate. mostly plastic but at least it won't burn you when the unit runs hot like my old MacBook did.


Inside with new SSD before cooling upgrade.

The fan that would not function

The power wire I soldered to the working fan.

Soldered the power wire to the not working fan

My makeshift cable management

Added the PWM control line jumper from the good to the bad fan.

Close up of my mistake attaching the control wire, and I also noticed the fan plug was broken so I made it work.

Both wires on the working fan side. That was an easy joint relative to the rest of the procedure.

My GPU with bad thermal compound, I had to scrape it off because it was hard as a rock, that's not what should be expected. Scraping thermal compound off a GPU with exposed SMD parts on the package is really risky and I took great care not to damage anything.
Please note: This WILL VOID YOUR WARRANTY and also annoy anyone working inside the machine later in its life. Do this at your own risk. If you do this, unplug it from power in case you short something, use anti-static equipment, and don't repeat my mistakes like accidentally breaking the fan's plug or having solder explode onto the motherboard. But you should only do this if you know what you are doing and are prepared to take the risk personally, you'll have nobody to blame except yourself if it fails to boot. This isn't trivial maintenance or upgrades such as blowing out dust or upgrading the storage respectively.

Latest Post

Steam on Linux Mint Cinnamon

Most viewed