Module tester build - questions


hello guys,

i have started a module tester build and so far everything is going fine. anyway i have some questions for you:

1. there is no IC socket for ATMEGA - do you solder it without it? i think it’s better to use DIP 40 IC socket instead.
2. there is an inconsistence in parts in BOM and layout:

  • all 5 diodes are 1N4001 in BOM but 1N4004 on the layout - is it matter? i have bought these 1N4004s and already soldered…:slight_smile: so?
  • C8 is 1n in the layout but in BOM it’s with the rest of 100n… also C22 is 2 pieces in BOM so i consider that C8 is 1n as well - so? what is the right value of C8 :slight_smile:

3. i have bought LCD but i don’t have a clue how to mount it - i have bought the same one as in BOM (mouser part763-0216K1Z-NSA-FBW)
there is no pins whatever… please advice.

4. what is the resistor value for this LCD?

5. how difficult is to flash ATMEGA and what tools i need?

thanks a lot! jurek


1. You can use a socket. References can be found in the Shruthi BOM.

2. 1N4001 and 1N4004 only differ in their maximum current. Both will work. I recommend 1n for C8. What’s the issue with the BOM anyway? C8 and C22 are 1.0n in the BOM.

3. You need to use a male header for the LCD. For example, Mouser 649-68001-416HLF.

4. 3.3 ohm.

5. An AVR ISP programmer.


thanks for the answer. could you point out which AVR ISP would be the best? or any would work?


Generally speaking, any usbasp or stk500v2 compatible clone should work. There are plenty on eBay for next to nothing…


Hey people!
I’m finishing a Module Tester and i’m about to flash it. I don’t have a AVR ISP programer but i have and Arduino Uno. Has someone used and Arduino as ISP programmer building MT? Experiences and guidance would be the best.



This article explains how to use upload the Arduino ISP Sketch to an existing Arduino. This will turn the Arduino into a STK500 compatible programmer. The article is targetet at users who want to use the Arduino to program another AVR chip witht he arduino bootloader. But of course you can use the ArduinoISP-Programmer to program anything onto a blank AVR chip.

  1. Upload the ArduinoISP Sketch to your arduino.
  2. Connect it to the ISP pinheader on the module tester PCB. Google will help you find the pinout for that. If you are unsure, post here.

Now you have two ways you can go.

  1. Use the precompiled hex file from this page. Use the avrdude commandline tool to write the module tester firmware to the blank chip. You can find the corresponding command here on the forum. The command includes a series of configuration options telling avrdude what type of programmer to use, what type of chip is being programmed, in which file it can find the firmware, and what the fuses should be programmed to, etc.
    You must set the corresponding options for the programmer to -P com3 -c stk500v1 -b 19200 and leave the rest of the command unaltered.
    EDIT: I searched for the command here on the forum, but I can’t seem to find it. Here is what I reconstructed from the makefiles:
    First run
    avrdude -V -p m644p -P com3 -c stk500v1 -b 19200 -B 10 -e -u -U efuse:w:0xFD:m -U hfuse:w:0xD6:m -U lfuse:w:0xFF:m -U lock:w:0x2F:m
    then run
    avrdude -V -p m644p -P com3 -c stk500v1 -b 19200 -B 1 -U flash:w:firmware.hex:i -U flash:w:bootloader.hex:i -U lock:w:0x2f:m
    (remember to replace firmware.hex and bootloader.hex with the right filenames)
    EDIT2: Inetrestingly the makefile states hFuse shoudl be 0xD6 but the instructions for the procompiled hex file state 0XD4 (the difference is the size of the bootloader section). Also the precompiled hex seems to include both the firmware and the bootloader in one hex? I’m not sure, maybe soemone else can help here.

  2. You can clone the sourcecode from the github repository and compile it from source. You have to edit the avril/ file. Change line 115 to -P com3 -c stk500v1 -b 19200. You can then use the make command from this page to make and flash the blank chip.


Wow! Thank you SlowGrowth. That’s exactly the details i needed, and so fast. I’m having lunch and later will give a try. I have MI vagrant environment alive but i think i’ll use the precompiled hex files. Cheers


If you have the vagrant alive, I would use that.


I’ve broken vagrant in a recent system update and i’m having hard time to manage the mess. I talked too loud too soon. Pined was a little tricky but with the schematics and one picture i found google i could figure out how to make the connections.

I’m trying to make the day using avrdude directly from a linux os i have with the precompiled file and i have an error in the first steps:

avrdude: ser_open(): can’t open device “com3”: No such a file or directory

Tried on OSX with a fresh AVR Crosspack installation getting the same error.

How can i see which port i’m using? What is happening?

I need to resurrect vagrant, that goes next.


Well, finally i had some success with my linux box and avrdude. I guessed the port looking in arduino IDE; in my case /dev/ttyACM0.
After fixing this i had another error related to bad wiring and i find this online that is quite helpful:

I’ve got to use the precompiled file, as i have a dead vagrant environment right now, the one provided, that i deduce is just one combo file , so i’ve changed the last string and put this:

avrdude -V -p m644p -P com3 -c stk500v1 -b 19200 -B 1 -U flash:w:module_tester.hex:i -U lock:w:0x2f:m:

setting first the HFUSE to 0xD4 to follow Olivier official indications and leave proper memory room for all to fit right.

I succeeded :slight_smile: Now i have to calibrate it, make and enclosure and find a power source to free my Monolancet’s one.


Very good, I’m glad you managed to flash the chip. Thank you for adding the command that worked for you. This will surely be helpful for others in the same situation.