Tsunami + RP2040 Units?

Do we need to do anything specific to be able to use the Tsunami with the 3.3 volt RP2040 microcontroller units such as the official or the MicroMod or Thing Plus versions? Concerned that the code is not quite there yet, even if there is code available in https://github.com/nickhayeck/TsunamiSnake to deal with it in Python. That code has been written entirely in Python 3.7 and does not appear to be changed in 3 years and is not MicroPython or CircuitPython so presumably it would not just work?

There is mainly the Arduino Library https://github.com/robertsonics/Tsunami … al-Library from two years ago but the Arduino is not technically supported by the Arduino IDE yet though they have said they intend to do so. So maybe that will just work eventually? Does the Tsunami code fully support using a M4 or better ARM based Arduino though? We think so in that it seems to have some support for ARM based M0 units since they are 3.3V as well but still dealing with a lot of code that was for the AVR units which are completely different than the ARM hardware that the vast majority of Arduino uses has moved to in the last few years.

There is the serial code still at https://github.com/robertsonics/Tsunami … al-Library that says “The library assumes that you are using an Arduino with at least one extra hardware serial port, such as an Teensy or M0, and by default uses Serial1”. So presumably it supports ARM based and not Atmel based Arduinos? But Serial1 on the MicroMod https://cdn.sparkfun.com/assets/learn_t … en_Out.jpg if you look at it is not available on pins 0 through 5, somewhat oddly? It seems to extend out and further it’s not clear if you even get access to TX0 and RX0? Can anyone clarify that? Looks more like pins 8 and 9? Very unusual for the default TX/RX pins on D0 and D1 that you see on basically every Arduino and RP2040 and so forth. https://cdn.sparkfun.com//assets/parts/ … 040-04.jpg has them on 0 and 1. Plus maybe the RP2040 just lets you move things around so much more anyway so maybe it’s not an issue? Still waiting for the hardware to be released though though there at least is a DX2 and TX2 available in the first 5 pins but the main trouble then is that literally none of the software will support it by default yet and it will most likely not work at all with the Tsunami by default either. Something tells us that you can’t just move to a RP2040 MicroMod ATP and change to Serial2 and presto, everything just works.

https://learn.sparkfun.com/tutorials/ad … amd-boards might be kind of sort of helpful although not really suitable for the RP2040 yet which is by definition much more flexible in theory but will require the actual code to be there and that is not present at the moment and will likely not be for a good while?

Could eventually use Atmel Studio 7, now called Microchip Studio for AVR and SAM Devices but they too have not yet supported the RP2040 just yet although again seem to have indicated they are working on it. Theoretically could also use Platformio or Eclipse as well.

Basically asking if there are any specific thoughts or things we should think about or be aware of to be able to use the 3.3V Tsunami with the 3.3V RP2040 units?

As a technical observation, the Tsunami has been amazing this entire time in terms of already being a M7 chipset to begin with when it was launched several years ago! Wondering if when the RP2040 turns into something akin to a RP274X or so forth if it could not literally handle much of what the Tsunami can already do and also include an abundant level of PIO built in as well. Would be pretty amazing from a hardware and sound production perspective although that’s probably several years out from production. At any rate, just a minor technical observation of potential future methods of improving on the already amazing Tsunami hardware.

Do we need to do anything specific to be able to use the Tsunami with the 3.3 volt RP2040 microcontroller units such as the official or the MicroMod or Thing Plus versions?

Nope, just send the right data at the right voltage levels at the right speed and the tsunami won’t care what it’s attached too. Could be a mainframe from the 1960’s or the latest and greatest micro controller, it will just work™.

Concerned that the code is not quite there yet, even if there is code available in https://github.com/nickhayeck/TsunamiSnake to deal with it in Python. That code has been written entirely in Python 3.7 and does not appear to be changed in 3 years and is not MicroPython or CircuitPython so presumably it would not just work?

Give it a try and see? Worst case it doesn’t work and you need to do some debugging to see what’s causing the issue.

There is mainly the Arduino Library https://github.com/robertsonics/Tsunami … al-Library from two years ago but the Arduino is not technically supported by the Arduino IDE yet though they have said they intend to do so. So maybe that will just work eventually? Does the Tsunami code fully support using a M4 or better ARM based Arduino though?

Library seems pretty simple, there’s no reason why it shouldn’t work on other micro’s. You may need to change a few things but overall it should work.

There is the serial code still at https://github.com/robertsonics/Tsunami … al-Library that says “The library assumes that you are using an Arduino with at least one extra hardware serial port, such as an Teensy or M0, and by default uses Serial1”. So presumably it supports ARM based and not Atmel based Arduinos?

ARM, atmel, something else… Doesn’t matter. You just need a UART dedicated to the tsunami. You could even write your own library if you needed too using the existing one as a reference.

But Serial1 on the MicroMod https://cdn.sparkfun.com/assets/learn_t … en_Out.jpg if you look at it is not available on pins 0 through 5, somewhat oddly? It seems to extend out and further it’s not clear if you even get access to TX0 and RX0? Can anyone clarify that?

Looks more like pins 8 and 9? Very unusual for the default TX/RX pins on D0 and D1 that you see on basically every Arduino and RP2040 and so forth. https://cdn.sparkfun.com//assets/parts/ … 040-04.jpg has them on 0 and 1. Plus maybe the RP2040 just lets you move things around so much more anyway so maybe it’s not an issue? Still waiting for the hardware to be released though though there at least is a DX2 and TX2 available in the first 5 pins but the main trouble then is that literally none of the software will support it by default yet and it will most likely not work at all with the Tsunami by default either. Something tells us that you can’t just move to a RP2040 MicroMod ATP and change to Serial2 and presto, everything just works.

Probably a subject for another topic but you might check out the eagle files for both the processor and carrier board. Those should at least get you some idea of an answer or point you in the right direction to determine it experimentally.

https://learn.sparkfun.com/tutorials/ad … amd-boards might be kind of sort of helpful although not really suitable for the RP2040 yet which is by definition much more flexible in theory but will require the actual code to be there and that is not present at the moment and will likely not be for a good while?

No idea man, technology is constantly changing and evolving and every platform seems to do things a bit differently. It really comes down to a lot of reading, tinkering and experimenting to figure out what works best for you and the parts you’re using.

I appreciate your response but was hoping for a few slightly more technical responses? Very new to RP2040 and and trying to figure out if any of these approaches are likely to work at all or if anyone knows if they will at all? I can try experimenting with them for dozens of hours but I was hoping the creator of the Tsunami had some feedback with the RP2040 and if it might work with the 2 to 3 year old software updates that effectively have stopped since then.

Not really trying to write our own libraries and do extensive testing and a huge amount of work needed just to be able to use the Tsunami with the RP2040 side of things but we also cannot do any testing until the Arduino code we already have is able to either be uploaded to the RP2040 or rewrite it all to code that is similar but not the same. Neither of which are likely to be quick unfortunately.

Welcome to the bleeding edge of technology?

Thank you but certainly not the first time! It’s one of the few drawbacks of the Sparkfun product line and one of the big reasons why they moved to QWIIC and are embracing the RP2040 line and even working with instead of against Adarfruit. Still, not an expert in every single area here so it does make things rather tricky to correctly or ideally use at all, let alone in a time frame that is reasonable.

Well, was trying to ask Robertsonics his thoughts about the RP2040 potential to join up with or use his Tsunami by posting this in the relevant SparkFun forum about, well, Sound Boards & Audio but it was moved to General Discussion then Latest and Greatest in Technology for some reason?

Very first sentence is:

Do we need to do anything specific to be able to use the Tsunami with the 3.3 volt RP2040 microcontroller units such as the official or the MicroMod or Thing Plus versions? Concerned that the code is not quite there yet, even if there is code available in https://github.com/nickhayeck/TsunamiSnake to deal with it in Python. That code has been written entirely in Python 3.7 and does not appear to be changed in 3 years and is not MicroPython or CircuitPython so presumably it would not just work?

Not sure why your post got moved, could have been a mod mis-reading something or a mistake, but you’re back in Sound Boards & Audio now. :smiley:

Thank you. Hopefully Robertsonics has something to share that could at least point us in the right direction as there is already some existing Python support for his very well made unit and our goal would be to use it through a Sparkfun unit that is using a RP2040 microcontroller using Robertsonics’ own existing command structure to send commands to it. Maybe eventually he wants to make a somewhat less expensive but even more robust unit once a newer RP2X4X unit comes out if he doesn’t have to use a M7 chip and a host of other items? Or make something that is able to functionally just connect to a Sparkfun “Feather” style output as a shield and still offer the same outputs as the current Tsunami can but maybe even with the ability to handle real time MP3 or OGG output? No idea for sure but WAV isn’t exactly small in size and the PIO commands may or may not be usable to help out here but something tells me it probably would be for a host of reasons, especially when you are triggering things in literally real time.

Anyway, still like his hardware very much and it remains one of the best audio boards out there for a number of reasons and hopefully in a few days we will be able to start doing some actual testing and see at least what appears to work and what does not.

Is there a way to either get in contact with Robertsonics or see if they are doing any kind of technical responses anymore? It seems like their Tsunami has been fairly idle for almost three years now with no new updates and no newer version that supports MP3 or OGG ones instead of only WAV. It’s very impressive but we have not seen them responding here and their site directs people to post here.

Their last blog post of any kind was made on February 20, 2018. So over three years ago there.

Their site https://robertsonics.com/mp3-trigger-support/ has them saying:

Support is provided through SparkFun, including their online forums, which I monitor frequently.

Last post that was done back by robertsonics that I can easily locate was posted on Fri Oct 30, 2020 2:27 pm. So basically over four months now?

It’s also worth mentioning that on their https://robertsonics.com/mp3-trigger/ page, if you click on the photo of the MP3 trigger at the very top, it is a broken link.

I do monitor both my own website blog feedback as well as these forums as often as I am able. Please understand that “they” is just me, and until very recently I had a full-time position unrelated to these products so that my time has been limited. I do my best to respond to questions in a timely fashion when I feel that the answers are not already available either in the SparkFun product pages (links and hook-up guides) or my own online User Guides.

I’m struggling a bit to understand your questions. Both the WAV Trigger and Tsunami can be controlled via MIDI or the async serial protocol. As YellowDog said, it doesn’t matter what external processor is on the other end. The protocol is well documented in the online User Guide, and I’ve provided a library as a courtesy that implements the serial protocol on Arduino. Since the library source is available, it can be used as a reference to easily port the code to any C or C++ based microcontroller application for other platforms.

I know little of the RP2040, or Python for that matter. What I can say is if the RP2040 has a UART with 3.3V TX/RX and you can write code to send data to it, then it will work fine as a controller for Tsunami. You, or someone, will have to write code to send the appropriate commands to the serial port however.

You also seem to be implying that the RP2040 could take the place of the Tsunami? Having taken a (very) quick look at the specs, I don’t believe it has either the RAM or the high-speed access to the amount of flash required to stream audio at the rates required by Tsunami. I also see no SDIO, DMA or I2S ports.

Making a high performance embedded audio player that doesn’t degrade audio under high polyphony loads requires very tight coupling of code and hardware (DMA, SDIO, codecs, RAM, etc.) and the code is not easily ported from one microcontroller hardware architecture to another. That said, if I were to design a new player today, it would most likely be on the STM32H750. It’s faster than the Atmel SAM S70, has more RAM, better firmware libraries and high-speed USB that actually works.

Not implying at all that the RP2040 could take the place of the Tsunami. Trying to use the RP2040 to speak to and basically send commands to Tsunami units as opposed to using M4 Arduino units to send commands to the Tsunami units, basically. In theory, eventually you could create a revised Tsunami that has a faster processor and more memory than a M7 but uses a RP2X4X style chip but that’s likely at least a few years out as they are starting with the RP2040 intentionally and will likely scale up from there. Here is where it will likely, at least eventually, move towards.

https://www.elektormagazine.com/assets/ … gure-2.JPG

I will look into the provided library that implements the serial protocol on Arduino and see if I cannot basically locate someone (and pay them) to migrate it to a RP2040 style serial back and forth. I appreciate you clarifying that it can be used as a reference to easily port the code to any C or C++ based microcontroller application for other platforms. Was assuming it was not completely off the shelf to immediately have it working with the RP2040 but the hardware that will be effectively sending it commands here is becoming more advanced in terms of both the ability to send assembly commands if needed plus PIO and everything else that would be a bit more exact than many serial commands. UART and SERCOM is becoming pretty useful even if having multiple serial isn’t exactly the most easy to use without some code being implemented. Still certainly doable here though.

STM32H750 devices are based on the high-performance Arm® Cortex®-M7 32-bit RISC core operating at up to 400 MHz

Which sounds similar to the M7 that the Tsunami already is (Atmel SAM S70)? There’s the Teensy 4.1 (https://www.pjrc.com/store/teensy41.html) that is already using an ARM Cortex-M7 at 600 MHz Cortex-M7 which is a dual-issue superscaler processor. I do understand what you are saying though about how migrating can be a big project. We migrated from AVR to ARM and it was fairly night and day on a host of parts, mostly custom written elements. Migrating from ARM to a RP2040 will hopefully still be mostly C/C++ but will have elements of new code, more on the base level. At least it’s not likely to be as bad as going from AVR to ARM at least.

Anyway, thank you for your response. We assumed you had a number of other things you were working on which is why things have mainly paused here since the Tsunami mostly works with the Arduino platform and we definitely appreciate the response and pointing us in the right direction. It looks like within a week or so we will have some of this hardware setup and can start trying to communicate to Tsunamis by using various RP2040 units. Again, the goal is really just to send commands to Tsunami units over serial and trigger them as needed so the scale and scope, in theory, shouldn’t be too bad to figure out is what our hope is. No desire to do much else other than send commands to it through either serial or a microcontroller Python. Just really liking the RP2040 series. While it definitely has some room it needs to advance on (M4 or better, maybe some higher MHz, etc), it will get there and the PIO side of things is really interesting and useful as well. As in incredibly helpful and new to the microcontroller side of things. Really nice to see it allow you to send a fairly large number of specific interrupts in real time. Semi relevant to sending out audio as well for that matter, so maybe something to at least be aware of?

One of the few things that would be a big improvement would being able to use high end but still not WAV audio as the only option. Meaning MP3 or OOG or something along those lines. Mostly because WAV tends to be a huge sized set of files by comparison is all.

Small FYI, if you go to https://robertsonics.com/tsunami/ and click on the main image of the Tsunami (so https://robertsonics.com/wp-content/upl … mi_350.jpg) then it sends you to a Page not found page.

Not sure that the broken image has been fixed in nearly two weeks now which makes us think that the message was not even read since there has also been no response to it in that time either.

We do appreciate the initial response and we do like the product and have been doing testing on our end for a number of items as well, some of which have worked better than expected. Just wanted to followup and see if there is any additional feedback or responses?

Thank you!