.NET Nanoframework with José Simões - podcast episode cover

.NET Nanoframework with José Simões

May 06, 202655 min
--:--
--:--
Download Metacast podcast app
Listen to this episode in Metacast mobile app
Don't just listen to podcasts. Learn from them with transcripts, summaries, and chapters for every episode. Skim, search, and bookmark insights. Learn more

Episode description

Ready to go nano? Carl and Richard talk to José Simões about the open source .NET nanoFramework - a community-driven project to provide .NET for embedded systems. José talks about the evolution from the .NET microFramework, to something even smaller, while at the same time, microcontrollers have gotten much more powerful. The conversation looks beyond the hobbyist and educational uses of these systems into commercial IoT applications. The development cycle is one you'll recognize, working in Visual Studio (or Visual Studio Code) and executing against an emulator, or to the actual controller via USB. And yes, you can set breakpoint in the controller!

Transcript

Speaker 1

How'd you like to listen to dot net rocks with no ads? Easy? Become a patron for just five dollars a month. You get access to a private RSS feed where all the shows have no ads. Twenty dollars a month, we'll get you that and a special dot net Rocks patron mug. Sign up now at Patreon dot dot NetRocks dot com.

Speaker 2

Hey, and welcome back to dot net Rocks. I'm Carl Franklin.

Speaker 3

And I'm Richard Campbell, episode two.

Speaker 2

Thousand and one. It's going to be good if I can live through it. As you can tell.

Speaker 3

Yeah, you're still battling that cold, and of course a bit of time shifting. So the cold you may have heard a few weeks ago is the same cold. Yeah, in between, you know, there's been other shows. It's crazy.

Speaker 2

Uh, And I picked us up while I was in Seattle, right, So I'm not really sure you know how long it's going to take. But I know it's not the flu, and I know it's not COVID, So.

Speaker 3

There you go. Yeah, that's important. It's just a cold. It's just a springtime cold.

Speaker 2

It's a cold. It's gonna last for a while, and I hope I make it to the next gig.

Speaker 3

I hope so too. All right, we got more shows to record.

Speaker 2

Yeah, this being episode two thousand and one a Space Odyssey. Oh boy, let's talk about what happened in two thousand and one. The big one, Yeah, of course is September eleventh attacks. Yeah, not much we can say about that that hasn't already been said.

Speaker 3

No, I think it's it's all been said, but it overwhelms a whole lot of other news that went on there.

That was also the year the Enron collapse. Mm hmm, you know that sort of accounting scandal and you know, company worth billions at the beginning of the year, by the end of the week year is bankrupting, gone and actually destroyed Arthur Anderson, like one of the largest accounting firms in the world, who was supposed to be the odded body that made sure that what they were saying was true and what they were saying was not true and so yeah, they literally were dismantled for it.

Speaker 2

And the war in Afghanistans started shortly thereafter nine to eleven.

Speaker 3

Yeah, and Bush had just gotten into office, like it's yeah, remember when it started out like there was seemed to be like a conflict with China. There was the incident with the with the US aircraft and a fighter jet. It's like this, this is what's going on. And then of course in September hits and everything changes.

Speaker 2

Yeah, nasty. There's a lot of other international conflicts. I want to just mention the standoffs between Indian and Pakistan, continued violence in the Second Intifada, in the start of conflicts in Macedonia. Just I don't know, maybe this was a millennial angst kind of you know, come to fruition. I don't know.

Speaker 3

This is all the fallout of the collapse of the of the Eastern Bloc, right.

Speaker 2

Yeah, much, Yeah, go ahead. Let's talk about space and technology first.

Speaker 3

Javentin space. I think of importance in February when the near Shoemaker spacecraft, which has been orbiting around four thirty three arrows an asteroid, actually lands on the asteroid. No, it did not have landing gear, but gravity was so very low that it was able to maneuver precisely into this little saddle region and actually touch the asteroid successfully. That same month, the Atlantis Space Shuttle carries the Destinary Laboratory module to the International Space station, so this is

the big one, the large module. The most interesting thing in that event is during this space walks to hook that module up, so they actually have to get it, go into their space suits, and go outside to hook up lines. On the outside, there's an ammonia leak and astronaut Robert Kirbeam ends up being covered in an inch of frozen ammonia, so he's outside the spaceship. He said, yeah,

this is not good, and ammonia is quite toxic. They can't carry it into the space station now, so he's basically stuck out there for nineteen minutes for a full orbit until they get around into the Sun's side again, where the sun will evaporate all of the ammonia off of him, so he can't see things we take for granted, yes the sun. Now he's not stuck, he's not paralyzed in his suit or anything. It's just crystals covering him.

So then they get him too the airlock and it's the old airlock because they haven't flown the new one yet so it's not very big and put him in the airlock pressurized it depressurized a couple times to try and blow all the ammonia that's left on him out before they actually get inside, and it turns out to be a non event. But for a moment there, the things were really serious. Yeah, following month, in March, the

Mere space station is deorbited. This has been decided the following the previous year in November, the Russian Federation just did not have the money to operate both mir and the International Space Station requirements they had, plus, Mirror was very old at that point was a ten year space

station that was now fifteen years old. In fact, the deorbit was delayed because of gyro failures on the mirrorment that they couldn't dock the progress booster to it to deorbit it, and they didn't want they It was already low enough that if they didn't boost it immediately it was going to deorbit by the end of March on its own, out of control a la sky Lab, and

nobody wanted that. So instead they brought a progress booster up to it, and then in March deliberately drever it so that it came down near Fiji into the South Atlantic I mean sad, but also it was time, you know, these space stations don't last forever. They met the materials wear out, the equipment wear is out, and the design of those stations, the Russian design, a lot of those parts weren't replaceable. You just had to replace the whole module.

So it just wasn't worthwhile. Plenty of Space Shuttle missions to the ISS to do resupply and so forth, including Chris Hadfield, the Canadian very famous now Fairies Game is Canadian astronaut. At the time, it was his first trip to the International Space Station and he would be the first Canadian spacewalker ever. He would later go on to command the space station.

Speaker 2

In the first person spaced David Bowie sung in space.

Speaker 3

Yeah, that's right. Also, the Mars Odyssey mission was launched in April. This we'll get and we'll get to Mars in October, and it's one of the telemetry satellites and image surface map aerial mappers orbiters. The big airlock for the National Space Station arrives in July, the question joined

airlock which is a lot more capacity. And also Dennis Tito, you remember Dennis Tito, now the first space tourist in April gets to the International Space Station when it's still pretty small, right on TM thirty two and he gets to spend eight days on the International Space Station. Very first space.

Speaker 2

I remember that, but I just didn't remember his name.

Speaker 3

His name is Tito. And yeah, more supply missions. Final thing I'll mention on space is that. And this year, a not particularly well known tech entrepreneur named Elon Musk donates one hundred thousand dollars to the Mars Society and joins the board, and during one of their meetings, announces a project he calls Mars Oasis, the idea of landing

a greenhouse on Mars. At the time, he's in negotiation with ross Cosmos with the Russian Federation to acquire a neeper launch vehicle to be able to fly a mission to Mars. The Russians think he's a joke, and it makes him angry, and he starts looking at how what it would take to build his own rocket.

Speaker 2

I never went anywhere, did it all?

Speaker 3

Right Over to computing, I'd call it foreshadowing except its history. It's two thousand and one, the dot com crash is well underway. Tech companies have lost a lot of value already. It's not over yet. Bottom up in two thousand and two, so that's exciting. And Apple has an amazing year in two thousand and one. In January, they released iTunes. It was originally a product called Soundjawn that they acquired in

ninety nine. It was created in ninety nine they acquired in two thousand and they're heading down their music path because in October they'll release the iPod. They also opened the first Apple stores in Glendale, California and in Tysons, Virginia and mac OSX is released, So I mean Apple was firing on all cylinders there. It was amazing.

Speaker 2

Microsoft also released the Xbox that year.

Speaker 3

Matt Microsoft releases the Xbox that year. They also released XP that year, including the sixty four bit Itanium version. The Xbox release includes is also the same time they released Halo, the most popular game for the Xbox, and it's also too. In June, the US versus Microsoft decision where Microsoft is ordered to break up into two companies that didn't have they will sub subsequently by the end of the year negotiate a consent to cree that won't have.

That actually happen. Also July, Napster is shut down. This was the music and media piracy site. Yeah there was, you know, but it's solid. That same month, a guy named Bram Cohen announces a open source library he calls BitTorrent.

Speaker 2

Yeah, BitTorrent. We we got sucked into the BitTorrent thing because bandwidth was expensive back then.

Speaker 3

Yeah, and we were trying to save bandwidth. So well, we had started the show yet, you hadn't started the show yet. Remember I'm the new guy. I'll show up a couple of years later.

Speaker 2

But yeah, that's right.

Speaker 3

Yeah, BitTorrent's already invented, and we'll you'll need to use it to try and save me what cause? So yeah, for on the Microsoft side, we we've got the case, We've got XP We've got I E six, very popular browser, and the Xbox with Hailo. That's all I got.

Speaker 2

There's something else that I forgot to say, and maybe you want to talk about it, But the first draft of the Complete Human Genome was published in Nature in two thousand and one.

Speaker 3

Yeah, we talked about the preliminaries of that previously, but yeah, the the Human Genome project had been going on for some time. And yeah, the complete draft is almost a misnomer. There'll be subsequent additions to it after that, but yeah, it's a multi billion dollar multi year project that now has paved the way to a whole lot of science.

Speaker 2

Also, before we go on all, musician George Harrison died. You may have heard of him. He was in that little band called the Beatles. November twenty ninth. And yeah, that was bad. Some anthrax attacks happened, some natural disasters and other things. But I want to talk about the top ten movies of two thousand and one. Hannibal number ten, Planet of the Apes, number nine, Jurassic Park three, number eight. Did you even see two or three? I only saw the first one.

Speaker 3

You alys saw the first one?

Speaker 2

Yeah, The Mummy returns, Pearl Harbor, Ocean's eleven, Shrek also great now. Number three is Monsters Inc.

Speaker 3

Great great movie.

Speaker 2

Number two, oh yeah, number two, Philly Crystal is just so great that it's so great. Number two is Lord of the Rings, the Fellowship of the Ring. And okay, number one Harry Potter and the Sorcerer's Stone.

Speaker 3

Yeah yeah, what a series? What a series?

Speaker 2

All right? So that's about all we can say about two thousand and one. I'm sure we left a lot of stuff out, but hey, it's only an hour show, so let's get on with better.

Speaker 4

No.

Speaker 2

Framework.

Speaker 3

Awesome.

Speaker 2

All right, all right, so I went, you know, as I always do, I go looking for trending repos. This one was beating all of the other trending repos by a long shot, just like in one day, something like

six hundred thousand downloads or something. It's a it's basically a video maker bot where you take a Reddit conversation and you have a dialogue box that shows a question, right, and then another dialogue after that posted over it that has the answer, and it's usually hilarious, right, And so people are making videos of these with a with a background and posting them on TikTok and YouTube and Instagram

and everywhere, and they're going viral. This is just like a thing that you're you know, you're just memish that you're making fun of people on Reddit or or you know.

Speaker 3

Reddit is where people make fun of people all the time. So this is now a visualization because comments are historically phenomenally funny.

Speaker 2

The chickens are coming home to roost, I guess. So basically, this guy put together a bot that makes a video just with you know, pure programming basically, and he takes it. He use his Python uses playwright, and he autumn. You just give it the Reddit topic that you want and bing bang boom makes an MP.

Speaker 3

Three playwrights doing the scraping role to pull the data needed. Yeah, I get it.

Speaker 2

Yeah, and so yeah, this is the thing. If you know it, you know, But if you don't, you don't care. Sorry, I just wasted your time.

Speaker 3

Hilarious.

Speaker 2

So that's what I got. Who's talking to today?

Speaker 3

You know, we're talking about nano framework today, And I've been a while since we've done any shows around the micro framework and you know, the precursor to it. But I went into the wayback machine there and found our IoT on Windows Talk conversation with Dan Rosenstein. This is

from twenty fourteen. It's episode ten nineteen, and this was part of the Windows Developer program being trying to make IoT easier in that space, and it focused on Intel's Galileo device which works with our duino but also you know, it works with x eighty six, and they at that moment they hadn't released an implementation of the micro framework for it, but subsequently they did. And in fact I grabbed our friend Pete Brown's calm atop of the show

where he said, and immediately it's eleven years ago. You can get the Intel Galileo for fifty nine dollars from Amazon net. Duenogo runs the dot net micro framework, which itself is an operating system for the device. Although OS is a strong term for what is really a hardware distraction layer and API set with an interpreter yeah operating system,

there is no additional OS required at this point. The GO protocol in bus is conceptually similar to USB versus Gadgeteer, which is more Arduino like in that it exposes native pins and interfaces to the microcontroller. Our duino is more of an API layer over ABR and not really any sort of operating system in general. It uses shields, which is this pin based way of adding additional hardware to our duenos. But they're increasingly a number of smaller form

factors and breadboard family implementations. And admittedly this is a ten year old post. Things have changed a fair bit here, but he still goes on to say this is Pete. Raspberry Pie runs Linux, as does boards like beagle Bone and others. Dot A Gadgetar modules through the standard tenpin connectors, but the pins are like our do we know form factors dedicated specific uses. It makes it easier to prototype, and when combined with a design service and class libraries

and visual studio, makes really good dev experience. And thanks for the shartout. Thank you, Pete. We haven't met on the show in forever. We should probably do something about that, and I am really looking forward to our conversation to days, just because there's so much that has changed in the IoT space. There's so much better hardware out there and obviously better tool it. So Pete, thank you so much

for your comment. And a copy of Music Coby is on its way to you, And if you'd like a copy of music co buy right a comment on the website at dot net rocks dot com or on the facebooks. We publish every show there and if you comment there and reading on the show, we'll send you a copy of Music go By and Music Coby.

Speaker 2

You know, I still haven't finished the twenty third track. I really got to do that, really in downtime. I can't believe I didn't do that all right, twenty two tracks, twenty five minutes each to help you get into a state of flow while developing and stay there and still going strong, also getting multiple multiple sales every week all right, let's bring on our guest today, Jose Simolish. He is the CEO of Eclose Solutions and founder and core team

lead of dot Net nano Framework. Based in Lyria, Portugal, he was awarded Microsoft MVP five times for his work on Internet of Things and developer technologies. His ship projects across embedded firmware, hardware design, and cloud connected products, with a toolbox that includes dot Net and Azure technologies alongside c C plus plus microcontrollers and electronics. Passionate about building open source communities and empowering developers in the various communities

he's actively engaged with. He's also a published author of Embedded Systems with dot Net nanoframework from Apress. Welcome to the show, Jose.

Speaker 4

Well, thanks for having me. It's a real pleasure to be here with you.

Speaker 3

Guys.

Speaker 2

I think it was you that reached out to us about the nano framework, or somebody did recently, and that's ended up being.

Speaker 3

It was at episode two thousand, which you know we published last week is all the time shifting thing, It was actually a couple of weeks ago, Like time is weird, but yeah, we had a chance to meet him and like holy Man, we have never talked about nano framework. We talked about micro framework years ago, right, not nano framework. So we should fix that right away. It's been a long time. I guess that's a good starting point. Like what's the difference between micro framework and nano framework.

Speaker 4

Well, interestingly, to the best of my knowledge, two thousand and one was when the work started to on developing micro framework, which was published in two thousand and two.

Speaker 3

Right, so it came out at the same time as the regular framework.

Speaker 4

Yes, about the same time as far as I know. Yeah, And what says about it's revised and augmented micro framework. It's capable for running on small devices it had it still uses a lot of the comproducts from the original micro framework. We left the good parts in and we revamped the basically the build system, which was quite outdated. We focused on having it possible to run on multiple and different hardware vendors and micro controllers, which is what

you can do now. Any Certitude its micro control can run a nano framework. And we had a bunch of stuff with everything that it's new on the embedded systems world, like io T, the network connections, various protocols of course, all the usual stuff that you would expect on a micro control is there, spi as Czer reports, all that put.

Speaker 2

By the Nano moniker that it's smaller than the micro framework is that, yes.

Speaker 4

Yeah, yeah, that's the naming is hard. And back then when we spin off the project, we went a lot. There was a lot of discussion on what we should call it, and ended up being Nano with a small caps N to stress that it's it's a nano version of the full dot net.

Speaker 3

And this is not a Microsoft in issues. This is all community driven.

Speaker 4

Yeah, yeah, that's something that sometimes people confuse. But despite this sitting on the dot net ecosystem uses visual Studio visuals to go the dot net new gats and all that. It's not a Microsoft project and does not run on Microsoft budget. It's community driven.

Speaker 3

That's awesome. The big difference, you know, referencing the comment I grabbed from ten years ago, the big difference ten years from ago to now is the micro controllers are wildly better. Esp. Thirty two and five, like, this is such good gear out there. They're small, they're super cheap, and they're really very powerful.

Speaker 4

Yeah. Yeah, that's the thing when compared with micro framework. Memory, despite being expensive, is much more cheap.

Speaker 3

Computing me not today, but like six months ago.

Speaker 5

Yeah exactly, but everything is cheaper than it was when when all this started.

Speaker 4

Yeah, and it makes it makes a ton of difference, even with the CPU power that you see that you have on the on the micro controller, and you can have much smaller devices and all that has changed.

Speaker 3

Yeah, just and I've been doing I haven't done much with nano framework, not any with Nano framework. When I use ESP thirty twos, and I'm a home assistant guy, so I use the SP thirty twos all the time. It's through ESP Home right where you almost barely touch that hardware per se. You're just kind of giving instructions for what you wanted to do, and it generates into the device because it just has so much cloud exactly.

Speaker 4

That's kind of I would say, similar to to the to the Nano framework promise our value propositions that nano frameworker abstracts all the complication from imbedded systems development and the hardware. The hard part like booting my controller, configuring all those registers to have the clock properly set, the memory maps, the linker files. All that is hard and

it's abstracted. As you use Nano framework, you have framewares for a bunch of different micro controllers and you can basically cause ones and deploy on the different platforms that you are working with.

Speaker 2

Yeah, that's a nice.

Speaker 3

Feature, you seem to imply. Then there is a kind of a CLR here that's abstracting the hardware for us.

Speaker 4

Yeah, that's there is the CLR and also how and the power layer, because abstruct the hardware and you abstract the platform. Despite those being micro controllers. With the thirty two pits, there are cordex ones. They are the extensor from Expressive, the original ones. All those are different different hardwarees, different vendors. Each one has his own SDK, which makes even more complicated. Also, the real time operating system, the r TOSS, it's something that we added in nano framework

which wasn't there on the micro framework. Basically we have an abstraction layer that makes it possible to use any r TOS that you find out there. Given the platform abstraction layer, it's there, which makes it even more powerful and suitable for use on different projects.

Speaker 3

I'm presuming you're not just in time compiling here. That you actually compile to a given stack when you're going to deploy it.

Speaker 4

Actually, now this you have your c sharp publication with visual Studio. When you hit F five, Rosslyn does it sing with building, the upp cation, compiling and all that. And then there is an extra step which runs down the IL instructions and the metadata through what we call the metadata processor. What it does it strips down everything that it's not absolutely needed to run sharkcote. It also changes the addresses because it doesn't use sixty four it

uses certitude bytes. And also it's yes, it's shrinking it and also some changes with the resources and the enoms. And that's that's basically on a very simplistic overview on what's going on. And then you have the execution engine, just like you have on the full dot net, which is interpreting the ALE instructions one after the app.

Speaker 2

Can you optionally do ahead of time compiling? No? And if you could, would it help? I mean, would it make it faster?

Speaker 4

There is not enough room on these small mark controls too. I see, so we are not doing any AOT here.

Speaker 2

Right, Okay, yeah, I got some questions here. Maybe we should wait till after the break though, should we do it early break? Yeah, all right, we'll be right back after these very important messages, and we're back. I'm Carl Franklin, that's Richard Campbell. We're talking to Jose Simoish about nano framework. And my big question was, obviously this has been in production for a long time and devices have you know, you know, have have gotten more powerful and smaller and

faster and all of that stuff. Can you tell me what your what project you've seen out in the wild or maybe you did it yourself. IoT project has been the most amazing to.

Speaker 4

You, the most amazing I deal with with serve products from from different customers. One that it's not an.

Speaker 2

I T per se.

Speaker 4

One of the most interesting uses because of the all

the contexts it has. It's from Skyworks, a company that produces, along with other compoundents, timing timing chips and they their development team is a dot net shop and they use dot net a long time to use their the applicate the desktop applications for the the engineers network with those chips, and they decided to use nano frameworks so they could go all the way and so the area is in NNAL framework to run the framework on the devaluation boards there,

and so they can benefit from all the couture used that you can do on dot net, so use the same quaesses.

Speaker 2

So they wrote firmware with nano framework that's pretty exactly.

Speaker 4

Yeah, and they use it on devaluation boards, on test benches, on the test chambers and all that is using dot Net from top to bottom, using classes, unit tests, all that. So it's pretty amazing.

Speaker 3

I really appreciate that you're not talking about a hobby project, Like a lot of these things are hobbyist things. And then it's like, no, this is production gear for big factories that need timing equipment. And I was just looking at Skyworks that they do anti jitter stuff and like that's complicated machine management stuff.

Speaker 2

Yeah.

Speaker 3

Absolutely, but nano framework is part of that.

Speaker 4

Yeah, yeah absolutely. I mean as first class you can see oh right, running sea shop on a micro control. That's neat. Yeah it is. And you can you can do your garage opener, your sprinkling system, home automation with that, and that's fine. You can also use it on universities and schools to learn how to code. Sea Sharp is a great language to learn how to code, but for commercial products. That's that's the real change here. You can

be very very productive coding without matter. With all the powerful debugging experience that visual Studio gives you unit tests F five, you can change variables. This is far from the usual embedded systems debugging cycle that you find with the C and C plus plus.

Speaker 2

Do you have customers using it to do real time digital signal processing? I mean, I'm thinking in the audio world, right, you have like Echo f X boxes and things like that that you plug an input and you get an output and in real time it kind of adjusts the signal. But you know, DSP isn't just for audio. Of course.

Speaker 4

I don't have any commercial project too that I know of using it, but this is an open source project, so anyone can use it. But there have been questions on our discord surface about I square s, which relates with sound, so I wouldn't be surprised if someone out there would be using it for that.

Speaker 2

Yeah, very cool. I wish I knew more about, you know, that kind of low level programming to be able to do that stuff. I'm really my spaces and at the application layer and the back end.

Speaker 4

Yeah, but you can do that with an our framework. If you know how to kill the c sharp you can do that.

Speaker 3

Yeah, it guess always. The question here when I deal with IoT projects in general, is it's the sensor set. You know, the compute's fine, Now what are we trying to do? Like I'm putting this small gizmo in an unusual place and I want to measure things, right, light levels or temperature, humidity rate of a motor spin, you know that kind of thing. How do you connect sensors to this is all hardware layer, and how does it show up in nano framework.

Speaker 4

It uses the buses on the on the macro controller, the real port being the most basic one, and then can have SPI R, s QC all this kind of it interfaces allows you to interface with the with the real world. Because I'm there are all sorts of usages out there for IoT, and you can't have big machines using it. But you also need the smallest one to work. I mean, you don't need you don't need the device with the eight cores and sixteen gigas off RAM to

send a hundred bytes back to the cloud. Macri Control is more than capable of doing that, and you want to do it with using the least possible amount of energy if it's wireless device. And sometimes you can even do processing on the edge with it. I mean you

can have it connected with in an electrical motor. You can sense the vibration temperature on the shaft and you can see that it's not doing what you supposed and you can go into predative maintenance and give you ahead of time information that something is not okay and you should fix it before it burns. So there is use case scenarios for all these different machines and micro controls and dioite projects.

Speaker 3

Yeah, I mean you mentioned a few times, but power use and so forth. Is this all about being on battery and trying to be efficient that way.

Speaker 4

That's one of the use cases you can use it with most of the time sleeping. There is a telemetry project. For example, we have this deployed in solar farms and the other customers using for a telemetry from oil tanks out into the desert on which the device is sleeping most of the time. It takes every other hour it measures all the various senses that it's out there, composes the package with a telemetry turns on a satellite radio sends its thing to the id of and then go back to sleep.

Speaker 3

Back, sleep again. Yeah, that's cool and funny. Like the compute consumes no energy at all, that's easy part transmitting data. That's the power hog like only whan. Yeah, what a difference that makes. Like you I learned pretty quickly playing with ESP thirty two is like if you use that Wi Fi antenna that eats your battery, you talk Bluetooth bl E. You can do that all day long. It means nothing.

Speaker 4

Wi Fi is expensive energy wise.

Speaker 3

Oh yeah, just not and and so much handshaking. It's not. It just wasn't built for intermitting connectivity. It's just not efficient for that sort of thing. I don't want to let go the hardware piece of that, because I hope you clarified that different hardware uses different buses, so you've got to kind of map all that out to figure out what you're going to get your connection to. But the nano framework abstracts that enough you kind of don't care. It's just the service at that point.

Speaker 4

Yes, When, for example, if you've ever an SPI controller to connect to an SPI sensor, let's say, let's say a biometric sensor, you just when you're institiating the classes, just say, hey, this is using spipins three, four, and sixteen, and that's it. And then you can go and call the right methods, the read methods with the buffers to centerate or retate it from it.

Speaker 3

Yeah. And then in your motor example, you'd be using an SPI to do something like measure the vibration, so some kind of accelerometer.

Speaker 4

Yeah, exactly, Yeah, but you.

Speaker 3

Still have to learn to parse that data to figure out like what does this mean? What you know, what are we actually measuring? Like, none of that's just that simple. It takes a little time to go, Okay, we're now getting g meeting readings or accelerometer readings. Now what do they mean? What's good? What's bad? You know, what's the

rate of sample? I've played a lot of games with It's one thing to check temperature every ten minutes, but if you're trying to figure out if a bearing starting to fail, those vibrations are in killer hurts, you need to sample many times per second to really see the acceleration going.

Speaker 4

Yeah, you still need to despite this abstracting the complication from you, you still need to understand what you are doing. Yeah, so that's that's exactly. You need to understand what you are doing and it makes you easy to connect to that sensor. But you need to understand the data. If you are a regular dot net developer, you know how to instantiate an object is the classes and the methods and all that, but very quickly and you don't have to go through the through the sense of data ship.

You can understand easily understand the concept and all that wires to your knowledge of the shop and how that works, and you will be very productive and coding your application and in a very short period of time.

Speaker 2

Right, you mentioned that this is a great way for people to learn how to write code, you know, especially kids, you know, give them a device, give them something, right, Are there any courses or trainings available that specifically use the nano framework and maybe a particular device like a kit that all goes together to teach programming, Not.

Speaker 4

That I'm aware of, but that would be I would say easy to come up with.

Speaker 2

Sure, what's your favorite device for just mucking around?

Speaker 4

Obvioists, how it would have to be an SP SAT two. It's it's crazy cheap.

Speaker 2

Yeah, And ESP thirty two said.

Speaker 4

Yeah, ESP thirty two, and you can connect that you to pretty much any censor up there, LEDs all the all sorts of stuff.

Speaker 3

And a room ESP thirty two. We can get them off of Amazon, which I'll have on it, USB, Wi Fi, Bluetooth, a couple of cores, ram so forth ten bucks.

Speaker 2

Wow.

Speaker 3

Yeah, wow. Yeah, it's like you're not really constrained. Like there's a lot of compute in there, there's a lot of power in there. You plug it the you plug the USB port into your PC and you just start talking to it. And there's a bunch of ways to go about it. Nano frameworks an amazing one.

Speaker 2

Yeah.

Speaker 4

Yeah, it's the first time that the man went to the moon. There was not such a.

Speaker 3

Complete Yeah, we're recording this while Artemis is just passed the moon and is on its way back, still a few days away. And yeah, they got a whole bit bit more computed power than say, Apollo eight had. But these things the same thing, just hugely powerful. It's just this interesting collision now where you've got the framework down of this nice tidy size and the hardware has gotten so powerful. It's just like you don't have to compromise, all.

Speaker 2

Right, So now you got me looking on Amazon and I found an ultimate starter kit with the ESP thirty two, which has a display, it has a remote, it has a camera. You know, it's got yeah, speakers, it's got all the stuff.

Speaker 4

Yeah, fun you can Yeah. How crazy is that?

Speaker 3

Yeah, you're spending more on sense Yeah absolutely, Yeah, the compute the comp pieces. Now you know that's a very inexpensive smart rock.

Speaker 2

And what is the process for getting the nano framework on say one of these boards? Is it pretty easy?

Speaker 4

You need a plant SIMPLYSB connector UH. And there there is a a c l I too on which you you you've typed the options kind of update massive raise the target ESP S T two and it connects to the can you say which which comport it is connected to? Uh? And then it goes and talks with with the macro controller, find out what's the model, goes and grabs the appropriate firmware, flashes it, and less than one minute you have the device popping on visual studio and you can start your low world application.

Speaker 2

So now this says it comes with Python, c Scratch and video courses. But just because it comes with Python doesn't mean you can't use c sharp, right, correct? You just have to flash it with a nano firmwork framework. It's great, fantastic, It's in my car.

Speaker 3

So what's it when you're in the dead cycle here are you testing as an emulator? Are you always pushing to the ESP thirty two and actually running the code on the SP thirty two.

Speaker 4

Also a virtual device which is used to to run unit tests when you don't have a real device, and you can do a lot of stuff except when you start touching the hardware because obviously you cannot connect there being a virtual device, right.

Speaker 3

Yeah, it only becomes complicated when now you want to talk to the sensors and things and you kind of need the hardware for that. But and my experience, just take that load of to load long to loading P thirty two in the first place. Like you can just keep pushing to the hardware and watching it run on the native gear, Yeah.

Speaker 4

You can. You can keep pushing. If you are on Visual Studio, when you hit that five, it will go and uploads the assemblies that you have on your application, and it's real quick.

Speaker 3

Nice.

Speaker 4

If you have a simple yellow World, it takes five seconds to push that to the to the market control and hit the first breakpoint.

Speaker 2

So are we talking about visual studios?

Speaker 3

These break points actually running on the ESP thirty two.

Speaker 4

It's running on the SP thirty two with a yeah, it's.

Speaker 2

So are we talking about visual studio?

Speaker 6

Here?

Speaker 2

Did I miss something?

Speaker 4

A visual studio? And there is also an excession for visual studio code?

Speaker 2

Great?

Speaker 3

Wow, so you can you're looking at your code and visual studio. You set a break point you're actually pushing onto the SP thirty two hardware. Yeah, you know, it hits that sensor value that you were flagging for. The classic one is when the temperature goes above X. So I set a breakpoint for that, and I put my hand on the sensor running on the actual hardware, and the breakpoint pops up on my PC exactly and you stare in awe.

Speaker 4

Yeah, yeah, that's exactly. You can set all everything except the fancy stuff like hot reloads and all that, because yeah, but all the stuff that you have and you are used to on your visual studiybox session you have there. You can set breakpoints, conditional breakpoints. You can change the value the value of a variable, you can inspect objects, you can go with the execution back and forth, and

the code lines. All the heads is they are working on a plane, simple USB connection and actually running on the Mac control.

Speaker 3

It's awesome, it is. Yeah, it's fantastic. But it just means you're not struggling. You know. I've had this experience where IVE done everything in the emulator and then you push the hardware and you are wrong. Something's going on right, So it's I am very prone to wanting to run in the heart hardware. It's just that often it slows the cycle down so so much. You make a change, you got to wait for the push. So as long as it's quick, I'd rather always work on the hardware.

Speaker 4

Yeah, yeah, this, this does happen because this this is dot net, uh and dot net is great on on that and that's that's part of the value proposition of dot net. As I said at the beginning of the show, you can have your team being very productive using this because the the iteration cycles are much slower, and if you are as in c r C plus plus to that, you need a very skilled engineer to work with that.

And if you need to change something on the on the code, you would have to wait for that team to to go and do their thing and build the next firmware. And flash it with this a regular dot NETLP can do it by itself. You go and change what you have to change on the code. You hit that five and you have your next iteration going, what was.

Speaker 2

The last big update you did to the nano framework and what was the you know, the big the big change.

Speaker 4

It's currently in public preview, and that was adding support for generics.

Speaker 3

Wow, that's a resource intensive capability.

Speaker 2

It is it is so you didn't have you couldn't use of t before.

Speaker 4

No, no, no, because when all this started, there weren't generics on the full dot net. So this is all it is.

Speaker 2

So are you using a custom version of c sharp or something?

Speaker 4

Until now, we simply didn't have support fortun ICs, so we would have to use the code we have to go without gen x uh with the support for gun erics, if we can use the all the fun stuff that allows you to do and.

Speaker 3

C sharp I gets.

Speaker 2

My question is can we use other c sharp features like link or.

Speaker 4

That library is under development right now so we'll be able to fuse link with nane of their work.

Speaker 2

Yes, I see, so it's it is nan It's limited in terms of what it can do, even though the language is.

Speaker 4

Modern Yes, yeah, yeah, and and this is something that it took a long time to develop. If all, we won't believe it, but this is started back in COVID. Wow. So it's it's really crazy the amount of engineering that

goes back there and making this this happen. And interestingly it it doesn't add that much to the to the execution engine or to the requirements on the run and all that because the way it's engineered at the sea sharp language and the metadata and all that makes it possible to run on on the market controller, which is pretty neat.

Speaker 3

I mean, is there really even a conversation here about the version of dot net you're running?

Speaker 4

No, and even with the sea sharp language is kind of that. When that question pops up, the usual answer is it depends. And the thing you can you can set your your sea sharp project to the latest version of the language and most of the features will work if it's not support and we don't even keep a list of the unsupported things because it would be hard

to maintain. But if something it's not working and breaks, you immediately will not is that it's it's because of that and you can get away from from it.

Speaker 3

Okay, So what is the error messages you look like, you know, how does it behave when you hit you're using a feature that is not implemented.

Speaker 4

Most of the time, it won't even compile. Our will so you will immediately that you are off track.

Speaker 3

Okay, that's pretty very straightforward. And the same viewpoint on the c sharp language features, like, it's not a specific version of c sharp.

Speaker 4

It's not. We tend to use the lightest one that's out there and it's uh, it just works. And that's not on us, it's on Rosslyn and visual suited and all that. So it's amazing all this being possible.

Speaker 3

Yeah, noo. Question, uh what about l MS, Like if you are you using any of this tooling to do work with nano framework.

Speaker 4

Do you? Yes, we have we have an m CP server on our embedded server library which allows you to expose prompts and capabilities from a market controller and using the m c P you can have any l ll M interacting with the with the device, which kind of brings this to the to the next level of I T. You now can have intelligent Internet of Things on which you can have the machine talking with the l l M answering to two questions from the machine using those prompts,

and you can, hey, give me the temperature for the sense this and that so. And because it provides the prompts, the l l M doesn't have to guess and you can ask exactly what he wants to know about what whatever the device is doing and providing, which is very very nice.

Speaker 3

Does the m c P enumerate the capabilities of the embedded hardware for the l M just to keep it in sort of in parameter.

Speaker 4

Yeah, this is. You can do that using a very simple C sharp class and you you decorate the methods with an attribute on which you have the description, Hey, ask me this to get the temperature of the sense of blah blah blah, or send this to enable this gp I O to do this and and all all those, all those prompts, and the l M is able to give you to to interact with the device knowing beforehand what it's capable of doing and what it's not.

Speaker 3

Awesome, So what's next for the nano framework?

Speaker 4

What's next? We am to to be able to get in sync with the with the full dot net on the project system, because we are still using the the old CSP project format uh. And we also want to to improve on the on the debugging experience because this is still using the old debug version of visual Studio, and want to keep up with with the new stuff.

So we are looking forward to to move to the to the next version with generics with be pretty much compair with with the full dot net and that's the that's our plan.

Speaker 2

So it's an open source project. Are you looking for contributors?

Speaker 3

Oh?

Speaker 4

Yes, absolutely, We love prs and we love contributors and if if ands sponsors commercial sponsors.

Speaker 3

Yeah, I see you have a couple of sponsors, but I would think with all of these different companies using this you have more sponsors.

Speaker 4

Yeah, that would be the the ideal world. But it's not just like with most I would say open source projects. That's that's an issue. Companies like to use open sources. They rely on open source, but they don't give back to the to the project. And we all know that that story after the companies relying on a guy doing the development solo on a very eage component and when that breaks, they go in off the door of that guy that has to fix everything and they don't contribute back to the project.

Speaker 3

But they do complain bitterly that they will stop using your library if you don't fix it immediately.

Speaker 7

Yeah, that's the thing with it's we all know this story. It's free lacking free speech, not the free beer, because they have those people that come and knock at your door and go to the fridge for the beer and they don't like the brand. They complain about the color of the bottle and this is not cold or hot enough, and they don't give back anything.

Speaker 2

We've had to say that to people who complain about our podcasting, will give your money back.

Speaker 8

Yeah, but it's something that companies I think some of them don't even realize the power and how how interesting this is because on our framework, for example, we try to every new release.

Speaker 4

That we put us there, we obviously do our best to make to make sure that it's bog free and all that, but every now and then I slips. And what you see on the discord surf is that when anytime that happens, it doesn't take you more than one on two hours, someone out there will think you, hey, this is not working for me. You broke the w tooth or whatever, and we can immediately fix it. And this is powerful for commercial use. You have a small army of testers out there working for you for free and.

Speaker 2

Lots of fun. Well, I just ordered mine, so I'm gonna tell us about the book.

Speaker 4

Yeah, the book. It's it's I'm very happy about about that.

Speaker 3

It just come out in January.

Speaker 4

Yes, it was. It was published on the officially published on the last day of the of the year.

Speaker 3

Nice.

Speaker 4

So it's it was kind of a marathon. I was reached out by by a prayer to you to write because there was nothing about nano firmwork and the closest thing was with micro framework a long time ago. And this was kind of this lack of literature about about this. Uh. And so they reached out to me and having wrote the book, which I said, yes, of course, let's spread the word about nano firmwork.

Speaker 3

You've got the definitive work. Then this is the book.

Speaker 4

Yeah, that's this is the work.

Speaker 3

It's awesome. Well, thanks so much, Ise. This is really exciting and glad to see it's going on. So well, great stuff.

Speaker 2

Thank you again, Thank you for having me. All Right, all right, we'll talk to you next time. That networks.

Speaker 9

Dot net rocks is brought to you by Franklin's net and produced by Pop Studios, a full service audio, video and post production facility located physically in New London, Connecticut, and of course in the cloud online at pwop dot com.

Speaker 6

Visit our website at d O T N E t R O c k S dot com for RSS feeds, downloads, mobile apps, comments, and access to the full archives going back to show number one, recorded in September two thousand and two.

Speaker 9

And make sure you check out our sponsors. They keep us in business. Now go write some code, See you next time.

Speaker 7

You got javans dot

Transcript source: Provided by creator in RSS feed: download file
For the best experience, listen in Metacast app for iOS or Android