On Sun, Apr 28, 2024 at 1:45 AM M. Edward (Ed) Borasky < zn...@algocompsynth.com> wrote:
> I've just run across NuttX, and I think it's a good fit for my project. > What I'm trying to do is develop some computer music applications on > microcontrollers. I'm mostly interested in the Raspberry Pi Pico, but I > also have some ESP32 S3, ESP 32 C3/C6, and Teensy 4.1 boards aand would > like the applications to run on 64-bit Linux machines as well. > > My first target is the Pimoroni PicoVision. This has a Raspberry Pi Pico W > as the main processor and a second highly overclocked RP2040 to drive the > HDMI signal generation. It also has an I2S audio including a DAC and stereo > output jack. I won't be using the HDMI at the beginning. > > The existing raspberrypi-pico-w:audiopack does much of what I want except > for a couple of exceptions: > > - It doesn't seem to use the wireless on the Pico W. I'd like to be able > to access the system via wireless, for example, to broadcast to a Bluetooth > speaker. > - I couldn't find a library in NuttX for MIDI or audio over USB. That > isn't critical; those exist in TinyUSB. > > Which brings me to my main question: how do I use NuttX as a build system > for my own code without integrating my code into a fork of NuttX > repositories as I would for a formal contribution to the NuttX project? > > It's not a licensing issue; everything I do is open source for code and > Creative Commons for documentation. It's mainly logistics; I don't want an > end user to have to download NuttX and learn how to add a board or an > application in order to use my code. > > Getting the PicoVision audio working with raspberrypi-pico-w:audiopack > looks easy; I think all I have to do is make sure the I2S GPIO pin numbers > are correct in the configuration. But is there documentation on how to use > the media player? I couldn't find any. And how do I go about adding WiFi > and Bluetooth to the configuration? I didn't see them in the existing one. > > I guess what I'm looking for is a guide for how to compose the pieces - > board definitions, libraries and applications - into a working > configuration file that I can use. > > -- > How many people can stand on the shoulders of a giant before the giant > collapses? > > Sent with [Proton Mail](https://proton.me/) secure email. Hi, Regarding how to build your code without putting it into a fork of the NuttX repo: Yes, this is possible. First, for the board support package, you can set up something called an "out of tree" board, which means you can have either a clone of the NuttX repo or the extracted contents of a NuttX release tarball, without modification, and then set up a configuration that finds your board in a directory you specify. Second, regarding the additional "nuttx-apps" repository, that is an optional repository in the sense that it serves as an example of how to do various things with NuttX while also serving as a valid distribution with a shell (NSH) and other goodies (like, say, basic web server or whatnot). You can use it (and configure which parts of it to enable in your build) or supply your own "apps" which need not contain anything from NuttX's apps. For your development environment, you might use a directory layout like: directory |-nuttx |-apps |-board1 |-board2 . . |-boardN Where "apps" is either your own apps or NuttX's apps, and board1 through boardN are your custom out-of-tree boards. Hope this helps, Nathan