Friday, May 22, 2015

Moto G and Moto E : snapdragon 400 vs 200 Round2

A while ago we discussed about S200 vs S400 using the Old CPU Benchmark tool called "Linpack For Android", an app that had not been updated since ages. It was convenient for one reason : no update = no artificial MFLOPS increase due to app optimization ... but with CM11,12 and 12.1 i noticed huge performance drops in Linpack whereas i didn't feel any. It was time to try something else


Linpack for Android
A dead Benchmark app...

Linpack vs RgbenchMM on MotoE and MotoG:
RgbenchMM 1190MHz
Moto E (S200) Moto G (S400)
1 270 290
2 611 641
4 587 1280
Linpack 1190MHz
Moto E (S200) Moto G (S400)
Single 79 55
Multi 145 150
Per Core 72,5 50


Why is there so much disparity? the way the app make the CPU work and the way the workload has been set are different and so are results.
2 disparities :

  • In Linpack Single Core results for MotoE (S200, stock rooted KK) and MotoG (S400, CM12.1) are not similar although they should regarding the Core frequency and the similar architecture. (results Are similar with RgbenchMM)
  • MultiThread results are strange on Linpack : How a QuadCore CPU couldn't perform better than a DualCore one??
    • Linpack cannot handle more than 3 Threads
    • MotoG with CM12.1 starts with about 20% less MFLOPS with one core, and that is still the case in the multithreaded run... Not expected

Let's see how RgbenchMM performs in similar situation!


RgbenchMM
A Great CPU Benchmark app!

What do we see here?

  • Results for RgbenchMM are similar with MotoE and MotoG for single and dual threading benchmarks : this is expected in the way S200 and S400 are clocked at the same frequency.
  • 4 Threads run give more than 4 times the score of Single Thread one with the QuadCore S400
  • Results are strictly linear to the number of cores for S400 (r²=0.97, which is pretty good for Benchmarks results)
  • 4 threads benchmarking is only suitable for MotoG (the S400 is a quad-core) and gives inconsistent results with S200 (only dual-core, so 4 threads handled by 2 cores cannot give good results)
  • Little lower results with MotoE could be explained since the S200 has its 2 cores shared between Benchmark and System, whereas MotoG (S400) has still 3 and 2 cores left to handle system processes during single and dual threads (although 4 threads run is strictly twice higher than 2 threads ... so even with all the cores used S400 MFLOPS/Core results are better than S200?)
  • On both devices, MFLOPS/Core results are slightly better in Dual Thread run and Single Thread one
RgbenchMM dev explains the following:
it does about 6 loads and 8 multiply-accumalates (or 16 flops) inside the loop. The load instructions (FLDD) are also VFP instructions as are the FMACD instructions. Thus, the benchmark is testing the VFP performance almost exclusively. One other detail about the code is that the threads are setup so that ideally they are reading the same columns of one of the input matrices. This will be beneficial on architectures with at least 1 level of shared cache and thus you may see more than 2x speedup on a dual-core processor.
  • The Extremely lower MFLOPS/Core result for 4 threads run on the DualCore S200 shows how it would handle hard multitasking.



Is the Conclusion changed?
Compared to the previous S200 vs s400 article

  • Does Changing the Benchmark app modifies the conclusion about the S200 vs S400 comparison? No, i doesn't
  • Does it changes the "Pure CPU benchmarks: the limits" article conclusion? Not exactly, in fact the results can't be compared since my MotoG was running CM11 at that time, but it could explain the high gap between CM11 and stock KK : it was more a Linpack bias than a ROM issue, i'll be able to test Stock ROM on a S400 soon, then the final conclusion will come.

Wednesday, April 29, 2015

Random build of the day: a magnifying lens for Smartphone

One day, i woke up with the need of Google cardboard goggles... so i sought for two 45mm lenses in my everything-you-need-is-there (aka slag heap) and found an old broken cine-camera with an about 30mm focal lens: Not good for cardboard, but perfect for a magnifying tool!
The early prototype
Foamboard is the answer

The Lens:


The Prototype:

The Result
Some radom pics

And now here is a small chip:

  • First a pic of the set up
  • Then the chip
  • And finally a cropped version of the pic to see how good is the result!

Yeap, the gold wires aren't all in good shape ;-)

Monday, April 20, 2015

DIY of the day: Adding heat spreader to Value RAM modules

If you are not building a hardcore gaming computer, then some "Value" RAM modules can be enough. The modules (if made by well known brands like Corsair, G.Skill, ...) are still high quality but does not feature any heatspreader, from my own experiments those heatspreaders are not mandatory as RAM modules does not create much heat.
Though heatspreaders are usually cool and good looking: If you have some old modules with ones, why not swapping them to the newly bought modules?
Removing the Heatspreaders from old modules
Disclaimer: your warranty is now void!
Get the modules, find the metal clips (on my G.Skill modules, they are not painted). Lift one with your finger nail: it should jump easily.
Repeat for the second clip.
Swapping Modules
The tricky part
NB: Don't forget to remove the label from the new modules (this voids warranty.)
On my Corsair modules the labels could be easily removed without tearing: i reused them later.
Once the clips are gone, the heat spreader will unfold open. It's time to swap the RAM modules:
/!\ Be extremely careful on the side facing you ==> the labelled side is ALWAYS looking toward the CPU on ATX Motherboards
  1. Once roughly adjusted, fold back.
  2. Make sure to adjust the Heatspreader position without tearing or wearing the heat-pad (grey part on the picture), do not press it to tight either.
  3. place the clips back in place: you should hear a "click" and the clips should be in the state they were before unfolding.
If the labels survived the swap, then add them back to the heatspreader to identify the "CPU-looking" side of the modules. You can also use any other way to ease one-sight identification.
You now have your brand new value modules skinned as higher class ones, they won't reach a much lower CAS Latency, but might be able to support some more overclocking.
And... they simply look cool if not cooler than before

Saturday, April 18, 2015

Lower CAS latency on a legacy Computer: Is it worth it?

Some Story background
With time going on, i got enough DDR2 modules to play a little with them.
An old question was how CAS latency is important and impacts performace on a legacy computer (with a CPU that doesn't feature any L3 cache)



Clock and CAS Latency
Modules used:


Name PC2- Frequency (MHz) CAS latency Size (MB) per module
Nanya NT2GT64U8HD0BY-AD 6400 800 6-6-6-18 2048
Corsair Value Select VS2GB800D2 6400 800 5-5-5-18 2048
Gskill Extrem2 PC6400PK 6400 800 4-4-4-12 1024
Gskill Extrem2 PC6400HZ 6400 800 4-4-4-12 512
Hynix HYMP564U64BP8-C4 AB-T 4200 533 4-4-4-12 512
Micron MT8HTF6464AY-53EB3 4200 533 4-4-4-12 512
only the green modules will be compared in this article, we'll play with the others later on.


Testing Conditions
Hardware & Software

CPU : AMD Athlon X2 64 5600+ (@2.9GHz)
MotherBoard:  Gigabyte GA-M61PME-S2P
RAM : Tested Criteria
GPU : Geforce 8400GS
HDD : Seagate Barracuda 7200.8 250 GB (7200rpm)
CD/DVD :  writer
Floppy

The Software used is nothing complicated: Memtest86 v4.20




Results
Single and Dual Channel CAS battle (DDR800)
Both Modules are 2GB DDR800 (PC2-6400), the only discriminating criteria is the Cas Latency : CL5 (5-5-5-18) vs CL6 (6-6-6-18)
Signle Channel (1*2GB) and Dual-Channel (2*2GB) results are the following:

  • SC-5-5-5-18: 2369MB/s
  • SC-6-6-6-18: 2252MB/s
  • DC-5-5-5-18: 2861MB/s
  • DC-6-6-6-18: 2643MB/s

Upgrading from to Single Channel 5-5-5-18 Dual Channel 5-5-5-18
Single Channel 6-6-6-18 +5 %

Dual Channel 6-6-6-18

+8 %

There is definitely a performance increase in pure RAM bandwidth, though this has barely any impact on real life work on a legacy PC.
NB: i also tried to mix the Corsair (5-5-5-18) and Nanya (6-6-6-18) modules, the motherboard set them to dual channel even though the chips are quite differents... and gave the following result:
It down-clocked the RAM to 667MHz (351MHz), and reduced latency to 5-5-5-15; for a 2410MB/s bandwidth.


Sunday, April 12, 2015

DIY 4 pins CPU-Fan adapter to 4 pins CPU-Fan + 3 pins Case-Fan

Some Story background

After i saved the old Acer X1700 motherboard from trash by replacing capacitors, i noticed that the passively cooled GPU was overheating... 45-80+°C (idle/full)
It was time to add a case FAN ... - where ? ... There's no place in there!- Doesn't matter, there's place outside the case!
The real issue was the single FAN port on the motherboard, and no SATA/MOLEX port left.


Making the 4 pins to 4+2 pins
Why not 4 to 4+3?

Here is the scheme:

Intel 4 pins to 4 pins + 2 pins (no tachymeter for secondary fan)

  • The female 4 pins part is plugged on the motherboard CPU-Fan port.
  • The Ground (black wire, pin 1), the +12V, the Sense (tachymeter) and the Control (PWM pulses) are wired to the CPU-Fan (4 wires PWM-capable), and
  • the secondary (SYS) Fan only gets Ground and +12V.
  • We have no use monitoring the rpm of that fan, and it may interfere with CPU-Fan control (on my testing AMD motherboard the CPU-Fan didn't work until i removed the sense connection on the secondary Fan.

CPU-FANSYS-Fan
  • GND
  • +12V
  • Sense
  • Control
  • GND
  • +12V
  • not wired
  • none

Making of
What are those colors???

On the first test i had wired the GND to an orange wire, for the final build the color scheme is slightly different:

MotherBoardMain Cable partCPU-FAN wiresSecondary wiresSYS-Fan
  • GND
  • +12V
  • Sense
  • Control
  • Black
  • Yellow
  • Red
  • Blue
  • Black
  • Yellow
  • Green
  • Blue
  • Brown
  • Blue
  • None
  • None
  • GND
  • +12V
  • Not wired (ctrl)
  • None

Looks messy? and it is, but everything was done with what i had under the hand...

Results
IRL

4 pins to 4+2 pins adapter DIY

The Fan used is fixed with plastic ribbons

GPU Temperatures are really lowered:

BeforeAfter
IdleFullIdleFull
45°C80+°C37°C42+°C

Sunday, March 29, 2015

DIY of the day: replacing inflated capacitors on a Desktop PC Motherboard

Last week, i needed to replace inflated capacitors from a "dead" motherboard.
Inflated capacitors is a common cause of motherboards and electronic components "death", sometimes, replacing them will make these reborn.

Replacing inflated capacitors on Motherboard
3 new capacitors replacing the inflated ones
NB: don't forget to remove the 3.0V CR2032 Lithium Battery before performing any work on a motherboard.

This doesn't require any desoldering station or unsolder tape as i didn't have any of them available.

Required tools and materials:
  • soldering iron
  • soldering tin wire
  • small pliers

Usually when components are soldered to a PCB by human, the component wires are cut off after soldering:



 When things are done at industrial scale on a motherboard, the wires are cut extremely short:

So short that my "big" soldering iron couldn't transfer enough heat by contact to melt the very little amount of tin (Scale isn't respected, IRL, my soldering tip is bigger than the whole capacitor...):
Having no unsolder tape force to find an alternative, here is one i used:

Creating a droplet of melted tin (1) allows heat to be transferred to the component wire and melt the soldered tin (2). Prying and pulling the dead capacitor pops it out.

This is not the recommended way to repair a motherboard, but it works if you take your time and carefully follow the steps




update: I did it again!
Now with some photos...
The inflated capacitor



Adding two droplets of tin to better conduct heat

Removed capacitor

The new one is in place
 Testing : 
 It works!



Tuesday, March 24, 2015

Tip of the day: restoring WiFi settings after a factory reset

For some reason you may want to perform a clean install but don't want to waste all your spare time setting your complicated WiFi setup ?
Sadly you forgot to backup the WiFi settings (and google failed to re-sync them) but performed a Nandroid backup? 


 all the following steps can be performed directly on device, tested on Falcon running CM12 


story backgroung: after a buggy CM12 update and a failed rollback, my wifi settings were gone and google had synced the "blank" wpa_supplicant.conf file, i had no choice but trying to find a way to recover all the passphrases.


If you used TWRP, then things will be quite easy: 

  • Take your backup, 
  • Seek for data.f2fs.win 
  • Copy it to a dedicated folder and 
  • Rename it to data.tar.gz 



Assuming the backup is on your USB otg: 

  1. Open terminal and type: cd /storage/usbdisk/TWRP/backup/ 
  2. Make sure the file is there: ls 
  3. Untar: tar -xvzf data.tar.gz 
  4. After the unarchiving is completed you can search for ./misc/wifi/wpa_supplicant.conf 
  5. Rename the existant one (/data/misc/wifi/wpa_supplicant.conf to wpa_supplicant.conf.bak)
  6. Paste the new one there and 
  7. Give proper permissions/owner/group (-rw-rw----, owner 1000-system, group 1010-wifi). 



 Your WiFi settings are back and you can now focus on more interesting things.

If you want to discuss about this subject, meet us at xdadevelopers.com