Raspberry Pico and RNBO

schlam's icon

Hello
Sorry if it's a dumb question, I use MaxMsp since a long time but I know nothing about Raspberry and RNBO.

RNBO seems very interesting for a project I have to do, but I need to use a very small card (Raspberry Pico).

The FAQ says that RNBO is compatible with Rspi3 and Rspi4, I don't manage to know if the Raspberry Pico is one of them or if it's compatible with RNBO..

Thank you in advance for your help.

Julien

Jan M's icon

Hi Schlam,
The raspberry pi and the pico are very different boards. the pi is a complete computer on a single board running Linux. The pico is a microprocessor only without all the other parts that would make a full computer. Think of it as a much more powerful version of an Arduino.
in short, RNBO won’t run on a pico.

schlam's icon

Hello Jan,
I was quite sure that I will have this response... :(


There is something I don't understand very well.
Maybe you can help me to understand..

I understand that the Pico is quite the same that an arduino.
Arduino works with a language close to C, If I understand well.
With Arduino you can use max with Maxuino to program the arduino...
...>BUT it's only working while the USB cable is connected between the microcontroller and the computer.

You cannot "compile" your max patch with maxuino in your microcontroller to make it standalone.

When I learned the outing of RNBO and its capability to compile patchs in C, I really believed that finally I will be able to program microcontrollers with visual language.

So, even if RNBO is a kind of revolution, there is still no way to program a microcontroller with it ??

Arduino language seems very close to C, RNBO can compile patchs in C, but still no way to program an Arduino or a Pico with that...

://

Thank you for your light.

Julien


Jan M's icon

Hi Julien,

it's a quite vast topic. I try to give a brief overview.
Yes, an Arduino board as well as the Pico can be programmed via C. But this is merely the programming language a program is written in and does not take into account the platform it is written for.

A book written in English could be a manual for a CD player or a novel. The novel won't be of any use to understand how the CD player works - though they are both written in English.

In computer terms:

A C program written for a Mac won't run on Windows, or a Gameboy... A C program always has to target a specific platform and/or operating system.

RNBO generates programs/C code that can be understood by a Linux operating system that has the RNBO host program running (with is included in the RNBO/Pi image C74 provides). It requires various aspects of the the RNBO host program and the underlying Linux operating system.

On a Pico or an Arduino there is no operating system running. A C program that targets these platforms works by manipulating the processor directly. One step at a time. RNBO for example needs the multi threading scheduler part of Linux in order to run (among many other things).
I haven't worked with Maxuino yet so I can't say anything about how/if this framework generate Arduino C code.

Does that help a little to understand more?

Best Jan

schlam's icon

Yes! thank you. I understand more !

I am so a noob with those kind of question that I don't understand why it's so complicated to program an arduino directly with Max while Maxuino allows to control an Arduino.

I hope there will be a way to compile Max very simple patchs for an arduino/Pico one day..
Maybe I have to ask in the Maxuino forum, it seems to be the closest way to achieve that.

thank you again

Jan M's icon

Of course that would be nice, but I think it’s probably not feasible. There is so much underly stuff in Max that’s far beyond the capability of an Arduino or even a Pico that I don’t see how this could result in anything that’s less complicated than writing an Arduino sketch directly. And it would be limited to very basic max algorithms (no msp or jitter, no timed events etc…)
it seems more feasible to write an entirely new patching environment for Arduino from scratch as the platforms are based on very different paradigms.

LSka's icon

I haven't tested it yet, but maybe a Raspberry Pi Zero 2 could handle a simple RNBO patch?

Jan M's icon

@LSKA I'd say yes it should but haven't tested it either.