Introduction: AVR Transistor Tester

Picture of AVR Transistor Tester

Recently Gearbest shop gave me the opportunity to write about another product which they sell.

So, I chose to continue my exploration in analog field of microcontrolers with another project:
M12864 DIY Transistor Tester which can be purchased at the price of $16.99 with free shiping (at the time I write the article).

Before going further I would like to make some remarks about this project, why I chose it (and why I find it very interesting).

First of all little history:

Later (in 2012) Karl-Heinz Kübbeler started to work on the project.

So this project continued to be more known, it was implemented in various forms over the time. Some enthusiasts have made it on breadboard, some have designed their own PCB's, single or dual layer; with thru-hole or SMD components... and so on.

Also, over the time, have appeared variants with with graphic display (like this kit).

Now (going back to this kit), I'm glad I found a ready-made variant.

Since I found out about this project I was curious to know "How Do They Do It" ...but I have not had time to build it from scratch. So this kit gave me the opportunity and motivation to experiment and study further.

I must say that there are other 3 versions right in the Gearbest shop:

Obviously there are ("in the wild") many variations of this kit, but I think you get the idea. You can search "AVR transistor tester" on any major search engine and you will see what I was saying...

I chose this option because I was also curious to try the module display included (128x64 pixels); to see what libraries are available and how actually work.

Step 1: Unpacking

Picture of Unpacking

At this step I put some pictures to have an overview about what is this kit.

It should be mentioned that PCB is very well done and markings are very clear; so we didn't need schematic.

However I will put it here, along with manual.

Step 2: Passive Components

Picture of Passive Components

Now let's get our hands dirty.

Passive components are easy to identify on PCB. But we must be careful to markings:

It's easy to make mistakes with these color-coded resistors. So it is better to identify each resistor with a multimeter/ohmmeter.

Capacitors are also easy to identify, but for some capacitors values are not printed directly (even if PCB markings corresponds exactly with component markings):

  • 100nF are marked 104 (10 x 10000 pF = 100,000 pF)
  • 10nF are marked 103 (10 x 1000 pF = 10,000 pF )
  • 1nF are marked 1nJ (J means tolerance± 5%)

Step 3: Semiconductors

Picture of Semiconductors

We observe that semiconductors are not exactly the same with those in the original project (from

  • S9014 instead BC547
  • S9012 instead BC557
  • TL431 instead of LT1004
  • HT7550 instead 78L05

I attach datasheets for these components (just in case).

Step 4: Sockets

Picture of Sockets

Sockets and one rotary encoder.

Step 5: Battery Connector

Picture of Battery Connector

... and spacers for LCD mounting.

Almost done.

Step 6: Display

Picture of Display

Display module is a 128x64 pixels LCD with ST7565 controller.

Another mention worth doing at this step:

I already experience how to use this module (and ST7565 controller) in other projects; to see what libraries (Arduino and non-Arduino) are ready to use. And to get an idea (generally) about this family of LCD controllers.

I intend to test and study these libraries: "There are two 'versions' of the LCD library - one is straightup avr-gcc and the other is an Arduino Library. They're essentially the same." -from readme parallel mode ... I think it can be adapted to work in serial mode. clone of SVN repo svn://

Step 7: Done

Picture of Done

Now the tester it's ready and manual recommended to go through some steps to calibrate.

I will not go into details with with this procedure that is well presented in AVR Transistor Tester 128x64.pdf attached to this step (pages 4 - 6). Anyway it is good to keep handy the two objects that can be seen in Figure 2:

  • The twisted wire is made to connect all three test ports toghether.
  • 220nF capacitor used in calibration is already included in the kit.

It is important to note:

Components that could be measured are not only transistors !!!
Resistors, capacitors, potentiometers, inductors, diodes, LEDs, BJT transistors, FET transistors, thyristors, and more...

Why do I find it so important? Because studying how to measure the characteristics of these components (and this because though this project is open source) we can learn in depth about electronics in general :)

Step 8: One Step Further

Picture of One Step Further

Therefore this kit is not "true open-source" (i.e. we do not have design files for PCB, or exact source code for firmware); Because is so close to original project, we can use it as open source, we can modify firmware, learn and hack. And we can benefit from the low cost of mass-product kit.

So I put a short extract from CheckPins.c as an appetizer ... also a selection from schematic where all the magic is done.

Full source code (and other goodies) here:

From here I have two(three) directions that I'll follow:

  • I will try to compile a version that fits exactly this hardware;
  • I will try to experiment with stand-alone (generic and/or home-made hardware), to test and study in depth the techniques used in this project;
  • And yes .. I will use this kit also to test some components... :)

I hope you liked it.


mario59 made it! (author)2017-08-24

I used this device for a long time, and I'm very satisfied of it. But, this morning, I tried to recalibrate it, using the internal menu procedure.

After the calibration, all goes well, but I get a character "I" corrupted (see image)

Is there any possibility to "recover" that character? Or a "software reset"???

Silvius (author)mario592017-08-25

:) And I also have those corrupted characters... I did not care about them until now ... I'll try to find a firmware that suits and update it. I will post the result of my attempts.

mario59 (author)Silvius2017-08-25

Thanks Silvius!
By the way, one of my BEST childhood friends was named Silvio... by coincidence hehehe!)
But... I wonder, why this happened, and I wouldn't be able to recover it? Usually a reset SHOULD restore everything ... but why doesn't work???

Silvius (author)mario592017-08-25

:) nice!

I guess that behavior is generated by badly written code ... reset will clear RAM, but calibration should save results in EEPROM, and probably overwrite some strings stored there... the firmware of those kits are modified version of open source project... so we can't see the code.

I also tried to save this closed source firmware (flash and eeprom) so I can get back to the original version, but is read protected. So I decided to risk, and totally give up the original firmware.

I removed the microcontroller from the tester and put it on a small development board (made by me) and put firmware from here:

All worked ok so far... There are some small differences in menus an calibration. But I am very happy that I was able to make the transition to open source firmware!!!

If your tester is exactly the same version as mine should work for you too... Otherwise, you should study this project at github, and find the right firmware...

I hope the information is useful to you.

Best regards! ... and keep in touch...

VittorioG5 (author)2017-02-21

dear all I also made it but it power up only when i press the button and led is always off. Anyone solved it ? Thanks in advance v

Silvius (author)VittorioG52017-02-21

:) It is supposed to work in this way.

Step1: Put electronic component in test socket. The tester is off but is connected to 9V battery.

Step2: Press button (short press). The tester back to life and makes his magic... and display the result.

Step3: If you do not test any other component... it stops after little time ... to protect battery.

About LED... If all the others functions are correct, and LED is the only thing that works incorrectly... I guess that is soldered in reverse... or defective.


ngunawardena (author)2016-12-18

HI thank you for nice post

I just made it but it power up only when I press the rotary switch once I release it will power down what is the problem how can I fix it Please help I am new to this gadget

Thank you all

Rhuebarb made it! (author)2016-12-14

I just go this today and made it, quite fun. I played with it a while and everything was great; instructions said to calibrate so I ran the calibration from the menu and now I scrambled characters in the display. Tried redoing the calibration, no change.

I've got a programmer set up for the atmega just looking for a new revision of this toy. Thank you for the links in your post here.

r0dISVK (author)2016-12-01

Hi, there is newer version with ATmega inputs protection (SRV05) what is sold with many names (90% names is bad).

It can be exchanged 8MHz crystal for 16MHz for other options...

derri made it! (author)2015-11-27

Hi, I bought this kit a few months ago and build it.

First I was a bit disappointed when I saw that the firmware in the micro-controller was locked. After posting to the forum ( ) a friendly user named Tomas P. gave me some hints on how to compile a new firmware from the repository. Meanwhile, the above SVN repo trunk [ ] contains a subdirectory [ mega328_st7565_kit ]. There you'll find a suitable set of binaries (TransistorTester.hex and TransistorTester.eep) to flash into your processor. It also has a makefile customized for this kit that you can use with WINAVR to compile a fresh firmware from the sources. You might have to update WINAVRs avr-gcc toolset to a recent version (4.81 or newer) to get consistent results.

Have fun, derri

rfeigenblatt made it! (author)derri2016-04-17

Tnx by tips, mi tester is fixed, I add this shortcut to burn quickly the atmega328p

Credits to: Tomas P

So, for burning the MCU just use only AVRDUDE or with a GUI for AVRDUDE

(I recommend AVRDUDESS).

Examples of commands for Windows (used only AVRDUDE with the AVR Dragon

in ISP mode):

Writing Flash + EEPROM:

avrdude -c dragon_isp -p m328p -P usb -e -U flash:w:"TransistorTester.hex":a -U eeprom:w:"TransistorTester.eep":a

Writing only Fuses:

avrdude -c dragon_isp -p m328p -P usb -U lfuse:w:0xF7:m -U hfuse:w:0xD9:m -U efuse:w:0x04:m

Writing Flash + EEPROM + Fuses:

avrdude -c dragon_isp -p m328p -P usb -e -U flash:w:"TransistorTester.hex":a -U eeprom:w:"TransistorTester.eep":a -U lfuse:w:0xF7:m -U hfuse:w:0xD9:m -U efuse:w:0x04:m

I'm not quite sure whether requires this G-LCD display (JLX12864G-378)

any hardware modification. For illustrate, the attached files contain

picture of the used G-LCD display and data sheet.

Silvius (author)derri2015-11-27

Thank you very much! Good to know... :)

About This Instructable




More by Silvius:Reading 15 Rotary Encoders with Arduino and ATmega1284Open Source TV Box - GeekBoxAVR Transistor Tester
Add instructable to: