At this stage I am collecting required parts and checking comparability of parts with code. Next stage will be design of PCB.
Microcontroller
I am planning to use Atmega328P
Display
I want to use graphic LCD display. So it was not simple to understand which display will work with existing code. After couple of trials I found that this one works almost fine. At least I think it will be completely fine with little bit tweaking of configuration parameters or choosing smaller font.
This display uses ST7565 controller.
Display connections to Arduino:
RS -> D1
RST-> D0
CS- > D5
D7 -> D3
D6- > D2
Rotary Encoder
This one checked. Works fine
Compiling code
I am used to Arduino IDE. But code for TransistorTester not compatible with Arduino IDE. Documentation suggests to use WinAVR to compile and upload code using makefile. The problem is WinAVR development discontinued in 2010 and compilation not works under windows 10.
So I flowed instructions from this page "Using the GNU AVR toolchain on Windows 10"
I installed Atmel AVR 8-bit Toolchain 3.5.4 - Windows and Make for Windows
After this code can be compiled using "make all" command
Uploading code
To upload code I use USBAsp programmer and avrdude inside Arduino IDE installation.
The command looks like:
C:\Users\alex\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino9/bin/avrdude -CC:\Users\alex\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino9/etc/avrdude.conf -c usbasp -B 20 -p m328p -P usb -U flash:w:./TransistorTester.hex:a -U eeprom:w:./TransistorTester.eep:a
Well, even if you use buffers powered by AVCC, I am not sure you will have any control on high or low levels of your outputs as they will both rely on output stage characteristics of the buffers which are quite temperature and load value dependant.
Maybe good muxes connected to a low impedance reference voltage will give decent results.
In order to have a low noise level on ADC acquisition, I think, it is better to suspend processor's activity by putting it in sleep mode during conversion and averaging a few consecutive conversion.