Milk-V duo

This looks like an interesting board:

I’m going to have to try to port ProffieOS to it…

It’s just a matter of time before Risc-V eats the world anyways. :slight_smile:

2 Likes

The chip on the Milk-V has 64Mb ram, 1024 times more than a V2 proffieboard.

3 Likes

yeah I saw risc-v news was being used as a gaming pc and it worked. so yeah it’s an emerging technology. is the proffieboard arm?

Yes, proffieboards use an arm CoreM4 running at 80Mhz.
The Milk-V is has two risc-v cores, one running at 1Ghz and one at 700Mhz. I think risc-v is slightly less efficient than arm code, but even so, this would make it ~20 times faster than a proffieboard.

And since it runs linux, you can potentially compile ProffieOS right on the the board… We could potentially have a saber where you just drop the config file on the sd card and the board does the rest… (Although it might take a few minutes.)

1 Like

I’m trying to read up on this chip, and most articles mention 3 things: open source, cheap, and flexible in terms or hardware and software development. Does it allow for FPGA style changes at the hardware level? Like running ‘cores’ so there’s no hardware emulation on a DS10 based Mister?

Or is it just a super awesome open source cheap chip? Why is it going to take over the world?

No.
It does have a long list of hardware built-in though, like audio/video encoders/decoders, ethernet and a TPU (for machine learning)…

The real question is how well it works, running linux is nice, but none of that matters if it can’t do WS2811 output and play sound (at 44100Hz) at the same time…

1 Like

How do you think it would affect power usage?

I don’t know.
Moden processors tends to be pretty good about not using power when you shut things down, and there is usually a small programmable unit that handles wakeup. However, it depends a lot on the software how well those things actually work.

I would also imagine that a 1Ghz processor will use more power while actually in use, but probably not enough to matter.

What you may be referring to is that most modern chips of that type have pretty complex and rather impressive peripheral MUXing, but the chip the proffieboard uses does the same thing, newer chips just tend to have more dedicated hardware peripherals which can be connected/configured for, in most cases, almost any pin. Not actually changing logic gates themselves though, more like plugging/unplugging certain already-existing hardware things

1 Like

Well… there’s only one way to find out :laughing: (Datasheets be damned)

Speaking of which… how’d the ESP32 port go? Was it successful at all? Last I heard you had gotten a lot of stuff working, but there was still stuff to do.

ProffieOS compiles on ESP32-S3, but I never got the sound or ws2811 to work well.
Last I checked, there was some code that might make sound work better in the latest version of the ESP32 code base, but it wasn’t available to use from inside Arduino yet. It’s possible that has changed since then.

Gotcha. You should look at the RMT controller and the different peripherals the ESP has. You can access all of them through Arduino (I think it’s on version 4 of the IDF though at the moment). They’re all super powerful, at least from me using them. The RMT is intended for IR remote control (hence the name) but it can be used to drive WS2811 pretty well. You load up a given RMT controllers memory with a chunk of data then it sends it out with the configured parameters. Allows you do do the data completely asynchronously since that RMT is a hardware peripheral, doesn’t need CPU intervention at all except to reload it (which occurs with considerable less frequency than needing to stream the data some other way)

A project I’m working on which is fairly complex as far as needing work to be done asynchronously does this and it works great.

There’s other neat peripherals in there.

I acknowledge it’s basically a non-option to any extent to rewrite ProffieOS entirely to do the following (that’d be just a stupid amount of work, lol!), but maybe for ESP-specific code…

No matter what, even if you’re loading just the most basic sketch on an ESP32, you might have noticed it takes up a considerable amount of flash. That’s because no matter what, you’re actually running FreeRTOS on the thing, so you can use all the super helpful scheduling, priority, etc. stuff built into FreeRTOS in order to also help with asynchronous work.

Maybe I’m saying all kinds of stuff you already know, if so I apologize, but thought I would share in case not :slight_smile:

I am using the RMT controller.
The problem (both with RMT and with I2S) is that their code doesn’t work well when the speed goes up. It requires too many interrupts per second, which makes it super-sensitive to delays. Their new code (IDF 5 I think) uses a memory buffer with DMA to make all this better, which I think will fix the RMT problem, not sure if any such fix exists for their I2S though,which currently tops out at 16kHz.

ProffieOS is tiny, rewriting it is always an option.
I already have specific code for Teensy3, Teensy4, STM32L4 and ESP32-S3 in there…

1 Like

It may be difficult to get the milk-v to do ws2811 though.
I don’t see anything like an RMT module.
Now, it’s possible to send WS2811 data using SPI or a serial port, but that has some limitations as well. Also, the milk-v seems to only have 4 PWM channels…

Ah, I gotcha. If I recall correctly my code was using a buffer w/ DMA, and that was in Arduino, but I could be completely wrong, or I just remember reading the documentation for the new version, but wasn’t able to use it?

I also could’ve sworn they use 48kHz as an example in their docs…

I dunno… been a hot minute since I’ve looked at any of that.

PWM seems like an issue…

At some point I’ll get back to trying ESP32-S3 again, if it works better I might make the support official. If it works fantastic I might try to make an ESP32-S3-based proffieboard. :slight_smile:
Although I suppose there might be an ESP32-S4 by then…

2 Likes

Hmm, the Milk-V site says that the CPU supports 13 PWM channels, not three. If true, that would certainly be enough.

Also, I notice that the Milk-V duo 256M is listed as supporting IR. IR hardware is often capable of generating WS2811 signals as well, so I’ll be interested in seeing how that shakes out. (The 256Mb model isn’t available to buy yet though.)

2 Likes

There seems to be a variety of small arduino-like, cheap linux computers available now.
Here is another one:

This new crop of boards tends to run at ~1Ghz, have several megabytes of RAM and cost very little.

I think there is a very good chance that future proffieboards will run linux…

1 Like