C# via .NET nanoframework?

As of a few months ago
Microsoft has a version of C# and Blazor running on microcontrollers.
A lightweight yet versatile graphics library seems potentially very useful in that world.

Is there interest in the LVGL community to use C#/nanoframework with LVGL
parallel/similar to MicroPython?

Microsoft PLANS that C# replace JavaScript in the browser as much as they can pull it off.

And they’re looking at C# as the best language to pull it off

If I understand the value proposal…
it will be via the strong points of C# vs. JavaScript to do real programming,
and the performance gain from doing that via compiling C# to WebAssembly, which is already becoming the fourth accepted web language per W3C, etc.

I like the idea. Having (Micro)Python, C#, and JS binding would be amazing.

We already made a lot of work in LVGL to make it easy to handle by binding generators and @amirgon’s MicroPython binding generator script could be potentionally very well reusable for other languages too.

Another option could be to use SWIG wrapper generator or a similar tool. I already tried it with Lua and it worked well but generated a quite verbose wrapper.

In either case, we need someone who has a solid understanding of C# and some free time to put together at least an initial binding.


Hardware-wise, there’s a list of “targeted reference boards”.

Since I can’t link to the list, do an internet search using the words:
nanoframework targeted reference boards

ESP32 and STM32 boards are inexpensive and easy to find.
And I’m sure there are reasons to recommend other boards on the list as well.

This link? https://docs.nanoframework.net/content/reference-targets/index.html


That’s the one.

I’m choosing a STM32 “Discovery” board to skip the step of finding a compatible screen, backordered until March via Mouser - but there are thousands of STM32 Nucleo and/or ESP32 DevkitC boards available through multiple sources.

I’m choosing C# nanoframework as a foundation, structuring everything else around that.

I’m also investigating JavaScript and Node.js on a microcontroller via Neonious, I’m playing with one of those now.

(My criteria to choose C# and JavaScript = core W3C web standards friendly, with at least some execution in the browser.)

Obviously many of you have done the same with microPython, with your own priorities. All good. :slightly_smiling_face:

Sounds interesting.

From this point, I think the next step is to find someone who is interesting in working on a binding.

I was just wondering if anyone already tried C# nanoframework with LVGL. It would be a great idea to integrate those two. I would not invest in JavaScript - I think Typescript will eventually replace it.
I guess, now I understand why LVGL functions follow strict naming/call pattern.