How to build firmware in 2022?

Hi guys,
to build the firmware for Ambika, very specific versions of avr-gcc are needed, for Ambika-Live, even different versions for the controller and the voicecards.
What is the easiest way to install several specific versions in Linux (Ubuntu)?
Cheers

I was going through the same process as you two years ago, trying to build the correct version of GCC in order to compile the original Ambika firmware successfully. In the end it was so frustrating that I decided to work on my own fork of the Ambika firmware and make sure it could compile on recent versions of GCC: GitHub - MachFour/ambika: Hybrid 6-voice polysynth with flexible voicecard architecture.

Let me know if you try it! I started experimenting a bit at the end so there may still be some small differences from the original firmware but I think it’s pretty similar overall.

There are some other people on this forum who have made forks, such as @stefanovic who developed YAM. His firmware is here: GitHub - bjoeri/ambika: Hybrid 6-voice polysynth with flexible voicecard architecture. I believe you can compile his firmware on a recent version of GCC but I may be wrong.

I’m not working on Ambika much these days… good luck getting it to work!

Thank you @machfour, but I’m not the author of YAM :wink:

I have fixed one bug or two in the Ambika firmware, and like you I tried to compile it with more recent version of gcc, and I proposed some fixes to do so (which are already in the official firmware).
But unlike you, I haven’t succeeded: some heavy computation algorithms were producing cracks, presumably because more recent versions could not optimize the code as well as gcc4…

Because I had the same problem, I compiled the GCC versions used in the AVR crosspacks for my Arch Linux machine and put the PKGBUILDs up into the AUR. I am not sure anymore which GCC version was used for Ambika, but here are the AUR packages:

https://aur.archlinux.org/packages/avr-crosspack-20120217

https://aur.archlinux.org/packages/avr-crosspack-20100115

These include the avr-libc, avr-gcc and avr-binutils for each according crosspack version, or at least something close enough to that. I hope they can be of some use, although I am not sure whether these will be helpful on an Ubuntu System. Maybe via an Arch Linux Docker container?

Oh sorry! I remember you being involved when I was working on the firmware and I remember YAM and my brain put the two together :sweat_smile:

Yeah I think while I was refactoring I must have ended up cleaning up some things which allowed the compiler to make more optimisations, and removed the cracks. Did you ever try compiling my fork?

Thanks for your comments!
I realized that getting the latest version of avr-gcc is almost as hard as getting some old version :anguished:
So I haven’t tried building your branches yet.

Damn, from a quick search it seems like Ubuntu only packages avr-gcc 5.4.0? That seems crazy to me. Might be time to try another distro with a better package manager. I’ve used Debian and Ubuntu which are based on apt-get and I have to say I’m really not inspired by it.

Have you considered Fedora or Arch/Manjaro? I do really love pacman as a package manager, which is what Arch and Manjaro use. Fedora was my first distro.