Hiland M644 Multifunctional Transistor Tester LCR Resistance Inductance Diode Capacitance ESR Frequency Meter PWM Signal Generator (WHL #50)

Another component for one of the upcoming projects – a refreshed transistor tester.

I’ve been using these for ages now, I actually built two of them before they got popular (what a hipster thing to say?) and every Chinese seller decided to roll his own. The original thread on mikrocontroller.net dates back to early 2012 and the SVN repository even contains a few fixes of mine to the manual, as I was proofreading this thing at the time.

Times have changed, and the ready made versions are so cheap nowadays that homebrew really doesn’t make any sense any more. I bought a fully assembled tester in a handheld case including tester hooks and an adapter PCB like two years ago, at 23 USD. While the bare units have now dropped below 5 dollars shipped, I opted for an upscale version. Still out of reach with self sourced parts, even without the PCB. I paid 15.27€ including shipping back in May.

While it’s not in a fancy case or something, it shipped in one. Thankfully the display has a protective film on it, as the “3M” (yeah, sure) ZIF socket isn’t soldered to the main PCB and caused a few scratches on the lid during transit.

The reason for being triple the price of the cheapest models is this being different hardware. You see, the base transistor tester from Karl-Heinz is based on the ATmega 168/328, so most China models available use the 328p chip. My old ones use the 328 (DIP) as well, as that is plenty for the base tester. 32K flash, 1K EEPROM, 2K SRAM, 16 MHz for toggling three pins and figuring out which type of component is attached. However, as this project has matured, many feature requests have been implemented that far exceed the base tester functionality. And this is where the 328(p) has its limits: 28 or 32 pins (package dependent) and 23 of them are programmable I/O. While that may sound plenty, here’s a quick usage overview: 6 lines for the HD44780 display, 3+3+3 lines for the DUT (toggle pins plus two I/O each with different resistor values, typically 680R and 470k), 1+1 lines for external voltage reference and battery voltage readout, 2 pins for the external quartz, 1 for the reset/power button. That’s 20 already, and we haven’t supplied VCC, GND, AGND, AREF, AVCC and the (hard) RESET yet. Safe to say there’s not much space for additional I/O stuff that cannot be done over the regular test ports.

Instead, this Hiland m644 tester uses the ATmega644, a much bigger MCU. 64K flash (x2), 2K EEPROM (x2), 4K SRAM (x2), running at 20 MHz (+25%). It comes in 40 (PDIP, yay!) or 44 pin footprints and has 32 programmable I/O pins, just shy of +40%. That’ll do for the next few ideas.

I won’t go much into tech detail about the entire circuit (might do that one day to add this to the documentation), but as you can see from the following images, there’s much more on the board than just the plain microcontroller:

The entire back is clear of components, but the front carries the ATmega644PA, then there’s a 1117M3 (800mA-ish LDO), interestingly a XLSEMI XL6007 buck-boost DC-DC converter (for the occasional high voltage gulp for zener tests, maybe), an 8 MHz crystal (okay, I don’t have a clue WHY not 16 or 20, is that a secondary clock?), and some glue logic like one HEF4011BT (quad input NAND), two 74HC4052D (dual 4channel analogue multiplexer/demultiplexer) and one 74HC4060D (14 stage binary ripple counter). These are all about 0.40€ retail each, excluding the main 644, which is more like 4.50€. So right here, for a DIY build, half of the price is spent in parts with no resistor, connector, PCB or LCD purchased.

The main reason to buy this very model aside from being more future-proof than others however is the display. It’s not only a graphic one (supposedly using the Sitronix ST7565 chipset, being 128×64 pixels at 2.4″) – much more useful than a 2×16 character display, but it is also easily removable from the main board. As I will have to do this, why not buy one that’s designed for it? I’m not aware of any transistor tester display that has a useful frame for mounting, so this is my best option to go ahead.

So I grabbed a caliper and made a case for it – here’s version 3 in DesignSpark Mechanical:

2×2 mounting clips, a little cover over the flat flex on the bottom, back plate with two cutouts for the slightly raised solder pads that mechanically hold the display itself to the PCB. These are a tad misaligned, but I could not be bothered to make rev 4 as of now ;)
(Download links on the bottom of the page!)

This is how the display sits inside of the front piece – very tight tolerances, so depending on your printer settings YMMV!

The outer plastic strip of the display has a snug fit to the inner parts of the case, and the cover fits right over the exposed silicone parts of the wiring. In the back, there’s a cutout for that, and there’s another one for the used pins of the display.

I also made a dummy test plate for the various things that will be in my final panel. This was set to exact dimensions (as I wanted this from machined aluminium in the first place, but now I’m not so sure I need that, it’s pricey), so the printed part has slightly too small inner diameter on all pieces, especially the edges aren’t a perfect 90°. Nothing a file cannot fix in a jiffy. The case fits nicely on the front:

Same on the back:

And the lid fits perfectly! Snaps right in, no play in any direction, difficult to release from the back and 100% stable from the front side.

Note these hooks are made for 3mm panel thickness, so for thinner ones, the hooks have to be shorter or there’s got to be a spacer present, like a piece of cardboard. You can also add hot snot once in place, but that’ll make removing the assembly significantly more challenging. Maybe that’s desired, maybe not ;)

Mounting hole size is 62.2mm x 46.8mm, front size is 66.2mm x 50.8mm, so 2mm overlap on each side.

Now I need a perfect print of the front part, the back will do as is. Or should I start sanding and painting the thing, in order to fill the crevices from the FDM printing process? I’m not sure, I’m new to surface finishing of printed parts.

Here’s the promised case files, RS DesignSpark and exported STL (two documents, each facing down in Z axis)
RSDOC, Front STL, Back STL

Leave a Reply

Your email address will not be published. Required fields are marked *