Flashing firmware with Arduino on blank Atmega

Hi there people still into Shruthi !

I’ve ordered all the parts to make a Shruthi XT and filter boards, I’ve assembled and soldered everything and now I am trying to upload the firmware on a blank Atmega644p using Arduino as ISP.
I haven’t done this in a looooong time and cannot seem to get it right (I have only programmed Arduinos with 328, or ATTinys before, a while ago). If anyone can help me I would greatly appreciate it !

I am working in MacOS 10.13.6, Arduino 1.8.10, with an Arduino Uno (pins 10-13+GND+3V3) connected to the ISP pins on the Shruthi board.

I have tried following the official instructions : Mutable Instruments | Shruthi - Firmware hacking, and replaced the path in the avrlib/makefile.mk : AVRLIB_TOOLS_PATH ?= /Applications/Arduino.app/Contents/Java/hardware/tools/avr/bin/

I then followed the firmware building instructions, but when using make bake_all, I end up with weird errors linking to a path with an unknown user “jenkins” : avrdude: can't open config file "/Users/jenkins/jenkins/workspace/avrdude-staging/label/mac-mini/objdir/etc/avrdude.conf": No such file or directory. I have tried to look for this path in the files but I cannot find it…

Any idea where these errors might come from ?
Is there an easier way to burn the bootloader and upload the firmware ?

I have read similar posts like Arduino as programmer/flashing firmware, and Burning bootloader error but do not quite understand what I am doing wrong.

Thank you ! :pray:

It seems that the avr-gcc tools of the Arduino distribution have some paths from their server hardcoded, that doesn’t seem right. Do you have the option to install the AVR CrossPack (CrossPack - A Development Environment for Atmel’s AVR Microcontrollers) on your Mac?

From my experience, the Shruthi firmware needs a very specific avr-gcc version to compile successfully, so your best option IMO is to download an already built .hex file for the Shruthi firmware and flash that via avrdude (which should be included in the Arduino folder and CrossPack). You can find that firmware .hex somewhere in this forum IIRC.

1 Like

Thank you so much @jhbruhn, indeed I see thath the avr-gcc should be “as close as possible to 4.3.3”. I tried avr-gcc -v and it returned 7.3.0 :grimacing:

So I just installed CrossPack 20100115 which has avr-gcc 4.3.3.

I have searched the forums and could not find an already built hex file… So I have tried building from source.

I have tried make bake_all again and got avrdude: ser_open(): can't open device "usb": No such file or directory.
So I tried replacing the PROGRAMMER_PORT with /dev/cu.usbmodem411, and this time I am getting this :

make -f bootloader/makefile fuses
/usr/local/CrossPack-AVR/bin/avrdude -V -p m644p -c avrisp -P /dev/cu.usbmodem411 -B 10 -e -u \
-U efuse:w:0xfd:m \
-U hfuse:w:0xd6:m \
-U lfuse:w:0xff:m \
-U lock:w:0x2f:m

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.01s

avrdude: Device signature = 0x000000
avrdude: Yikes!  Invalid device signature.
         Double check connections and try again, or use -F to override
         this check.

avrdude done.  Thank you.

EDIT : I have just tried with a Leonardo instead of Uno (also I forgot to add a condenser on the Uno), and it seems to work !!!

1 Like