General advice regarding TinyCLR OS and specific needed blocks

Hello all,

I am really surprised about this technology. I have been using Xamarin to build multiplatform Apps, and Mono for Raspberry Pi for the last two years and I am in love with C# and the .NET ecosystem.

Now I am in a prototype stage for a new hardware for the musical industry. I am seeking and seeking a way to write embedded code in C# and that is why I landed here. Apart from the C language, now I would love to share libraries with the mobile Xamarin App and .NET Core cloud API that will connect with the device.

While I keep reading TinyCLR’s features and specifications, my enthusiasm is increasing, however I would love to have your feedback regarding the following aspects:

  1. My system will need the following blocks: USB, Bluetooth, Ethernet, USART and SPI. As far as I have read, I am thinking in the STM32F4 MCU. The first question would be, how reliable would be to build a production system with that specs?

  2. We are planning to deliver the product this year, do you think the “Alpha” status of the system can be useful for a production system for these features?

  3. Is SQLite works with TinyCRL, writing in the Flash section of the MCU?

  4. We definitely need to build a board from scratch, how easy is to write the system firmware by USB to a completely new chip?

  5. Can I develop in Visual Studio for Mac?

  6. Is there any background or documentation for writing Web APIS with C# in TinyCLR?

Thank you for your time, I really appreciate it! :slight_smile:

First off, TinyCLR is not production ready. I have not seen a timescale from GHI for this as it is still being developed and there are many parts still missing. I’ve held off until now for anything TinyCLR beyond playing with it and sticking with NETMF 4.3 and 4.4 for any commercial projects.

Don’t get me wrong, I think TinyCLR will be awesome once it is ready, having known the background and success I have had with GHI based designs in the past. It’s just not ready for the real world yet. :slight_smile:

I agree with Dave.

We, Polaris Energy Services, are producing production products based on .netMF 4.3.8.1 FW. We simply can’t move to TinyCLR OS until it has the features (and is debugged, stable) to the level of 4.3.8.1

I pray that the TinyCLR OS development does not fizzle…would really like to use it for real-world industrial production applications!

Why in the heck did MS give up on .netMF?
Did they not realize they could capture the iot market given tools such as Visual Studio, C#?

I have tried other eco-systems for development, i.e. eclipse, jtag and whatnot…they all suck compared to the VS eco-system…in my opinion of course!

What would be even better is the ability to load the full .Net framework on processors / hardware.
From my perspective current processors and all attached hardware (RPI, Beagleboard, etc.) have the horsepower…or am I missing something?

Why can’t the full .Net be ported to these devices?..life would be so much simpler!

Does GHI have the backing of MS or such to see the full .Net Framework someday is available for these types of boards?

Even if the RPI or Beagleboard hardware is unable to support the full .Net Framework, why does GHI (or whomever) not build something that does?

Personally, I would be willing to pay more for such, i.e. a G120 SOM (which our product is based on) costs roughly $40. I would be willing to pay 2x or 3x for the SOM that would support full .Net!

Yes, I realize this is cost prohibitive to some projects / products… but for some, such as us, it would be a totally viable price point.

Are there not that many other companies out there that would purchase such to drive the quantities required to deliver at a price point of say $99.99 for a SOM / hardware that delivers all the features of full .Net?

the ghi boards don’t have the resources necessary to run the full .net libraries.

Yes, I know the current GHI boards do not have the HP.
Could GHI not build something that does.
Would rpi or beagleboard not work?

RPi class devices already run Mono or .Net Core.

You need a full Windows install to run any other .Net. That’s a whole different can o worms than a RPi/BB and overkill for most target device use cases that something like G120/G400 fills. But you can buy PCs that have small form factor / embedded-like devices. But again, you have a heap more infrastructure around than you need for something you currently do in netmf.

What exactly do you think you’re missing ? What would you gain by having access to full .Net ? Is it just that you’d have one app that could scale ?

.netMF & netCore do not fully support System.Xml.Serialization.

More specifically lists <> and such do not serialize / deserialize correctly.
System.Xml.Serialization.Configuration
Sysyem.Security.Cryptography.X509Certificates.X509Certificate2
……and many others, virtually impossible to port pure .Net to .netMF!

So, if your edge device needs to connect to web api’s that require anything more than very simple xml exchange your hosed with .netMF and .netCore.

What is frustrating is that i can run python on an rpi or a beagelboard and do all that is needed above.
Why must us MS (.net) devs not have a piece of hardware that can run win10 or such? If rpi or beagleboard can run linux…why cant GHI or another put together something that would run win10 (maybe not all the bells-n-whistles in win10, but the full .net framework) or such?

Latte Panda would be your best bet then i would think.

2 Likes

Anyone can build a Win10 device - many vendors already do. GHI will choose to build devices that they want and fill product gaps they perceive that will allow them to run their business profitably. Do they see that a Win10 device would do that? Would they see that a deviation from their current focus? I can’t answer that, but I will just say that Win10 PC devices are commodity - it’s a race to the bottom from a cost perspective.

I also don’t know if your views align with how Microsoft perceive the architecture for IoT - they talk about the intelligent edge. https://www.microsoft.com/en-us/internet-of-things/intelligentedge Does that need an embedded like device to have the full .Net capability ? Not necessarily,

Justin & Brett - Really appreciate your advice!

I tried to find temp specs for the Latte Panda. Was not successful. Does anybody know where this info might be?

Have looked, in the past, at MS iot edge. My interpretation is one still needs to use a NON .net device for the edge device? I will research more.

Note: We could not use edge-iot to edge-hub communications channels. To big of data payloads…AFAIK.
Our devices use either cellular or satellite, so data payloads are optimized, i.e. raw bytes in a specific format transferred via either UDP or TCP that our NOC / server(s) know how to parse.

I see your point for GHI. It is just a few things (mainly System.Xml.Serialization) that .netMF comes up short on that are my problem. The G120 SOM works perfectly for everything else. We actually load a daughter board that runs python for web api stuff. The daughter board then communicates with the G120 to do what needs to be done. That’s all this daughter board does.
Just would be nice to have the G120 do it all.

Again…really appreciate you input…thanks.

What you need to do then is be very explicit about what EXTRA capabilities that you’d like GHI to consider putting into their TinyCLR OS implementation that would help address that/those gap(s).

If you mean the operating temperature that Latte Panda is rated to operate at, um well think more along the lines of cheap PC for inside your house, not industrial strength PC, because the website http://www.lattepanda.com/ only shows spectifications (sic) an end user might care about

Hi all,

Thanks for your detailed answers and comments. As I am new to GHI, I tried to look at every product specs and have a deeper understanding of your website and company, to ask for a more punctual recommendation.

My company needs to get a quick prototype from a product, and I would really love to program it on .NET as we have working software blocks and layers for different platforms that will interact with the product.

Let me ask you for an explicit example/question:

If I wish to select the G120/G120E Surface Compute Module for my prototype -> design, I would love to have the following information:

By reading this thread, I can deduct that I will NEED to program the device in .NETMF rather than TinyCLR? There is a statement in the home page of GHI Electronics that states: “A tested, commercial grade port, is made available for some of compute system on modules.”, so that is not correct?

If I want to use a GHI Electronic’s G120/G120E for my product, developing in .NETMF is not “correct” as it’s a legacy language, but TinyCLR does not work yet? Sorry about being redundant, but the information in the website is really confusing. If so, .NETMF is reliable?

The minimal needs of my product are listed in the first message of this thread.

Thanks a lot! :slight_smile:

Has been for me running 4.38 with G120 and Cerbuino Bee for a number of projects. I also have a number of units in the field running the old ChipwoeX boards and later updated to G400 working well too.

You just have to pay attention to your code to keep GC to a minimum. :slight_smile:

A couple of important points here…

First, this is a community of enthusiasts, and in particular you haven’t had anyone from GHI comment on your thread. If you want to get serious with a GHI option, you should jump on the phone to them and chat, nothing like an in-person discussion to make sure you hear their view on what you want to do. And they can work under NDAs if need be (I guess those could be considered in either direction)

netmf is descended from .Net, but is not like Microsoft’s current efforts (homogeneous core capability) as it was focussed on low memory microcontroller devices (as used in the SPOT watch). So your C# experience will serve you well, but likely large amounts of code you’d like to use is not going to “just work” in netmf without change. So you can’t code for big-framework and expect to just re-target netmf and go, but you can write with both in mind and mainly work - plus you’re in the complete same dev environment and get all the benefits you’re used to.

TinyCLR OS is GHI’s efforts to realign to the big .net framework and UWP. It’s not ready for production use as it’s still beta, but theoretically it might be suitable for prototyping, if the current feature set works for you (and you are flexible enough to work thru any bugs you might find in your exercising it) but the risk is that there’s no committed timeframe to move to release, meaning you might find yourself with a hardware prototype that worked but without a software stack quite ready to take the next step. Only you can decide what you think of the timelines and feature set.

But with everything said and done, netmf is more than capable for production use. There are many commercial customers very happy with the 4.3 implementations (like GHIs) and 4.4 (other commercial / community) implementations. Does your application sound like something netmf could do? Yes, with caveats, since you have a LOT of different peripherals you want to work you should choose wisely (another good reason to chat to GHI IMHO, get their advice)

That you should also call GHI about and talk - all we here in the community can comment on is what we know. There could be other commercially supported efforts we are unaware of and that can’t be discussed.

Thanks Brett,

I actually know that I will have to develop must of the code again, however as you say, what I want is to use my C# skills to create the new embedded product. I have done MCU programming in C, with Microchip before, and I know the limitations regarding micro controllers. I just want to share some models and use an event based software architecture instead of state machine’s C, and memory management.

I will call GHI, but I wanted to know the opinion of the community first to know real comments about people using this technology.

Does anyone here have used SQLite inside .NETMF or TinyCLR?

Thanks a lot again :slight_smile:

Ghi make version of Sqlite for netfm 4.3 but also is supported from them for their products and provided sample too how ro use it.

Glad to hear you are excited about TinyCLR. We believe there is a great future for it in the very near future.

While this is a fantastic forum to share knowledge with the community, a direct contact with us works best for commercial users. I recommend you get in touch with us directly to discuss your needs.

As far as the current roadmap, you will have something to enjoy in April http://docs.ghielectronics.com/tinyclr/roadmap.html

Thanks @Gus_Issa, I actually wrote by the form you mention one or two days ago.

I saw the roadmap and it looks amazing! :slight_smile:

I am a risky guy and would love to make our product with TinyCLR. So, let’s talk soon please as I need advice for the modules I want to use.

Greetings!