Hello everyone, I’m a .NET engineer tinkering with some IoT stuff and had some beginner questions.
Do the FeatherV1 and FeatherV2 support all .NET standard libraries? For instance, if I wanted to use SkiaSharp to display SVGs would that be possible or would have to use the display library provided?
What’s the difference between the core compute and FeatherV devices? Is it strictly hardware or is there something else that I’m missing?
Is there an official list of peripheral devices (displays, sensors, etc) or should we just be looking at specifications and going from there?
Thank you for any information anyone can provide in advance!
There’s a lot to take in there
1 - .NET Standard Libraries
Meadow can use a wide range of libraries. You have to bear in mind that you the device is resource constrained compared to a desktop/laptop.
2 - Feather V1, V2 and CCM
The hardware in predominately the same. The V1 is no longer available so we are really talking about V2 and CCM.
- Feather V2 is breadboard friendly, it can be surface mounted to a PCB. It has GPIO, analog, battery charging and WiFi all built in.
- CCM also has GPIO (but more of them), analog, WiFi and the capability to connect natively to SD card and also Ethernet through an external PHY. This is a smaller form factor and really meant for embedding into a product.
If you starting out then the Feather V2 is your starting point.
3 - Peripheral Devices
There are a large number of devices supported through Meadow.Core and Meadow.Foundation drivers. More information on the drivers can be found on the Developer Portal.
Hope this helps,
And for SkiaSharp specifically, there aren’t Meadow native libraries so it isn’t (currently) supported.
This is the part I’m still trying to understand. Does this mean that only the libraries in this section Wilderness Labs Developer Portal are to be used?
If I wanted to display SVGs does that mean I would have to roll up my own library or convert the svg to a jpg and display it that way?
Other external libraries are supported, you just have to keep in mind the resource constraints. This is an embedded platform and RAM and flash are smaller than you will encounter on desktop platforms.
So you can add external libraries using nuget. For instance, some customers are using Simple JSON in their application.
I understand there are limitations I’m just trying to wrap my head around what is feasible to attempt. Thank you for all the information you’ve provided thus far it has been incredibly helpful!
Well, in my opinion, while working with microcontroller-based IoT projects, it’s fundamental to consider the hardware constraints of your chosen platform and select peripherals and libraries that are compatible with and optimized for those platforms. The second and most important thing you must do is consult the hardware manufacturer’s documentation and the.NET IoT community’s resources will benefit your development process.
For the scenario of display SVGs, I do not think that F7 would be a great candidate for doing the conversion into a specific format that a screen requires. Depending on what screen you attach it to, and if your solution actually needs a low powered device, like F7 you can try different things.
If you have a source of power, and do not need to run on a battery, to display SVG on a display (HDMI?), you have better choices, like RPi, which probably would do it natively. If you want .NET on RPi, try Avalonia UI. I am making assumptions here, but choose the right tool for the right job. Just because F7 runs .Net, does not mean it will be good enough to do all .Net-related tasks. And graphics is not on the list of the things it is good for.