My Axoloti Plan


#1

I hope this is not the wrong place for this and I apologise if anyone doesn't like that I posted it here.

I wasn't sure where to post it and as it is related to the future development of Axo and I do seriously intend to get up to speed with the code enough to be a useful contributor or at least a beta tester eventually so I posted it here. Mods please feel free to move it to where ever you think it fits best if not here.

I don't expect to be spoon fed but I would appreciate some guidance as to where to start with understanding how the patcher and firmware work, how they communicate as well as how the firmware and hardware architecture work.

Knowing enough to work on the firmware will take a year or so I expect realistically but once I get to that point I will start working on a board revision and/or add on card(s), with more memory, faster cpu and balanced audio i/o and eurorack audio and cv i/o. From there I can possibly turn out commercial products such as eurorack modules built around Axo and a 19" rack mounted general purpose programmable DSP that uses open source software and hardware with 2 Axos in it.

I don't care if people don't like my ideas or get offended at the suggestion of future possible improvement to what I think is a good enough base for me to invest my time in. Isn't the fact that I believe in the project enough to put my time into it some of of compliment to the project itself anyway? I really don't understand the resistance to change and to ideas about possible future directions that I seem to be getting.

Anyway.

I can see a direct path with Axo as it is and the tools and knowledge I have already to make what I need for myself, by myself anyway, I just need to do the work now, which I am doing.

Perhaps if others appreciate what I am doing as I post my work I will think about making some products to sell based around Axo if there is enough interest.

I don't care if no one wants to help or use what I make because I need these things for myself and commercial options are far out of my price range.

It will be a great learning experience for me even if I fail.

I've been looking for an open source project to get into for years and the possibilities Axo offers have got me excited enough to motivate me to get into it seriously.

Make of it what you will, this is my plan, help out or don't, that is up to you.

I will get there eventually one way or another under my own steam regardless.

I don't think I've been this excited about, and committed to, a project I've been working on since I was first learning programming in high school. It would be great to see some other people as excited and enthusiastic as I am about it as well.

Thanks all.

Oh and BTW in case I haven't made it clear already.

I think Axoloti rocks and I will be eternally grateful for the people who have worked to make it what it is already.

I just think it could be made even better.


#2

For me this is really good news. To me it's clear that the Axoloti has a commercial potential that is not fulfilled.


#3

Sounds like a great idea. I also have thought about doing something similar, but with Pure Data. But yeah it is a long journey, especially if one havent done anything similar before. And I havent.


#4

A long journey but one worth taking I think.

I respect your choice to use Pure Data but I would not take that approach myself because it requires an operating system whereas Axoloti contains it's own operating system.


#5

Yes that is true. But I dont have to develop new hardware, like you say you are going to, cause that takes a lot of time and a lot of money. With PD I can choose a finished board out of 100's that all ready runs Linux. And only thing that needs to be done is write a few scripts to make the Linux OS do the things I need. With PD you also have the option to select your own DAC, to improve the sound quality.

But yeah I guess it is a matter of taste and what feels good for one.


#6

I see no reason why the existing firmware could not be adapted to run on a much more powerful ARM chip.

And I am talking MUCH more powerful

Like an 8 core 2 GHz ARM with 4 gig of ram and 32gb of emmc like in a mobile phone.
Something like this.

http://www.hardkernel.com/main/products/prdt_info.php?g_code=G143452239825

With no massive operating system overhead it would have enough power to be a full DAW and massively polyphonic synth.


#7

Sounds powerful :slight_smile:

What about the DAC? Any plans to update that too? I think I would do that, because some of the limitations in axolotis current DAC.


#8

I thought about an add on board for the existing Axo with better DACs and better analog side and would make that first before designing a new main board.

Add ons first, core revisions later, will be my strategy.

Use what already exists without much coding first.

Developing hardware is not as expensive as you might imagine.
If you can do the design work yourself you can get the boards made reasonably cheaply in small batches now.
Good quality ICs can cost but for what they are they are dirt cheap really.

I have designed and build a few boards with arduino, faster clocks can bring issues but it's not beyond me to get there eventually.


#9

DACs are one part of the issue but an often overlooked issue is clock accuracy

regular crystal clocks can drift significantly with temperature changes and this can have noticeable effects on audio quality and accuracy of reproduction.

I would use a temperature controlled oscillator for the clock. it's a crystal oscillator in an insulated box with a heating element and temperature sensing, much more stable and not common in low end digital audio devices.


#10

DAC is definitely one of the things that needs to be updated on Axo, IMO. Axo is great, but I just don't get the sound quality out if that I want. But would love to hear it with another DAC. So when you get that working post some examples :wink:


#11

I think that is probably more the analog side of the audio codec than the adc/dac itself, but at this point I don't know enough to tell.

Get a good dac/adc at try and hook it up to axo and see how it sounds, it will be a fair while before I get around to messing with hardware at that level, at least a year I think, apart from adding a few gate outs, some encoders and a display, I've made a rack mounting plate I can add those to easily.


#12

Might be.

With out knowing anything about it, I don't think that is as easy as you think. Cause then someone would all ready have done in here, I am pretty sure.

Anyway, I have no plans to pimp my Axos in this manner and dont even want to try.. They are what they are and I use therm accordingly. For stuff that needs more processing power I use the Organelle.

Anyway I have to go shopping now. Wish you the best with the project :wink:


#13

I never said any of this would be easy, it will take lots of study and hard work, but it is possible.

For me it is as much about the process and what I learn from it as the final result.

Many things that others find hard I don't find hard at all.
Computer programming and understanding digital logic came very naturally to me with little effort.
It's just logical and I guess I think logically.


#14

@strum

Going to keep this pretty short: I find Axoloti incredibly inspiring as well and have various longer term project ideas brewing. I encourage you to dive into the code; the project could definitely use more developer attention. I've probably logged the most hours with the patcher codebase, but have a working knowledge of the firmware and current hardware design as well. Feel free to send me a message and perhaps we could schedule some time to talk things over and help get you started. My advice is simply to be fearless about it and self-reliant. Be willing to dive into the deep end by yourself and do research if there is something you don't understand. Don't be afraid of not understanding something immediately. I usually find it easiest to just go off and read the code rather than to try to have someone explain it in words. The answers are there, but you have to be persistent.

Best,
Nicolas


#15

Awesome Urklang, thanks, that's exactly to sort of help I was looking for.

I'm more than happy to put the work in myself but some guidance as to how the code is structured and where to start on learning how it works would be much appreciated, some sort of road map or data flow diagram that lays out the various blocks of code and how they interact would be invaluable for me and probably anyone else trying to get started working on the code.

I'm going to start by coding some objects and hopefully some knowledge of how the lower level code works will flow organically from that but an overall view from someone who knows the code well would save me a lot of time.

Ill message you to organise a time to chat.

Thanks again.


#16

One of the biggest concerns I would have with such a project is choosing the right processing method. I am no oficianado on matters like this nor have any idea how to put one together, but it is hard to not get the impression of embedded technology going through very rapid changes, with the Axo using the STM32F7 system, why not build on this, with more and more FPGA systems comming through, why not consider one of these, then there is the baremetal programming options some projects have worked on with many different SBC's avoiding the OS approach. And it all seams to be moving so fast. I'm not one to discorage, its one thing to build something people want, its another thing to keep it current and prevent it from getting out of date. Hats off to anyone willing to give it a go. Believe me when I say I would love an Axo with more audio inputs and outputs, and more ram, but for now thats all I would realy need, and I have even tried to understand what would be involved, but can't be convinced that this approach would have a pay off.
But good luck anyway.. :grin:


#17

If I may, I think the biggest problem Axoloti has, is a physical one.

Say you were able to add more inputs, more outputs etc, you're still going to be left with the same physical restriction of the board being a pre-populated design. To me, it's the one mistake Johannes made in his decision making, the rest is pure gold. For Axoloti to be accepted with open arms in a commercial way, the board needs to be released completely un-populated. No power jack, no Micro-USB, no USB, no Micro-SD, no audio jacks ... nothing.

Nothing but the board itself and a header where the user can connect whatever breakout modules they wish, because it would:

  • Allow users to decide where every physical connection is placed when designing/building their hardware.
  • Allow users to decide whether they want SD/Micro-SD/USB
  • Allow users to decide whether they want power from a jack, USB, or even a battery connection module.
  • Allow users to decide whetever type of audio connection they would like.
  • Allow users to decide whether they want USB MIDI or MIDI DIN, and if so, how many of them.

You get the idea.

It would even (I reckon) give Johannes the means to start an Axoloti Store where he could sell the unpopulated board using an intelligent add-on cart for the store. Say Axoloti Core was unpopulated, and a customer adds it to the cart and heads for the checkout, the intelligent cart could point out that they have not selected a power connection, audio connection, or storage. In the store there should be readily available breakout boards designed for Axoloti Core, for example:

Under power boards there could be options like:

  • USB Power board
  • Power Jack board
  • Battery connection board

Under storage boards there could be options like:

  • Micro-SD card
  • SD Card
  • USB Drive
  • CF Card

Under audio connection boards there could be options like:

  • 3.5mm Stereo Jack x1, x2
  • 3.5mm Mono Jack x1, x2
  • 1/4" Stereo Jack x1, x2
  • 1/4" Mono Jack x1 ,x2
  • RCA Jack x1, x2

Under MIDI connection boards there could be options like:

  • MIDI DIN x1, x2, x3
  • USB MIDI

Under display boards there could be options like:

  • LED
  • LCD
  • OLED

Then you could have button banks, knob banks etc. All board options are basically breakout boards that connect directly to an unpopulated Axoloti Core board. And because the modules are seperate, this means that the core could be even smaller and less complex. For example, the CF and SD boards would have their relative electronics accompanying them on their own boards. Bringing down the cost of things in solo, but allowing Johannes to make more profit because he'd be pulling in the custom he's currently losing to eBay and AliExpress etc.

In a financial sense, eBay are making more money out of Axoloti than Johannes is. Eveyone who buys an Axo ultimitely want to build hardware. With the options outlined above, Johannes would be able to cover you whatever you need, with the added benefit of you being guaranteed to just plug it right into your Axoloti Core and it will be guaranteed to work.

Whenever the forum start banging-on about something new they would like to see, it would give Johannes to power to say, ok then, I'll create a break-out board for that and add the relevant object to Axolot Patcher. See that's the beauty of it, each breakout board technically consists of the board itself and the relevant object in Axoloti core, and Johannes would have quality control over both.

Johannes already has his head around all of that with the Core, so that means you'd get purpose-designed breakout boards that just plug into your unpopulated Axoloti Core, and off you go! And from a commercial point of view this makes all the difference. Because all breakout boards would have screw-fixing holes pre-drilled, so that placing any of these boards, no matter what they are, is simply a matter of screwing them into place, wherever you wish to place them - with total freedom of placement of each board!

While I can imagine this all sounds a lot of work (and I suppose it is), in the long run you are creating a system that can never be outgrown, only added to!

Look at the modules I listed, there's really not that much to it in a development sense. All audio connection boards could be designed without any pain whatsoever. Same with the power option boards. The most complex would be the differences between the storage boards, but even that stuff is going to be a piece of cake to Johannes when you consider the complexity of Axoloti core. So there's some work involved but I doubt it's anywhere near as much as it sounds and the difference it would make to usability, desireability, to commercial developers, and to Johannes profits would be quite noticable I think.

Think about, it's pretty crazy not to have it designed that way because that's kinda the whole point of Axoloti, to be able to do things how you want to do them. The only area it fails in that respect, is that it's pre-populated, and being pre-populated is a restriction in a sense compared to the Patcher side of things.

The alternative is what we have now, an alternative where Johannes is losing profit to eBay and where commercial developers are going to turn their noses up at the very thought of having to de-populate hundreds or potentially thousands of Axoloti Core boards.

There is no such barrier with un-populated design.


#18

Thanks for your input Gavin, having this conversation is a necessary part of the development I think.

All the options you have suggested are possible but I think with some development of the software more could be got out of the existing hardware and I will be focusing on that before moving on to developing new hardware.


#19

Yes Axoman this is all possible, but as I said to Gavin these are possibilities but that at this point I will be putting my effort into developing the existing software for the existing board.

I do have in mind a general purpose i/o, control and display kit that will fit into a modular system of enclosures and rack mounting panels that I have in mind to build.

When I have them drawn up I'll post the drawings and people can make them themselves, or if there is enough interest I will get a batch made and see if I can't sell a few.

Please don't take this the wrong way, but instead of expecting Johannes to do these things for you why don't you try doing it yourself?, everything you need is already available, this will be my approach.


#20

No offence taken, and actually, that's exactly what I am doing (I've got no choice in the matter). I've been looking at the Axoloti Core, how it's laid out, and I'm having to develop my own jig so that I can realistically de-populate mumerous boards without causing damage. I need to do this because just about everything on the board is the opposite to what I need. I don't want stereo on single stereo 1/4", I want stereo in and out on a dual mono configuration. I don't want headphones on 3.5mm, I want 1/4". I don't want Micro-SD or Micro-USB, I want SD and no USB at all. The only jacks that are of use to me are the main barrel jack for power, and the MIDI DIN, and even the power jack will need to be moved so that it is accessible from the rear panel of the device.

The only populated items that will reman are the two MIDI DIN (and even those stand a good chance of having to be moved to a breakout board). The rest certainly has to go, some of which will need to be extended to breakout boards that I can place them where I need them. For example, with the audio jacks removed, I'll lead wires to double monos instead, which I'm going to do by designing my own audio connection boards with internal connectors to the solder points on thwe Axo. Same thrain of thought with knobs and buttons, I'm having to design my own knob and button bank circuit boards because nothing pre-made on eBay are spaced or laid out how I would like them.

I can't develop highly technical breakout boards as that's beyond me (otherwise I would), just as contributing to the code is beyond me (otherwise I would). What I can contribute, though, are ideas that are solid, and an un-populated Axoloti Core with breakout functionality, is a very solid idea.

I'm completely dreading having to de-populate Axoloti Core boards, but I'm determined to do so as I have no choice in the matter. Axoloti is the only option out there for me to develop some of the products I have in mind, so I'm speaking from a commercial developer point of view. Commercial developers in general will be looking at Axoloti with an open mind, but will ultimitely turn their noses up due to it being pre-populated. Commercial developers aren't interested in paying for something they don't need, and then paying further to remove the features they didn't want in the first place. That's why un-populated design is the way to go, and why it's generally done like that. It's lean, clean, no waste, and infinitely more versatile!