Patcher 1.1.0 Released (*Edit: back to beta for now!*)

3 posts were split to a new topic: “Ksoloti Geko” (STM32H743)

I have another big issue:
Both on axoloti and ksoloti boards uploading patch to sd card on startup doesnt work. The patches in question are really big and dependt on private libraries, so its not so easy to share.

But this is a huge issue. I’m stuck to an older version of my patch on startup. That makes he whole plattform rather unusable.

Edit: I managed to make it load the patch by getting the sd card out and in again.
I also tried to upload to flash and reproduced the full crash with pink screen. When uploading to flash, the ksoloti patcher forces my macbook to shut down with a pink screen and then reboot. macbook air m1, os 12.01.

Nice one! We haven’t uploaded the latest beta package in a while, there has been some work on USB sync and, SD card stuff. I’ll build and reupload the latest when I have the time

1 Like

Is this by any chance something that would work for the audio i/o expansion?

https://www.digikey.com/en/products/detail/digilent-inc/410-379/9445907?gclsrc=aw.ds&gad_source=1&gad_campaignid=20837516636&gbraid=0AAAAADrbLliJ2H0Agy7d7SDt63qWdsBAL&gclid=Cj0KCQjwyvfDBhDYARIsAItzbZGUBsuarQbkQ_nSrBuXlDxRLPOm2CeFZquH3IYqltHw5QhU6FvsVs4aAnIYEALw_wcB

I actually owned this i2s2 board before. Can’t find it since last time I moved. :melting_face:

Short answer, nope.

Long answer:
The ADC and DAC on that board expect a (typical for I2S) “integer multiple of the sample rate” as master clock (MCLK). In other words, MCLK must be 256xFS, or 512xFS, etc. Maybe you’ve seen the somewhat enigmatic frequency of “12.288 MHz” in some designs before - this multiple is where that frequency comes from (256 x 48000).

The problem is that Axoloti/Ksoloti do not generate this frequency. Due to hardware limitations stability reasons, AxKso MCU passes the master crystal clock (8 Mhz) directly to the codec on board (ADAU1961), which creates all its required clocks using some fractional PLL stuff, then feeds the relevant clocks back to the MCU so everything stays tightly coupled. In other words, the codec chip is the real I2S Master on board. So far so good.

Now if the AxKso codec could just share that proper I2S-type MCLK of 12.288 MHz on one of its pins, just like it can with the other related clocks (BCLK aka SCLK, LRCLK) … but it seems it can’t. At least not from what I can see in the datasheet.

Many I2S DACs do not require this MCLK and are happy just receiving BCLK, LRCLK, and audio DATA. But most ADCs require this proper MCLK for the sampling process they internally do on incoming audio.

There are some newer codecs which do not require MCLK, and sort of smartly interpret whatever clocks they get to create what they need, like the Texas Instruments TAC5142. I started designing a small daughterboard for this chip but not ready for prototyping yet. Cheers!

Thanks for the thorough response! Fingers crossed that TAC5142 works out. Creating a daughter board is a little over my head (and probably over my soldering capabilities, too) but it would be amazing to have the extra i/o. Chaining 2 ksolotis with SPI link and the extra i/o would blow bela and similar things out of the water, at least in my opinion.

Is extra audio and spilink between 2 boards possible at all?

Definitely agree here, more io would open to all sorts of creative possibilities. Quadrophonic delays, small digital mixer, hexaphonic guitar processor, individual outs for drum machine. Digital poly synth w analog filter etc.

Good question, the way it is set up now (or rather ‘will be setup in 1.1.0’) means you must choose between spilink firmware and i2scodec firmware. They occupy the same pins: SPI3/I2S3. That being said, there might be a way to have PA4…PA7 run the I2SCodec part, which would have to be realized as i2scodecspilink firmware.

Is this even desirable? Sounds a bit convoluted, trying to juggle spilink channels between two Cores, programming two separate patches, plus running extra I/O on each of them.

Maybe just wait until I figure out how to best do on-board 4 channel audio on some future revision with upgraded CPU?

I could rather imagine a scenario where you start with one board with extra io, run out of resources and then want to integrate a second board for more processing power.

But yeah in that case you might as well use the others boards io. I would say this is not a top line priority. I’d rather have a stable spi / extra io release first :slight_smile: