Axoloti on Raspberry Pi


#1

Anyone considered installing ChibiOS and Axoloti on Raspberry Pi hardware?

Would be very cool if it worked! I guess there would be significant work needed remapping IO, DACs etc. to work on the different platform, and to compile Axoloti patches to the ARM architecture.

a|x


#2

I'm very curious about that too because even a raspi zero it's significatively cheaper and many times faster than the stm32 chip, which by the way, it's also ARM architecture.
the pain in the ass would be to make everything work even for a fixed raspi + dac configuration So I wouldn't expect that to happen (too soon at least) considering how quickly the raspberries & accesories are being upgraded (and abandoned). so it would be difficult if not impossible to create a community around a "combination of different products from different manufacturers".. Anyway. If there was someone giving the first steps, I would love to be there too.. Have you checked out this? greetings.
https://www.stevebate.net/chibios-rpi/GettingStarted.html


#3

That was the article that got me thinking, in fact.

All your points are valid.

It’s definitely a ‘niche’ thing.

I actually had Max Stadtler Terminal Tedium Eurorack module in mind. It was external stereo DAC and ADC, and a number of CV, and trigger/gate inputs and some buttons and pots.

What it lacks is the Axoloti’s MIDI I/O, but that could be added via USB.

a|x


#4

Of course, what would be even better is an official Axoloti II, with a processor of equivalent spec to the one used by the RPi, fully supported by the official Axoloti Patcher software.

Hint, hint... :wink:

a|x


#5

Since there are a few Eurorack modules already out there that are based on Raspberry Pi and Arduino platforms, it shouldn't be hard technically, just time consuming.
Modules like the Q-Bit Nebulae (now in it's second generations because its original Pi being no longer available) can run Pure Data and CSound files, the module providing the I/O and controls. That is not too far away concept wise. There is a conversion program now that turns Nord Modular patches into CSound (using modules designed to emulate the ins, outs, and controls, of the Nord modules in the patch) and the Nord is a much more walled in architecture than the Axo of course. All it takes is a dedicated guy (or team) who want to do it and it could be done. If not exactly the same, they sure could get close.


#6

The difference with with an RPi-based module running ChibiOS would be that you wouldn’t have the overhead of a full GUI-based OS, and could exploit more of the raw power of the processor.

Not having to support PD/CSound etc. would be an advantage, in many ways, and the Axoloti Patcher, while still a bit rough around the edges, is a lot more user-friendly that PD or CSound.

a|x


#7

ARM != ARM
There are many different versions of ARM processors. ARM Ltd. design and license designs for processor cores to manufacturers. The manufacturers then add their own peripherals (ADC, memory controllers, serial I/O, I2S, I2C, graphics processors, etc. etc.) and create the actual chips.

There are chips for (kind of) low-level embedded systems (e.g. STM32F4 used in the Axoloti) which have rich I/O but lower clock speeds, no caches, simpler pipelines, no/simple branch prediction, etc. The benefit is that they generally have lower latency and higher predictability. Also they are somewhat less volatile than their high-performance counterparts but also the processing power is lower.
And then there are advanced chips that you find in the raspberry pi and mobile phones - ranging from single core to octocore designs with multiple levels of cache and everything you would want to run a proper operating system like linux or android. With this dramatic increase in performance comes higher latencies and poor predictability but also increased software complexity.

Between those variants there are HUGE differences, even though they are all called "ARM". Porting Axoloti to a "Raspberry Pi"- class ARM processor is basically pointless as they are just so much more tailored to run a "real" operating system. While it is technically possible to run code "bare metal" on a raspberry pi (that means: without any "real" operating system like linux) it needs a GIGANTIC amount of work to make that happen. And why hassle with device drivers when there are proper linux kernels with all that onboard?

If you want to run audio stuff on a raspberry pi, it is much better to use something like PureData and use a generic USB soundcard and USB MIDI interface on it. That way, whenever a new version of the pi comes out, you can just swap the board out and run the very same application on the new device without having to worry about all the device drivers and low level stuff (as that is all done by the linux operating system already).
Basically that is what operating systems are all about: Abstract the underlying hardware so much, that swapping the hardware makes absolutely no difference for the software running on it.

The benefit of Axoloti is its low latency, fast boot times and the simplicity of the hardware that just "works". As soon as you start increasing the processing power significantly, there will be wishes for new features. Because, you know with all that new processing power, why not add video output to it? See where this is going? Ultimately it all leads to a full operating system. And then you could just use linux and PureData (or any other software).


#8

All good points. My question was specifically about ChibiOS, which I understand is what the Axoloti runs, and which provides a level of abstraction of the actual hardware, and which can also be run on RPi.

a|x


#9

Chibios has some device drivers but what's actually available highly depends on the ChibiOS port. I don't know the RPi port, but chances are you still have to add a whole lot of custom code to get it running.
Also: Many axoloti objects are sepcifically dfesigned to run on the STM32F4, using its DSP functions and putting variables in specific parts of the memory. All that has to be considered as well.


#10

Hej!
Thanks for the Clarification :slight_smile:

I actually walked the raspberry way before: http://cdm.link/2013/07/roll-your-own-looper-cheap-raspberry-pi-pd-korg-monotron-hands-on/

and it's a pain.. and not as "portable" as it seems. (new raspi = new image, new settings, new issues..) and the quality of audio compared with Axoloti regarding clicks, latency, resolution and dynamics, even using a decent usb soundcard it's quite bad... Since I discovered Axoloti I decided to dedicate / enjoy my time with it while my raspberries are collecting dust, even though I have soooo much way walked in pd..


#11

there is also pisound, which seems pretty good.