------------------------------------------------------------------------------

                  Change Log for the Component Tester firmware

                                Classic Edition

                 for ATmega168/328 with HD44780 LCD module (2x16)

                        (c) 2012-2016 by Markus Reschke

------------------------------------------------------------------------------

v1.21m 2016-01
- Licensed under the EUPL V.1.1
- Improved storage managment of adjustment values.
- Solved issue with test button when the IR receiver module is removed too
  early in the IR detector tool. Added configuration switch to disable current
  limiting resistor for Vs in case of a 5V only IR receiver module.

v1.20m 2015-12
- Added IR RC detector and decoder function (requires TSOP IR receiver
  module).
- Changed MainMenu() to reduce RAM usage.

v1.19m 2015-10
- Changed ShowDiode() to output the number of diodes directy (not via
  Show_Fail()i anymore) when more than 3 diodes are found (hint by
  hapless@eevblog).
- Updated Czech texts, thanks to Kapa.
- Fixed variable management bug in config.h.
- Optimized functions for NVRAM management (values stored in EEPROM).

v1.18m 2015-07
- Optimized feedback processing in MenuTool().
- Forked a new firmware edition, which also supports graphic displays, named
  "Trendy Edition". The old firmware is called "Classic Edition" now.

v1.17m 2015-02
- Improved CheckDiode() to support measured Vcc in resistor check and fixed
  detection issue for resistors around 2k if the optional DC/DC boost
  converter is installed (HW_ZENER).
- Fixed some incorrect comments.
- Cleaned up integer data types.

v1.16m 2014-09
- Added test for rotary encoders.
- Fixed some minor issues in MeasureInductance() to increase accuracy.
- Changed ShowAdjust() to display absolute value of Vcc and the internal
  bandgap reference (suggestion from Vlastimil Valouch).
- Some minor improvements.

v1.15m 2014-09
- Improved TestKey() to detect the dynamic turning velocity of a optional
  rotary encoder.
- Added a squarewave signal generator with variable frequency.
- Changed MeasureInductance() to return time in ns and adapted processing
  in MeasureInductor() (thanks to Vlastimil Valouch).

v1.14m 2014-08
- Changed user interface for rotary encoder.
- Fixed compiler warning about R_Pin2 in ShowDiode() (thanks to Milan Petko).
- Resistors between 1.5k and 3k Ohms were detected as double diodes. Changed
  tolerance of resistor test in CheckDiode() (thanks to nessatse).
- Modified ShortCircuit() to allow user to abort creating a short circuit in
  case of any problem.
- Added frequency counter (hardware option).

v1.13m 2014-07
- Added Czech texts, thanks to Kapa.
- ESR and PWM tools display the probes pins used.
- Improved handling of pre-compiler directives for extra features.
- Added support for rotary encoders for the user interface.

v1.12m 2014-03
- Fixed umlaut problem for German UI (thanks to Andreas Hoebel).
- Added ESR measurement for capacitors >0.18F.
- Optimized display output handling to save some bytes Flash. 

v1.11m 2014-03
- Improved pinout detection for Triacs (G and MT1) and changed display
  to report MT1 and MT2.
- Added pinout display function for semiconductors and changed output to
  "123=" style for better readabilty.
- Optimized several component output functions.
- Improved the BJT check to detect transistors with a built-in freewheeling
  diode on the same substrate (creating a parasitic BJT). The BJT output
  prints a '+' behind the BJT type for such transistors.
- Modified diode display to support possible BJTs with protection diode and
  low value B-E resistor. Those are detected as dual diodes. The B-E resistor
  will be shown to signal that special case.
- Modified BJT display to support base-emitter resistors. If a B-E resistor is
  found hFE and V_BE will be skipped since both values can't be measured in a
  reasonable way in that case. 
- Improved diode test to detect body diodes of dep-mode FETs.
- Fixed detection problem of drain and source for depletion-mode FETs.
- Added detection of symmetrical drain and source for depletion-mode FETs.
- Vth is negative for p-channel FETs now.  
- Added measurement of V_GT for SCRs and Triacs.
- Due to flash size constraints the PWM tool is now available for the 
  ATmega328 only.

v1.10m 2013-10
- Added support for external 2.5V voltage reference (hardware option).
- Added support for relay based cap discharging (hardware option).
- Changed good-bye message into welcome message to help to detect problems
  with the brown-out voltage of the MCU and to mitigate a voltage drop
  caused by an optional DC boost converter at startup.
- Added Zener tool (hardware option).
- The main menu got an exit function in case the menu was entered by mistake.
- Support of 16MHz MCU clock.

v1.09m 2013-07
- Added IGBT detection.
- Added a sanity check for MOSFETs.
- The hFE measurement for BJTs considers the leakage current in common emitter
  configuration.
- For MOSFETs the direction of the intrinsic diode is shown.
- Fixed problem with swapped drain and source pins for enhancement mode
  MOSFETs.
- Added workaround for Makefile problems with some IDEs. Some important Values
  can be defined in config.h too.

v1.08m 2013-07
- Since the SmallResistor() measurement can't give correct DC resistance
  values for some inductors a problem detection was added to CheckResistor()
  to keep the original high resistance measurement result.
- Added inductance measurement (ATmega328/P only)
- Minor improvements for the display of diodes and BJTs.
- Added leakage current measurement.
- Fixed problem with germanium BJTs with a high leakage current. They were
  detected as p-channel JFETs.
- Renamed some functions, clarified and added some remarks.

v1.07m 2013-06
- Optimized diode display function and added display of low current Vf.
- Improved the diode detection. Caps and resistors are excluded much better.
  Also the cap probing is skipped for diodes to speed up probing.  
- Fixed an array overflow bug in CheckResistor().
- Improved cursor display logic to tell user if another information follows
  or the probing loop is reentered.
- Improved UI of PWM tool to prevent exit by mistake (double key press
  required now).
- Added a generic menu function and adapted all menus (changed layout!).
- TestKey() provides a nice blinking cursor now.

v1.06m 2013-03
- Several minor improvements and cleanups.
- Expanded TestKey() to inform the user about an expected key press.  
- Improved TestKey() function to be more responsive for short key presses.
- Added a PWM tool to generate a PWM signal with different frequencies and
  duty ratios.
- Implemented a sleep function to reduce power usage of the tester.
  On average the power usage is nearly halfed (excluding the LCD backlight).
- Improved discharge function. If the discharge of a component fails, the
  concerned probe pin and the remaining voltage are displayed. That will help
  to detect a too low value for CAP_DISCHARGED.
- Added the capability to set error types

v1.05m 2012-11
- Moved LargeCap_table[] and SmallCap_table[] from EEPROM to flash to reduce
  EEPROM usage. The size for a German firmware exceeded the 512 bytes of an
  ATmega168s EEPROM.

v1.04m 2012-11
- Added a simple logic to the output function for diodes to prevent the
  measurement of capacitance for antiparallel diodes. 

v1.03m 2012-11
- Fixed detection problem of power diodes with high leakage current (mistaken
  for resistors).
- Fixed compiler warnings about possible uninitialized variables. That
  increased the firmware size by about 44 bytes :-(

v1.02m 2012-11
- Added upper limit for resistance of probe leads in the self adjustment
  function (1.00 Ohms).
- Selftest and adjustment functions perform a short circuit test before
  running the main part and return feedback now.
- The mainmenu gives feedback about success/failure of the selected action.

v1.01m 2012-10
- Added a checksum for adjustment values stored in the EEPROM and wrote a
  function to validate the checksum.
- Added a measurement function for small resistors (resolution: 0.01 Ohms).
- Extended self adjustment to support an auto-zero for the resistance of the
  probe leads.
- CheckResistor() runs an extra measurement for small resistors (<10 Ohms).
- Added a function to compare two scaled values. 
- Adapted several functions to support variable scaling of values.

v1.00m 2012-09
- Added a simple menu for selection of self test, self adjustment, update of
  the adjustment values in the EEPROM and display of values.
- Changed hfe from 16 bit to 32 bit value (no 65k limit anymore).

v0.99m 2012-09
- Initial public release based on Karl-Heinz' version 0.99k.


------------------------------------ EOF -------------------------------------
