News & Information

> News & Information > 20140713 Information Sharing: - What can be Inside a Program Part I

20140713 Information Sharing: - What can be Inside a Program Part I


July 13th 2014 Sunday Taipei


Information Sharing: - What can be Inside a Program Part I


What is program?

  • Program is the pre-defined set of instructions that tells or teaches how a device should act upon. All processors big (CPU) or small (MCU) performs their jobs according to what are defined by program.
  • Some programs are so designed that they can learn and then do self-adjustments. For example, it takes about 500km for your brand new car to learn your driving behaviors. The longer the learning distance (car program learns more form you), the better it knows how to suit you.
  • Most people believe that program is written in such a way that it will do all the jobs in correct way. So all of us rely on programs to get our works/jobs done in a highly automatically manner without playing too much attention to the program itself.
  • Even though after thorough and carefully checking, still program bugs may exist. Program bug is usually caused by mis-typing (for example “>=” is typed as “>”) or neglect of some conditions (for example conditions like if… else… then, or some interrelationship of small module sets inside a big program), or foundation design of a program.
  • 2 major reasons why a weighing scale hang up is because the MCU does not what to do next when an unexpected event is encountered, or the program falls into a never ending loop.
  • A roughly built program is just something like rubbish-in, rubbish-out. Users take all the responsibilities.
  • A well planned program prevents / reminds users from making mistakes (anti fool) and eliminates damages / dangers when something goes wrong (fail safe).
  • A good program brings delight, efficiency, functionality, flexibility and business opportunity.
  • Program worn is a kind of malware created intentionally to achieve something not right, or at least cannot be disclosed to the general public.


In conclusion, program is something which we think that we know, but actually we do not know 100% at all.


Discovering / Distinguishing Program Worn Inside a Scale

Suppose there are 2 scales: a. one 60g x 1mg pocket scale & b. one 200g x 1mg precision balance in front of us for evaluation.


For Pocket Scale

  1. Immediately after calibration, 2g, 5g, 10g, 20g, 50g and 60g are loaded on pocket scale for linearity checking.
  2. At particular loads, 1 ~ 2d (either up or down) linearity and / or repeatability errors are found. Most people will think that it is a bad scale or at least a “not good enough” scale.
  3. But wait a moment…actually it has a good chance to be a good scale. Because it seems that the program does not manipulate the weighing results. It just shows you whatever results it detected. And if all errors happened in between 5g ~ 60g, then actually it performs like a class II scale in these 2 tests.


For Precision Balance

  1. Immediately after calibration, 2g, 5g, 10g, 20g, 50g, 100g, 200g are loaded on the precision balance for linearity checking.
  2. No linearity or repeatability error are found. Most people will think that it is a good scale or at least a “good enough” scale.
  3. But wait a moment… do you feel that this precision balance is a little bit weird? Better to repeat the linearity and repeatability tests again and by other way round.


Linearity & Repeatability Tests by Odd Weights

Suppose the calibration loading points for the precision balance are = 50g, 100g and 200g. Then at least, try to repeat the linearity and repeatability tests by putting:

  • 50g +1.4mg (instead of 50g)
  • 100g + 1.4mg (instead of 100g), and
  • 200g +1.4mg (instead of 200g).


Note: - The reason why add 1.4mg (d) at each loading tests is because the same test loading can check both the weighing accuracy and calibration accuracy. But 1.4mg (d) standard weight is not commonly available in the market. If 1.4mg (d) standard weight is not available, then try to add 1mg (d) to each loading test mentioned above.


Then observe the results again: -

  • If the results will be exactly = 50g +1mg, 100g +1mg and 200g +1mg. Then we can conclude that it has good chance to be a good scale.
  • If the results will be still = 50g, 100g and 200g again. Then alarm sounds.



  • For class III scale, usual verification points are 20e, 500e, 2000e and maximum.
  • For class II scale, usual verification points are 20e (or 50e depends value of d), 5000e, 20000e and maximum.


Because of the above mentioned commonly used and accepted verification points, there are scales (especially high resolution scales and balance) built with program worn so that:

  • The value of a particular verification point will be displayed when the calculated value is within xx d differs from that particular verification point.
  • In case 4 or 5 verification points will be covered by the same idea, then it will give a false image that the scale is good or even excellent.
  • Some carefully planned sworn program will even focus on the standard weights values, i.e. 1, 2, 5. 10, 20, 50…. etc.


When alarm sounds already, try to repeat linearity & repeatability tests by adding more d to find out how big is the “black hole”.


After completing the above tests, and no matter what the results will be, it is still too early to call it a day and go home. It is because 2 important tests are still missing.


Let’s continue on July 20th, 2014


Again, we appreciate your participation in our information sharing process and sharing with us your valued experience. If you find anything mentioned above needs to be corrected or you want to add your comments, please e-mail us.


Have a nice day!


Alvin Wu

Fidelity Measurement Company Limited



© Copyright 2012-2014 Fidelity Measurement Company Limited All rights reserved.