Hacking the firmware, how likely am I to brick the AVR?

Before I start to mess around with it, knowing how incompetent I am with coding and such, I need a word of advice: how likely am I to brick the Shruthi if I do something wrong?

I’d actually only want to change 3 things:

  • make ext default for the midi sync (instead of 120bpm)
  • make portamento a per-patch parameter
  • make the envelope trigger from where it left on the previous note instead of zero (solving the click problem that has been discussed recently)

Right now I have a firmware that solves the last of these three issues I have… but maybe someone has already hacked the firmware to reflect my wishes (or is going to). In which case I’d postpone the whole hacking thing and would be content with just uploading a modded firmware to my shruthis.

Bad firmware code cannot “brick” a chip.

FIrmware hacks wiki entry

For the envelope thing, it’s in the latest version of the code on github, no need to modify anything.

make portamento a per-patch parameter
That’s already implemented, you just have to uncomment it in the makefile.

thanks a lot, will try it!
now I just have to figure out if it’s better to set up my ubuntu box or the macbook for the task. The macbook is the one I use to actually make music, so I don’t want to install too much stuff on it. It’s acting weird already.

In Debian it is super easy to setup the toolchain. You can just apt-get everything. As Ubuntu is an offspring of Debian, I’d say it should be equally easy.

I have used both Mac and Ubuntu for it and they work more or less the same (although I seem to have some problem between my Mac and the AVRispmkII nowadays - and it’s easier to find good free text editors on Ubuntu, I think. I’m not an IDE guy :slight_smile: ).

ok thanks will try ubuntu!

On second thought… If I’m not mistaken you need to make sure you have gcc 4.3.3 to build the Shruthi firmware (because of code size problems with later versions) and that might be easier to get for the Mac, actually.

Oneiric (which I’m running right now) comes with 4.6 if I’m not mistaken… I’ll check when I’m home

In Debian you can easily install lots of gcc versions in parallel. Please do
apt-cache search gcc
and check :wink:

Getting everything in Debian:
aptitude install gcc-avr avr-libc binutils-avr avrdude python-numpy
IIRC Ubuntu doesn’t use aptitude anymore, so you have to replace it with apt-get.


I was telling nonesense, you have to check what the version of gcc-avr is.
aptitude show gcc-avr

ok… have the stuff installed. But I just realized it’s going to need a lot more time than I had thought.
I have a total noob question: where to I find the sourcecode? I’m not really familiar with git as you probably noticed

git clone https://github.com/pichenettes/shruthi-1.git
cd shruthi-1
git submodule init
git submodule update

ok I havegcc-avr version In the tutorial it says “Edit the avrlib/makefile.mk file (extended by all makefiles) to change the path (AVR_TOOLS_PATH / AVR_ETC_PATH) to the directory containing the AVR toolchain.” but how do I know where the toolchain is? sorry for being such a noob…

no probs, everything should be in the default dirs, so:

sometimes the most obvious solution is the one you’d never think of…
Thanks a lot for your help flip!

No problems. If you have more questions, feel free to ask.

well, yes I have more (sorry):
I compiled the source, and made me a nice .mid file (since I don’t have no programmer to use)
I then rebooted the Shruthi in firmware upgrade mode, played the mid file but nothing happens. Maybe it’s the bootloader problem Olivier mentions, I think I have an old one. Question is: where do I find the old bootloader and how do I know which one is the right one?