I'm new to both Axoloti and Axso, where can I find the best information for development?

I would like to better understand Axoloti / Axso development, will there be a centralized location for resources, ‘getting started’ writing objects, notes on expansion development that kind of thing? I see there is an old post on the Axoloti forum…

In my case, example objects written in C for the Axso board would be a good enough start. Understanding of internals would be better, I would like to work on a version of the Axo Control by MTM or possibly a breakout with an extra 4in/4out 3.5mm dc coupled jacks.

Hey @forrest great to have you on board. I’m going to keep this a bit high level to start; we can go into much more detail as you get started.

If you are coming to the platform for the first time looking to develop new objects, I would start digging through the existing factory and contributor objects for ideas. You can use the object browser on the new site: https://zrna.org/akso/objects

Object pages link out to the original object repositories on Github:

Information from the old Axoloti forum about object development is applicable for sure.

Something like a multichannel breakout is going to be more work. You’ll need to get familiar with the firmware in more detail. Before I post the latest code you can take a look at the legacy implementation of the codec driver here: https://github.com/axoloti/axoloti/blob/master/firmware/codec_ADAU1961_SAI.c
It’s useful to work through exactly how samples get computed in a patch and make their way to the codec.

How object implementations actually get stitched together and loaded as an executable patch is a bit complex and not well documented. It’s something that I need to write about in more detail, more of a theoretical treatment of what the basic architecture is right now for people who are interested in the low level detail.

A multichannel expansion is something I want to do myself actually, so we should talk about it more. One of the advantages of the H7 hardware is that it has several serial audio interfaces that make it easy to talk to multiple codecs.

Do you have a codec in mind that you’d like to use? The +12 and -12 rails are available to expansions so we could take a scaling strategy or use a high voltage codec. There’s a Maxim device that @weasel has experimented with in the past that might fit the bill.

Essentially, we’d pick one of the other SAI interfaces on the H7 and build a driver for the codec we pick.

1 Like

Thanks @nsm!

I think the architecture overview would be a big help, and I’m sure you have a lot on your plate already, so no rush of course. Looking at what you’ve written here I think the multichannel expansion is probably left to greater minds, I look forward to more CV control via additional inputs/outputs, but 2 in 2 out is great to start playing with. I would however be interested in understanding how one would wire up and interface potentiometers, buttons, that kind of thing, looks like the GPIO objects have me covered there… Can’t wait to get started!

hey @forrest, for additional CV i/o there also is the proven and pretty convenient option of using the MAX11300 chip. 20x configurable 12bit i/o with euroack compatible voltage ranges.

1 Like

Very cool @weasel!

Going back to my initial question @nsm, I think what I’m really looking for is an evolving set of documentation… In my experience a forum is the worst way to keep a project documented, things get lost and never found again. I found a discord server link on the Axoloti forum, which is great, but I never would have found it without digging through the Axoloti forum, which I don’t plan on doing really, unless I absolutely have to…

I guess the issue I’m seeing right now is that there are posts about the Akso on Muff wiggler, Lines, Axoloti Forum, and here and probably several more places… Is there an intention to make a single this-is-the-place-you-go for everything Akso development other than a forum? The Axoloti forum doesn’t seem very active… IMO the solution is to get rid of either the discord server or this forum, just have one or the other, and set up a github repo for documentation that can have “releases” that go along with each software version release.

Who are the ambassadors for this project, is it just you handling everything?

:clinking_glasses: :v:

Hey @forrest. The Discord is for sure going away. I was always looking at it as a temporary thing. I created the forum reluctantly; I’m not totally convinced that it’s effective for the long term health of the project. I completely agree that it’s inadequate for actual documentation.

I thought about using a MediaWiki instance. I’m still open to that. But right now it is only me doing all engineering and web and documentation and everything. I think it is most efficient for me to just write as much documentation as I can and have it available directly on the website.

In terms of low level nuts and bolts technical knowledge there isn’t anyone else around that understands the hardware yet. I’m the only person that worked on it. So I simply need to put in more time to make sure that every part of it is documented.

On the firmware and objects there are some people in the community that have a bit of understanding we can draw on. I’d love to try to level more people up to being active contributors. The patcher codebase is also not well known. There have been very few contributors to it.

I’m going to make an effort to get as much of the technical architecture documented officially on the website, but I’m just a single person. It’s something I would appreciate help with over time.

For CV out another nice option is to use PWM with a level shifter, lowpass filter and opamp, like it is done in the Midimuso.

1 Like

Thats good info, thanks, my motives for asking about all of these things really has little to do with my own personal desire for documentation and more of a desire to see a successful community involvement with things like documentation. I know how different documenting and developing can be, especially from the standpoint of “fun” :slight_smile:

I do think a forum is a good idea, if just so users of Axso can create, collaborate and ask/answer questions freely.

On extra CV IO: it’s a hell of a lot easier to do now that we have the +12 / -12 rails internally to work with. You can always rig up scaling and level shifting circuitry like @Piers is describing.

The H7 has some interesting features in this area:

Rigging up the two processor internal DAC outputs for CV out is super easy. I can do a tutorial on that.

The super interesting thing about the ADCs is that they’re actually 16-bit which is an improvement over the F4. The F4 only has 12-bit ADCs.

So if you wanted to get really crazy you could do a bunch of 16-bit audio input channels for example.

The integrated comparators and opamps are another weird thing that didn’t exist in the F4 that we should put to use.

The DFSDM is something that could be extremely interesting as well that is new. I’ll go into more depth about how later on.