SkillAgentSearch skills...

ComponentTester

This repo presents Markus' ComponentTester firmware (https://github.com/Mikrocontroller-net/transistortester/tree/master/Software/Markus and https://github.com/madires/Transistortester-Warehouse) in the structured git workflow. Branch AY-AT_20MHz with pin modifications for this special kind of HW with 20 MHz XTAL.

Install / Use

/learn @Ho-Ro/ComponentTester
About this skill

Quality Score

0/100

Supported Platforms

Universal

README


        ReadMe for the Component Tester firmware (m-firmware)

    (c) 2012-2024 by Markus Reschke (madires@theca-tabellaria.de)

Last edit: 2024-03-29

Content

  • About
  • Safety Advice
  • License
    • Additional Disclaimer
  • What's different?
  • Source Code
  • Supported Hardware
  • Building the Firmware
  • Busses & Interfaces
    • I2C/SPI
    • TTL Serial
    • OneWire
  • Displays
    • Fonts and Symbols
    • HD44780
    • ILI9163
    • ILI9341/ILI9342
    • ILI9481
    • ILI9486
    • ILI9488
    • PCD8544
    • PCF8814
    • SH1106
    • SSD1306
    • ST7036
    • ST7565R
    • ST7735
    • ST7920
    • STE2007/HX1230
    • VT100 Terminal
  • Test push button and other input options
    • Test Key
    • Rotary Encoder
    • Increase/Decrease Buttons
    • Touch Screen
  • User Interface
    • Buzzer
  • Communication with PC
    • Serial Output
    • Automation
    • VT100 Output
  • Power-On
  • Probing
  • Battery Monitoring
  • Power Off
  • Menu
    • PWM Tool
    • Square Wave Generator
    • Zener Tool
    • Logic Probe
    • Continuity Check
    • ESR Tool
    • Capacitor Leakage Check
    • R/C/L Monitors
    • LC Meter
    • Frequency Counter
      • Basic Counter
      • Extended Counter
    • Ring Tester
    • Event Counter
      • Trigger Output
    • Rotary Encoder
    • Contrast
    • IR RC Detector/Decoder
    • IR RC Transmitter
    • Opto Coupler Tool
    • Photodiode Check
    • Diode/LED Quick-Check
    • Servo Check
    • OneWire Scan
    • DS18B20/DS18S20 Temperature Sensors
    • DHTxx Temperature & Humidity Sensors
    • MAX6675/MAX31855 Thermocouple Converters
    • BH1750 Ambient Light Sensor
    • Flashlight
    • Self Test
    • Self Adjustment
    • Save/Load
    • Show Values
    • Font/Symbols
    • Power Off
    • Exit
  • Resistors
  • Capacitors
  • Inductors
  • Discharging Components
  • ADC Oversampling
  • Displaying Results
    • Additional Hints
      • BJTs
      • TRIACs
      • CLDs
  • Unsupported Components
  • Workarounds for some Testers
  • Known Issues
  • Support
  • Change Log
  • Remote Commands
  • Helpful Links
  • References
  • About

The Component Tester is based on the project of Markus Frejek [1&2] and the successor of Karl-Heinz Kübbeler [3&4]. It's an alternative firmware for Karl-Heinz' current Transistortester circuit and comes with several changes in the user interface and the methods used for probing and measuring. It also offers a few additional features. While Karl-Heinz provides an official release supporting also older ATmega MCUs, this firmware does require an ATmega with 32kB flash at least.

Hint: Run the self-adjustment for a new tester or if you've done any modifications, like a firmware update or changing probe leads.

  • Safety Advice

The Component Tester is no DMM! It's a simple tester for components capable of measuring several things. The probes aren't protected in any way and won't survive higher voltages than 5V. Don't use the tester for live circuits! Just use it for unsoldered electronic components! If you test a capacitor make sure it's discharged before connecting the probes. This isn't just the Safety Sally, your life may be at risk if you connect the probes to a live circuit or a power supply (or even mains).

  • License

The original author hasn't provided any information about the licence under which the firmware is distributed. He only stated that it's open source and any commercial user should contact him. Unfortunately we (Karl-Heinz and I) haven't found any way to contact him. To remedy this problem I've chosen an open source license at 2016-01-01, after giving the original author more than sufficient time to tell us his wishes regarding the license. Since the source code of this firmware version is a major rewrite with tons of new code and features, I think that this approach is justified.

Licensed under the EUPL v. 1.2

  • Additional Disclaimer

Product or company names are possibly trademarks of the respective owners.

  • What's different?

Karl-Heinz has done a really great documentation of the tester. I recommend to read it. Therefore I'll tell you just about the major differences to the k-firmware:

  • user interface
    • No worries! ;)
    • touch screen
    • remote commands
    • two sets of adjustment values
  • adaptive component discharge function
  • resistance measurement
    • dedicated method for resistances <10 Ohms (instead of using ESR check)
  • capacitance measurement
    • starts at 5pF
    • additional method for caps from 4.7µF up to 47µF
    • correction/compensation method
  • no SamplingADC() for very low capacitance or inductance
  • diodes
    • detection logic
  • BJTs
    • V_f is interpolated for a more suitable (virtual) I_b based on hFE
    • detection of Germanium BJTs with high leakage current
    • detection of Schottky-clamped BJTs
  • JFETs
    • detection of JFETs with very low I_DSS
  • TRIACs
    • detection of MT1 and MT2
  • IR RC detector and decoder
  • IR RC transmitter
  • opto coupler check
  • RC servo check
  • OneWire (plus sensors DS18B20 and DS18S20)
  • DHTxx Sensors
  • event counter
  • ring tester (LOPT/FBT tester)
  • logic probe
  • continuity check
  • MAX6675/MAX31855 thermocouple converters
  • BH1750 Ambient Light Sensor
  • flashlight / general purpose switched output
  • structured source code
  • simple frameworks for displays and data busses
  • some more I couldn't think of right now

There are more details in the sections below.

  • Source Code

The first m-firmware was based on Karl-Heinz' source code. A lot of cleaning up was done, like more remarks, renamed variables, re-structured functions, large functions splitted up into several smaller ones and what have you. After that the m-firmware moved on to become an independent version. For example, simple frameworks for displays and interface busses were added. I hope the code is easy to read and maintain.

You can download the lastest firmware from following sites:

  • https://github.com/madires/Transistortester-Warehouse
  • https://github.com/kubi48/TransistorTester-source/tree/master/Markus (https://github.com/Mikrocontroller-net/transistortester/tree/master/Software/Markus)
  • Supported Hardware

The firmware runs on all testers which are compatible with the standard circuit shown in Karl-Heinz' documentation and which use one of the following MCUs:

  • ATmega 328
  • ATmega 324/644/1284
  • ATmega 640/1280/2560

You can customize pin assigments if required. The display may be a character or graphic type (monochrome or color). Please see section 'Displays' for supported controllers.

Following hardware options are supported:

user interface

  • rotary encoder
  • additional push buttons (in/decrease)
  • touch screen
  • serial interface (TTL, RS232, USB-serial adpater)
  • buzzer

enhancements

  • external 2.5V voltage reference
  • fixed adjustment cap
  • protection relay for discharging caps

additional checks and measurements

  • Zener check / measurement of external voltage <50V
  • basic frequency counter
  • extended frequency counter with prescaler and crystal oscillators for low and high frequencies
  • fixed IR RC receiver
  • LC meter
  • ring tester (LOPT/FBT tester)
  • logic probe
  • MAX6675/MAX31855 thermocouple converters
  • flashlight / general purpose switched output
  • Building the Firmware

First edit the Makefile to specify your MCU model, frequency, oscilator type and programmer settings. All other settings are moved to a global config.h and a MCU specific config-<MCU>.h. The file 'Clones' lists settings for various tester versions/clones. If you have a tester not listed, please email the settings to the author to help other users.

In config.h please choose hardware and software options, the language for the UI, and change any default values if required. All settings and values are explained in the file, so I won't discuss them here in depth.

Hardware options:

  • additional keys
    • rotary encoder
    • increase/decrease push buttons
    • touch screen
  • 2.5V voltage reference
  • relay based cap discharger
  • Zener voltage measurement
  • frequency counter (basic and extendend version)
  • event counter
  • LC Meter
  • ring tester (LOPT/FBT tester)
  • IR detector/decoder for remote controls (fixed IR receiver module)
  • fixed cap for self-adjustment of voltage offsets
  • SPI bus (bit-bang and hardware)
  • I2C bus (bit-bang and hardware)
  • TTL Serial (bit-bang and hardware)
  • OneWire bus (bit-bang)

The external 2.5V voltage reference should be only enabled if it's at least 10 times more precise than the voltage regulator. Otherwise it would make the results worse. If you're using an MCP1702 with a typical tolerance of 0.4% as voltage regulator you really don't need a 2.5V voltage reference.

And of course the software options:

  • PWM generator (2 variants)
  • inductance measurement
  • ESR measurement and in-circuit ESR measurement
  • check for rotary encoders
  • squarewave signal generator (requires additional keys)
  • IR detector/decoder for remote controls (IR receiver module connected to probes)
  • IR RC transmitter (IR LED with driver transistor)
  • check for opto couplers
  • servo check (requires additional keys, display with >2 lines)
  • detection of UJTs
  • capacitor leakage check
  • DS18B20/DS18S20 temperature sensors
  • color coding for probes (requires color graphics display)
  • output of components found also via TTL serial, e.g. to a PC
  • remote commands for automation via TTL serial
  • output of reverse hFE for BJTs
  • DHT11/22 temperature and humidity sensor
  • ...

Please choose the options carefully to match your needs and the MCU's ressources, i.e. RAM, EEPROM and flash memory. If the firmware exceeds the MCU's flash size, try to disable some options you don't need.

Available UI languages:

  • Brazilian Portuguese
    • provided by wandows@EEVblog
  • Czech
    • prov
View on GitHub
GitHub Stars50
CategoryProduct
Updated14d ago
Forks7

Languages

C

Security Score

85/100

Audited on Mar 23, 2026

No findings