Σχόλια 0

Το κείμενο του εγγράφου

HTTP://www.dotnetrocks.com

Text Transcript of Show #625

(Transcription services provided byPWOP Productions)

Gus Issa Has a Micro .NET Framework!

January 4, 2011

Our Sponsor

HTTP://www.telerik.com/

Carl Franklin and Richard Campbellinterview experts to bring you insightsinto .NET technology and the state ofsoftware development. More than justa dry interview show, we have fun!Original Music! Prizes! Check out whatyou've been missing!

Thank you very much.Welcome back to .NET Rocks! It's Carl and Richard.Hey, man.

Richard Campbell:

How are you, my friend?

Carl Franklin:

I'm good.I'm well.

Richard Campbell:

Going tohave some fun today Ithink.

Carl Franklin:

Yeah, definitely. Anytime weget to geek out with stuff that's fun to program, man,it's just a good thing. So it's getting towardsthe endof the year and we were talking before we startedrecording about an end of the year .NET Rocks!

Richard Campbell:

Yes.

Carl Franklin:

And how much we'd like tobring back some old folks like Rory Blight perhaps.

Richard Campbell:

Perhaps.

Carl Franklin:

Yeah.

Richard Campbell:

Wel l, I've been chatti ng wi thRory on and off i n Twi tter and he seems to be maki nghappy noi ses about comi ng on the show, but I can'tget him locked down for a time and we are runningout of time, the year is almost over.

Carl Franklin:

We should get Rory and MarkMiller on too, and maybe Mark Dunn.

Richard Campbell:

At the same time?

Carl Franklin:

At the same time, yeah.

Richard Campbell:

That's like an excessofc o-hostery.

Carl Franklin:

Yeah, actually we couldhave alittle eggnog and have a little Christmas partyrecorded with all the party...

And of course this is the littlesegment I do where I shine a little light on an arcanecorner of the .NET Framework and hope that overtimesome of the stuff might be interesting to you and yougo check it out on your own.

Richard Campbell:

Awesome. So what have yougot?

Carl Franklin:

So today I'm going to talk aboutsomething that's in WPF. Now I took a good lookaround to see if there's any Silverlight support for itbut I don't think there is and if I'm wrong about thatplease let me know. But it says in terms of platformsthat it's supported in .NET 4.0, 3.5, and 3.0 and in the.NET Framework Client Profile 4.0 and 3.5 SP1, I'mtalking about the Weak Event Manager Class.

Richard Campbell:

Oh, yeah.

Carl Franklin:

So i t's a base cl ass f or t heeventmanager that's used in the Weak Event Patternand it adds and removes listeners for events that alsouse the pattern. So whatis the Weak Event Patternyou say.

common situation where the lifetime relationshipbetween sources and listeners should use the WeakEvent Pattern is the handling of updated eventscoming from sources for data bindings.

Richard Campbell:

Oh, okay.

Carl Franklin:

The Weak Event Pattern canalso be used for call backs in regular events. So inthose situations where you have objects that arecoming in and out of existence and you have listenerscoming in and out of existence, it might be a goodidea to look into the Weak Event Manager.

Transcription by PWOP Productions, http://www.pwop.com

Page3of12

Gus Issa Has a Micro .NET Framework!

January 4, 2011

Richard Campbell:

This is one of those situationswhere I've heard it described as this is a pattern forcontrolled developers where you don't necessarilyknow when you're going to be brought in and whenyou're going to be dropped and it can lead to memoryleaks.

CarlFranklin:

Sure.

Richard Campbell:

So this is just a way to be sureto free up memory.

Carl Franklin:

Sure. So there is is. It's inSystem.Windows.WeakEventManager Class.Richard, who's talking to us?

Richard Campbell:

Let me see here. Oh, you'll likethis one. Well, of course very topical. This is fromMark Stanford."Hi, guys, I've been listening intentlyto the arguments for and against the long termsurvival of Silverlight when compared to HTML 5.0and thinking what about the trade-off betweencostand reach. If you have to decide between a projectwith 80% of the reach or a project with 50% of thecost, which would you choose? I think that that will bea decision facing us in the near future. It also bringsup another question about the traditional projectmanagement triangle compose of time, cost, andquality.Does thefourth dimension need to be theadded representation of reach."

Carl Franklin:

Yeah.

Richard Campbell:

"At any rate, it looks likeMicrosoft isn't missing a step. They'veannouncedthat your next COM might be running Silverlight aswell and it provided a link, which unfortunately is nolonger around, about Silverlight showing up in theNissan Leaf..."

Carl Franklin:

Yeah.

Richard Campbell:

"Which is the little electric carthat Nissan is making which really is kind of cool."

Carl Franklin:

It's interesting.

Richard Campbell:

"I love the show. Thanks."

From Mark Stanford who lives in Utah. Mark, thanksfor your great email. Of course this fall we had all theadventures of Silverlight being dead which as near aswe could tell was premature by a long way. We'vealso done a show now on the next version ofSilverlight so that's pretty much a mootissue. I likethis email, also it ties into something I've recently readon Shawn Wildermuth's blog where he describe thesituation in web development right now as beingBalkanized.

Carl Franklin:

Oh, that's something.

Richard Campbell:

AndBalkanization of course forthose who had no good dictinary to come and look itup, it's breaking us up into small groups that fight witheach other rather than actually move things forward. Ican't disagree with that. You know, the reality isHTML 5.0 is going to come out in multipleincarnations in different browsers and people aren'tgoing to migrate to it quickly and so there's going tobe a huge fracturing of the web development market.In some ways Silverlight really simplifies that.

Carl Franklin:

Yup.

Richard Campbell:

But I think the real strength ofSilverlight is this idea that one language, one basicset of development techniques that work, desktop,web, and phone.

Carl Franklin:

Yup.

Richard Campbell:

But again with the restrictedreach can only reach so many different devices. Soon the other hand, I think a big battle here whenpeople actually start getting serious about makingHTML 5 apps, they're going to find out that it's stilllowest common denominator.

Carl Franklin:

Right.

Richard Campbell:

It's going to be the inferiorclient.

Carl Franklin:

Right. And let's face it, there'sgoing to be ASP.NET apps.

Richard Campbell:

Yeah, yeah. Take the backendwithout a doubt.

Carl Franklin:

Yeah. So there you go.

Richard Campbell:

Either way, Mark, weappreciate your email. A mug is on its way to you.Probably it will get you there before Christmas but it'sreally a New Year's present. Thanks for sending outyour message. And if you've got any questions,concerns, thoughts and ideas you'd like to talk to usabout, send us an email, dotnetrocks@franklins.net.

Carl Franklin:

Before we let this one go, let itbe a lesson to you all because it was to us too thatwhen somebody runs around saying the sky is falling,the sky is falling, don't believe the hype.

Yeah. Well, I'm really excitedtoday, Richard, because our guest is GusIssa. Gusis the founder and lead developer of GHI Electronics.Before getting into .NET Micro Framework, heconceived many devices to make developers'liveseasier. After learning of .NET MF or NETMF, hequickly became enthralled. For the last three yearshe's been nurturing NETMF and uses it by developinghardware and software. He is a member of theNETMF core tech team and author of Beginners'

Guide to NETMF, an open source ebook. For Gus,embedded system development is a passion. Hebelieves in the countless solutions that electronicscan provide. Combining experience, fun and belief, hehas always worked on sharing his knowledge.Welcome, Gus.

Gus Issa:

Glad to be here with you guys.

Carl Franklin:

Well, we're glad to have you.You know, the themesong to .NET Rocks! is Toy Boyfor a reason. I mean we both, Richard and I, arehugely into gadgets and programming them andRichard probably a little more than me. Heleansalittle moretowardthe hardware side. I just like stuffthat I can noodle with.

Gus Issa:

And with .NET MicroFramework, you have plenty of toys.

Carl Franklin:

Yeah. So let's start at thequestion what is the .NET Micro Framework?

Gus Issa:

.NET Micro Framework is thesmallest version we have right now of .NET. It's smallto the point it can run on a single, little processor, anARM processor or a similar 32-bit processor. Itdoesn't even require an operating system. Now thatdoesn't mean that it wouldn't run on a operatingsystem, but in normal cases if you want to run .NETMicro Framework you can just run it on the barebones.

No. The revision, it happenthat now we are at version 4.1 but the revision of.NET Micro Framework or NETMF for short, therevision has nothing to do with the full framework.

Richard Campbell:

Oh, okay. So they're actuallyon their own cycle but happen to be a 4.0.

Gus Issa:

Yes, it just happens to be atthe same version but it's not related.

Carl Franklin:

Does this have anyrelationship, and I know we've talked about it in thepast but it's been a while, does NETMF have anyrelationship to Windows CE?

Gus Issa:

No. Windows CE runsCompact Framework. Compact Framework requiresan operatingsystem and it requiresWindows CE torun. Now micro framework is even smaller and itdoesn't require any operating system. Now it can runon a few kilobytes of memory. Now on CompactFramework it needs a lot less resources than the fullframework but you still need a few megabytes ofRAM.

Carl Franklin:

So this is all about embeddedprogramming. What are we actually doing there inthe .NET Micro Framework? Is it sort of virtualizingthe processor? Is it it's own little operating system?What exactlydoes it do and how specific is it to aprocessor?

Gus Issa:

Okay. Micro framework sits ina place that is really unique and my own belief is thisis the best thing that has ever happened to embeddedtechnology. Where Micro Framework sits, it's right in

between low level processor programming and usinga smaller operating system like Windows CE. Nowwhen you are sitting in this place, you are running ona smaller processor, your cost on hardware is verylow but at the same time you're using .NET, thatmeans you'r e usi ng Vi sual St udi o, you havedebuggi ng, you have t hr eadi ng, you have al l t he ni cel i br ar i es t hat hel ps you devel op your appl i cat i on but att he same t i me you don't have t o know ever y si ngl edet ai l about t he under l yi ng pr ocessor.

Carl Frankl i n:

So t h e r e's a h a r d wa r ea b s t r a c t i o n l a y e r?

Gus I s s a:

Yes.

Carl Franklin:

Okay.

Gus Issa:

Under the CLR or what's calledTinyCLR, we have hardware abstraction layer andMicro Framework which is peopled by Microsoft andit's open source by the way so anybody out there cango grab the forces and put it on their own hardware.What they have to do is write their own hardwareabstraction layer to their processor or their systemand then Micro Framework will run on that processor.

Carl Franklin:

And it will also run on a PC,right?

Gus Issa:

Yeah. Actually it already shipswith an emulator on the PC so you get to try it beforeyou do anything with real hard work. The emulator

Transcription by PWOP Productions, http://www.pwop.com

Page5of12

Gus Issa Has a Micro .NET Framework!

January 4, 2011

sets the environment so the application will run on thePC in .NET Micro Framework.

Carl Franklin:

There's a whole slew ofhardware out there that it runs on, isn't there?

Gus Issa:

Yes. There are plenty ofhardware out there from GHI, from other vendors andthere are plenty of ports in the porting kit as well.

Richard Campbell:

I'mlooking at the USBizi144,that looks to be the tiniest thing I've ever seen on.NET.

Gus Issa:

Yeah. It's a single chip running.NET Micro Framework. Well, et me go back a fewyears here and tell you what exactly happened. Westarted with the Micro Framework. Well, at first GHIwas looking into a solution that's like five years ago.We were looking into creating a solution where youare capable of doing a lot without knowing a lot andthis is the big challenge given to better develop. Ifyou're a .NETdeveloper, everything comes to yousomewhat easy because you have libraries for filesystem let's say. If you're using a small processorand you want to create a file, you really have to knoweverything about file system. You have to knowclusters and allocation units and everything goes onwith file system. Now we don't have to know all thosein .NET. Now we have this idea that what if we createsomething where we put all these libraries on aprocessor or a board and as a developer you don'thave to know so much about the file system as anexample or graphics, but you can use all theselibraries. So we started back then actually with Javaand we created a device that has Java virtualmachine and has plenty of libraries on there and thenyou can writeyour code in Java and you have accessto all the nice loggers that are built in there. But theproblem with Java was the lack of nice IDE and lackof debugging and we were looking in different options.We didn'tciteany good enough option out there. We

wanted to make something that's really amazing andthis was when we learn about .NET Micro Frameworkand seem to be the answer for our needs and for a lotof developers'needs out there. It has a perfect IDE,it's Visual Studio, just the same tool we usetoprogram PC, but your code can run on a smal lprocessor and i t doesn't requi re an operati ng system,doesn't require a whole lot of memory and theprocessors are just getting more and more powerfuland they have more and more RAM and everythingseem to fit together very nicely. So we started gettinginto .NET Micro Framework and we created a littlemodule, we called it embedded master because wesaw i t's bei ng r eal l y t hei r mast er of embeddeddevi ces. You can j ust do i t r eal l y easi l y wi t h .NETMicro Framework. We created that device and fromthere we had this idea that what if we can run this ona single chipset. It sounds crazy running a wholeframework on a single chipset, but let's see. In theorywe know we could run it, but we're not sure would itbe powerful enough to create a product and after Iuse an application.

Carl Franklin:

This portion of .NET Rocks! isbrought to you by our good friends at Telerik whowant me to tell you about JustMock, Telerik's mockingtool, and unlike most mocking tools just mock canwork with non-virtual methods, sealed classes, andstatic methods and classes giving you completecontrol over your code. Of course, you get that greatTelerik quality and support. You can read more anddownload the tool attelerik.com/justmock,and hey,don't forget to thank them for supporting .NET Rocks!on their Facebook fan page,facebook.com/telerik.

Now you're t al ki ng about GHI, and GHIcreatessoftware and hardware?

Gus Issa:

GHI, yes, we develop thehardware and we develop the software that goes onthe hardware. Correct.

Carl Franklin:

And the software uses the.NET Micro Framework.

Gus Issa:

Yes. So we took .NET MicroFramework that's evolved in Microsoft and we portedthat to the hardwares that we create and on top ofthat we extended the framework with more libraries.

Carl Franklin:

Oh, okay. So there arefeatures of your hardware that are not in NETMF, thatNETMF doesn't support out of the box but you addedsupport to them.

Gus Issa:

Yes. This is one of the nicefeatures of .NET Micro Framework or NETMF. Itsupports users at a native call within the CLR so youcan have wrappers in C# and they are accessednatively in the native layer where of course it's writtenusually in C or C++.

Carl Franklin:

So this one that Richard wastalking about, USBEizi, this is a piece of hardwarethat has a USB port on it. Is there a USB support inNETMF?

Gus Issa:

Oh, yeah. Correct. So this iswhere we had this idea of running micro frameworkon a single chipset and we created USBizi. USBizibasically is a single chip running a full .NET MicroFramework and it has plenty of extra features that arenot standard in .NET Micro Framework.

Carl Franklin:

So what are some of thosefeatures?

Transcription by PWOP Productions, http://www.pwop.com

Page6of12

Gus Issa Has a Micro .NET Framework!

January 4, 2011

Gus Issa:

USB clip host is one of them.That's an important one where you can use a USBthumb drive. A file system is supported in .NET MicroFramework as well as vCard. So what we did is addthat on theUSB.

Carl Franklin:

Okay. So just to refresh mymemory. A USB host is something like a hub that youcan plug a USB device into and work with it.

Gus Issa:

USB host is actually like a PCand then you can plug hubs. A hub is a way ofexpanding the portinto multiple ports. So the hub isthe main port.

Carl Franklin:

Right.

Gus Issa:

Just like the one on your PC ora laptop. This is where you plugin a hub and you canplugin USB devices or client.

Carl Franklin:

Right. Yeah.

Gus Issa:

So this isone

of the features.We also added SQLite for users who neededdatabases. Weadded

CANfor users, and thenDOSor more ifthey need the system, sort of networking.We had it Wi-Fi...

Carl Franklin:

Okay, hold on, hold on a sec.Can you spell some of those things and tell us whatthey are?

Gus Issa:

CAN is Controller AreaNetwork which is a device that's used in industrialapplications.

Carl Franklin:

CAN.

Gus Issa:

Yes.

Carl Franklin:

Okay.

Gus Issa:

The same way you have aserial port on a PC. Thisis a similar port that isusually use on industrial applications. It's immune tohigh levels of noise if used in automotives.

Carl Franklin:

Okay.

Gus Issa:

We also have a Wi-Fi.

Carl Franklin:

Okay.

Gus Issa:

So you would have wirelessnetworking support. On the USB device side, NETMFhas some support to USB device customization. Nowin fact, well, the other side of the USB device. This iswhen you would connect the .NET Micro Frameworkdevice to your PC. Now we created libraries tosimplify this. Since many users don't know muchabout windows, drivers, they don't want to take itthere, we created different drivers and differentlibraries that convert your micro framework device intoa virtual mouse let's say or a CDC device. A CDCdevice is basically a virtual COM port over USB.

Carl Franklin:

Yeah.

Gus Issa:

So a little example here, let'ssay I want to create a data logger, I can easily do thatwith .NET Micro Framework by taking any of theoffers out there. To plugin a SD card for storage,youcan put 2, 4, 16 gigabytes for all your data on a SDcard and then this little logger running .NET can pluginto a PC and show up on a PC like a card readerwould and then you can take the log files up there inyour card.

Carl Franklin:

So you could--essentially ifyou're building an electronics device, you could havebuilt into--you could write the data logger for, youknow, the logger side of it obviously you'd have tointeract to your device to get that data, but on theother side you essentially like you said can use USBkeys or SD cards which you can just put into yourcomputer and use. But the whole idea is that youwant to have some device that's portable but also canbe embedded in another piece of electronics gear.

Gus Issa:

Yes. So it'sa lot like creatingthe end product. You're creating a very little--youthink you have a very, very small PC in a lower box.What can you do with that? It's possible that these arereally endless.

Carl Franklin:

So l et's t al k about some oft hose possi bi l i t i es because t hat's what r eal l y get s megoi ng. What ki nds of--I mean, when I think of a littlehandheld box that I want to take around, it's got tohave some sensors, it's got to have a lot of good inputpossibilities, something that has a microphone andcan listen, or motion detector or do something elselike that and then since it's got Wi-Fi, when somethinghappens it can phone home and tell me about it.What are some of those sensors and input devicesthat you can connect to these things?

GusIssa:

.NET Micro Frameworkincludes support for busses that are use in embeddedsystems like UART which is the basic of serial port,SPI Bus, and...

Carl Franklin:

SDI?

Gus Issa:

SPI. And I2C.

Carl Franklin:

I2C, okay.

Transcription by PWOP Productions, http://www.pwop.com

Page7of12

Gus Issa Has a Micro .NET Framework!

January 4, 2011

Gus Issa:

These are the main bussesthat are used on embedded systems. Usually whenyou would have a sensor, if it's a digital sensor thenyou would use one of these interfaces to read let'ssay temperature or acceleration, gyroscope, even thesensor. You would use a lot of these interfaces toread the value from the sensor.

Carl Franklin:

I see. So with UART and SPIand USB, you could pretty much plugin any off theshelf sensor.

Gus Issa:

Well, in embedded system it'snot that simple. You don't have off the shelf sensors.There are sensors. There's a little wiring. So whatwe did is we try to make this easier for softwaredevelopers who don't have a soldering iron andtheyhate seeing it. We created these little sensors withstandard sockets so you can take the sensor and plugit right into the board so now you could do muchabout the hardware, just plug it in, and we provide thesource code to give you an example of how to readfrom that sensor.

Carl Franklin:

So Richard, this is like basicstamp for .NET.

Richard Campbell:

That's what I'm thinking.

Carl Franklin:

Yeah.

Richard Campbell:

It's in different form factors.

Carl Franklin:

Right.

Gus Issa:

Yeah.

Richard Campbell:

We can get to really, reallysmall, not so small. You know, I suspect it cost morewhen you get really small.

Carl Franklin:

Yes.

Gus Issa:

Right. So then last year wehad this idea that when we start to look at .NET MicroFramework, we are only working with companies andon pretty involved systems. So we had this idea thatthis is really easy to use. So how can we make thiseven easier so anybody out there can have fun? Youwant to connect your Christmas tree to a .NET boardand blink some lights and control this from yourphone, just think of anything you would like toaccomplish. Now how can we make this easier? Sowe look out there at different options of what you'regoing to do. We saw BASIC Stamp like you justpointed out. There's also Arduino, that's anotherpopular board. We look at these boards and wethought, well, the form factor isnice, people are usingthem, they are happy with what they have but it doesnot run on .NET. So what if we create a board that isin the same form factor but it's running .NET andthat's what we exactly did. We have this one boardthat's called FEZ Domino.

Carl Franklin:

FEZ, F-E-Z?

Gus Issa:

Yes, FEZ.

Carl Franklin:

Domino.

Gus Issa:

And we have FEZ Domino.These two boards have the same form factor as theArduino board, the same thing out, it looks the same.So if you have sensors or if you haveany board forplug into Arduino, you can take that board and plug itinto the .NET board and now you're programming in.NET. You're not programming in C or C++ anymore.

Carl Franklin:

Oh, that's awesome.

Gus Issa:

Another thing, we also createda boardthat's called FEZ Panda that is the same formfactor as BASIC Stamp too. So if you have a BASICStamp robot you can take the FEZ Mini and plug firstmini into your robot that is originally was used withBASIC Stamp and now you can program your robotwithC#.

Carl Franklin:

Wow.

Richard Campbell:

Awesome.

Carl Franklin:

I mean without the stuff thatyou guys do, the .NET Micro Framework isn't reallyfor end-users, is it? Without a company like you tosort of use it and implement it on hardware and thenprovide other hardware and embedded softwarealong with it, this isn't something that a .NETapplication developer can just download and startusing.

Gus Issa:

Yes. The only thing you canuse without hardware is the emulator that alreadyships with .NETMicro Framework. But there's somuch you can do with the emulator because the ideafor micro framework is you're accessing morehardware, you're accessing sensors. So you're nowinteracting with the other world, not with the sensor,not with the software. So you would really need somehardware so you can use .NET Micro Framework toits fullest.

Carl Franklin:

I get it. And we have links onthe website,dotnetrocks.com, on this particular showto not only the .NET Micro Framework homepage butto the GHI Electronics homepage too. Do you haveother competitors? I mean, are there other peoplethat are doing what you do, what you guys...?

Transcription by PWOP Productions, http://www.pwop.com

Page8of12

Gus Issa Has a Micro .NET Framework!

January 4, 2011

Gus Issa:

Oh, yes. Oh, yes. There'splenty. If you go onnetmf.com, i t's t he of f i ci alwebsi t e f or Mi cr osof t f or .NET Mi cr o Fr amewor k, i t'satnetmf.com, they list the different vendors and theylist different products on the website so you can seewhat di fferent vendors offer sort of l i ke .NET Mi croFramework.

Carl Franklin:

So there's another website atmicrosoft.com/netmf

that's different but it looks likethey're both portals for the .NET Micro Framework.

Gus Issa:

Yes, correct.

Carl Franklin:

Why are there two? Do youknow?

Gus Issa:

Thenetmf.com

is a newerwebsite. I'm not sure now why there are two. I wouldhave to check with Microsoft. Thenetmf.com

is anewer one and it has forums on it so if somebody hasa question, they can usenetmf.com. I think thenewer website has a forum and it's a morecommunity-targeted website.

Carl Franklin:

Okay.

Richard Campbell:

So Gus, can you talk aboutsome of the projects you've done with this kind of setup?

Gus Issa:

.NET Micro Framework, theeasiest one to talk about is the example, they allowthe example, where it can be all different kinds ofdataloggers. Now from vCards to USB stick drives or datastorage and now to the endless sensors that you canconnect to .NET over the different boxes that areavailable. Now other examples would be vendingmachines. We have a customer that works withthose. Basically they have a smart vending machine.You could just take a Windows CE and drop that in avending machine, it creates a vending machine. Butthe idea of .NET Micro Framework, how can we makethis on a smaller scale cheaper and maybe eveneasier because you don't have everything in thatporting system. You only have fewer set of librariesto work with. So the smart vending machine can havea touchscreen for example. It can be network-connected. It sends data logs of inventory, any errorcode, troubleshooting codes, and it canevenupdatethefirmwareremotely.

Carl Franklin:

AtFranklins.Net

right now youcan get a DVD with over 11 hours of Billy Hollis onSilverlight 4.0 or 14 hours of Sahil Malik onSharePoint 2010 each for only$695. Order online atwww.frankins.net. Are you looking to change jobs?Infusion Development has offices in New York City,Toronto, London, Dubai, and Poland. Infusion hashired awhole handful of happy .NET Rocks! listeners.Contact me for an introduction at carl@franklins.net.

Richard Campbell:

Of course these things have aTCP/IP connection. They can log into the networkand just be a device in your network.

Gus Issa:

Yeah..NET Micro Frameworkincludes a full blown TCP/IP stack. It's a standardpacket just like your program on your PC.

Richard Campbell:

Is there a little web server wecan run on there as well?

Gus Issa:

Yeah, you can run server andclient.

Carl Franklin:

So the web stuff is built-in. It'snot just pure sockets, right?

Gus Issa:

There's HTTP. I'm not surehow--there are limits as to how much you can put onembedded systems.

Carl Franklin:

Sure.

Gus Issa:

So the last version had HTTPsupport to the core.

Carl Franklin:

For the client.

Gus Issa:

And then it supports SSL. So ifyou want to take it one step up, you can but then youwould have to code up and...

Carl Franklin:

Right. It sounds like it's gotclient support but there's no little IIS running in thereor Cassini.

Gus Issa:

No.

Carl Franklin:

Yeah.

Gus Issa:

Yeah. We're talking about aframework that can run on 300 kilobytes of RAM.

Richard Campbell:

Right. Yeah, just looking at the.NET Micro Framework 4.0 there isH T T P We b R e q u e s t, H T T PWebResponse,HTTPLIstener so you can put together a little webservice that runs on the device.

Gus Issa:

Yeah. So one little project thatI thought I'd work on the next week since we aretaking the week off work, I want to make a little webserver justfor fun that runs on the small board and Iwant to connect the infrared transmitter on the boardand start this into my next work at home. So what thelittle server will hold is a small page that has buttonson it and then from these buttons I can controlthe IR

Transcription by PWOP Productions, http://www.pwop.com

Page9of12

Gus Issa Has a Micro .NET Framework!

January 4, 2011

transmitter. Now through my phone, I can open apage and change the volume or change the station onmy TV.

Richard Campbell:

Right, of course. The trick hereis figuring out the sensor set you need to be able to,you know, what is the IR device and how to send itssignals. It's just that combination of things to figureout what to send and what to receive.

Gus Issa:

Yes, correct. Now what's greatabout this, we have this awesome community ofhundreds of users who are in love with .NET MicroFramework and with sensors and robots and all theaboveand they are ontinyclr.com, that's the website,and if you go there on the forum you just type anyquestion about any software you can think of andyou'll have plenty of answers. People there are very,very friendly and very helpful.

Richard Campbell:

Yeah. You just keep leadingus to cooler and cooler sites here, Gus, like now we'regetting into--TinyCLR has a lot of robotics on it.

Gus Issa:

Oh, yeah, yeah, TinyCLR.There are so many things I want to talk about,maybewe should have another meeting but...

Carl Franklin:

Now let's go for it.

Gus Issa:

There are two websites. Thereare twoelectronics.com. This isthe main websitewhere we work with big companies on solving theircommercial needs, and we have thistinyclr.com.This is the community website that has the smallerboard that is possibly for hobbyists. Thedocumentation are fabulous for hobbyists.

Richard Campbell:

Right.

Gus Issa:

On top of all this, we saw thatusers are contributing more and more source codeand examples so we thought, well, let's create awhole website just for them to drop in their samplesource code like our examples here. I'm not sure howto control an IR Transmitter to change picture on myTV, maybe somebody else there had done the workalready. So we have this website called

fezzer.com

and it's targeted for sharing source code and it's fullopen source code snippets and drivers for all kinds ofsensors.

Richard Campbell:

So now you just got to go outand search for the kind of sensor you're looking for.

Carl Franklin:

That's awesome.

Richard Campbell:

And do nuts.

Gus Issa:

Yeah. Their website is fairlynew, a couple of weeks old and we already over 150different drivers on the website.

Richard Campbell:

Awesome.

Carl Franklin:

Now, can you use VB.NET withthis within the framework?

Gus Issa:

Yes, you can but not today..NET Micro Framework has a full CLR. It's a TinyCLRbut it is a CLR so theoretically you can create anylanguage and compile it and run it on .NET MicroFramework. As of today officially C# and VB willprobably be the next aswe are seeing more and morerequest and we are seeing more hobbyists getting.NET Micro Framework and they're asking forVB.

Carl Franklin:

So this is a .NET MicroFramework limitation, not a GHI limitation?

Gus Issa:

Yes, yes.

Carl Franklin:

Okay.

GusIssa:

Yeah. So what needs to bedone is when it gets to a point where there's a VBsupport on Visual Studio, then you can create a VBproject, compile that and load it on any .NET MicroFramework device including GHI.

Carl Franklin:

Wow.

Gus Issa:

Actually I've done some workmyself where what I did was compile a DLL in VB anduse that DLL in C# and now I was able to use C#, theofficial support as a base but from there I was able tolink the DLL that was written in VB and then I can useVB, but not themai n method. I had to access that i nC#, but from there I can j ump i nto any VB code.

Although when I look at thehardware at TinyCLR it's all machines, it's not thesensors for the machines.

Gus Issa:

When you look at TinyCLRthere are sensors. If you go to any of the sensors, allthe boards they start with FEZ.FEZ,they're for funand easy.

Richard Campbell:

Right.

Gus Issa:

So if you go to any of theFEZ,let's say FEZ Domino, you'll see many, many sensors.There are selections on multiple places.

Carl Franklin:

Oh, yeah.

Gus Issa:

Where you can go to the nextand next page.

Carl Franklin:

I see FEZ Relay, MP3 decoder,extension, a GPS extension, an accelerometerextension, RFID Reader, and there are pages ofthese things.

Richard Campbell:

Yeah.

Carl Franklin:

I'm looking at FEZ--what am Ilooking at? Rhino? FEZ Rhino?

Gus Issa:

Yeah.

Carl Franklin:

So FEZ stands for FreakingEasy. That'sgreat.

Gus Issa:

Yeah. We did that for Fun andEasy.

Carl Franklin:

Ah, come on. Freaking Easy isgreat.

Gus Issa:

Yeah. Actually last year wewere thinking, when we started this website, what arewe going to name this new product line and we werethrowing ideas back and forth and somebody says"This is freaking easy. I'm not too..."Well, he namedit. And then we said"Oh, it's freaking easy."

That comes greater, thecontroller, because it has an accelerometer. They'lldrive into the Wii controller and plenty of buttons Idon't like and digital buttons. So connecting thoseyou can do so much with the Wii controller.

Carl Franklin:

All right, I've got to read the listbecause people are going to freak out here. Metaldetector, button, a big button, I love it, just a button.You know how hard it is to just find a programmablebutton out there.

Richard Campbell:

Yeah.

CarlFranklin:

All right. PA Speaker, areflective sensor. What's that? Sensor emits aninvisible infrared light and then measures it back tosee if the light is reflecting. That's how the Kinectworks, Richard.

Richard Campbell:

Yeah.

Carl Franklin:

A three-wire cable, athermometer, a serial server motor controller andthese are 40 bucks tops, some of them are 10 bucks,some are 15 bucks. XB, Expansion XBEE, I don'tknow what that is, a DC motor driver, a distancedetector, a color LCD extension, car adaptor, USBPower Supply. What else do we have here?Bluetooth Interface, battery holders, server motors.These are just components, right?

Gus Issa:

Yeah. Some components willbe out like wires, headers, some things that help indifferent projects that you could be creating.

Carl Franklin:

Yeah. Man, that's awesomeand that's just for...

Gus Issa:

Yeah. Can you go to hardwareFEZ Mini page?

Carl Franklin:

Yeah. Okay.

Gus Issa:

You see the third product onthat says the friend of many robots.

Carl Franklin:

Yeah.

Gus Issa:

So it's a full robot that comes inpieces and you can construct that over Christmasbreak and you have a robot where you could run in.NET.

Carl Franklin:

150 bucks.

Transcription by PWOP Productions, http://www.pwop.com

Page11of12

Gus Issa Has a Micro .NET Framework!

January 4, 2011

Richard Campbell:

Yeah, and then you need toadd sensorsfrom there.

Gus Issa:

Oh, yes, yes. This robot had alittle flag on top saying I'm running .NET and it wasdancing around at PDC 2009.

Carl Franklin:

So there's a little monkey thatsays did you know FEZ supports runtime debugging?How was that different from Visual Studio debugging?

Gus Issa:

Okay. This is actually for thosewho are used to program on a very low level. Theywere not able to debug. This is not like the .NETdevelopers. .NET developers have this coming easyfor them. They always can step in code, views,inspect variables, do all kinds of different things tohelp them develop. Now deep embedded developers,they must have very expensive tools or they wouldnot be able to debug. What we did back in the dayswhen we did low level programming is basically sendthem an LED on if something happens. This is howwe debug that something is working, and LED is alittle light by the way if somebody doesn't know. Sowe see an LED is on, this is how we know it'sworking, or it's blinking, or maybe connect a smalldisplay and print things to the display just so we knowwhy the software is crashing and what happens. Wedidn't have debugging.

Carl Franklin:

Okay.

Gus Issa:

Now with .NET MicroFramework, you have all this, get these little piecesbuilt right in. You hit F5 in Visual Studio, it deploysthe FEZ to write on the board over USB and while thesoftware is running on USB you can start to encode,you can start the program, you can inspect variablesall day long.

Carl Franklin:

Awesome.So that's really notfor us. That's for those people who aren't used to it.

Gus Issa:

Yes. So this is something new.

Carl Franklin:

Yeah. Do you find that thereare a lot of non-.NET developers that are getting intoC# programming because of this? Like do you find alot of beginner developers?

Gus Issa:

Personally I think there aremore users coming from deep development to .NETbecause of the .NET Micro Framework.

Carl Franklin:

Okay.

Gus Issa:

If you are a .NET developer,you're usually programming on a PC or you don'tthink about programming in mobile devices, and if youdid, you're probably programming your smartphoneusing C#. So you really don't see the small device, oryou don't think the device exist, or you don't go outthere and look forit. Now for developers who areused to use their micro controllers, developing isextremely difficult. Like I was saying earlier, how doyou create a file let's say using a basic micro...

Carl Franklin:

Right.

Gus Issa:

This is a nightmare. This ishundreds and hundreds of lines of code to dosomething extremely simple. Now with .NET MicroFramework, this is already built-in. Now we areprogramming little devices in the same way you wouldprogram smart devices.

Carl Franklin:

Okay.

Gus Issa:

Thereis also a Wiki that wouldbe very helpful for users interested to learn moreabout .NET Micro Framework.

Carl Franklin:

Okay.

Gus Issa:

We named the Wiki websitemicroframeworkprojects.com.

Carl Franklin:

Great.

Gus Issa:

So Wiki is basically open forthe community. Anybody can go in there and edit thatproject, remove project and you would see tons andtons of projects out there with videos.

Carl Franklin:

Okay. Well, that's cool. Sohow longhave you been doing this with GHI and whatwere you doing before you work there?

Gus Issa:

Before GHI, I've always beenan embedded systems developer, and before GHI Iwas working on automotive devices developinghandheld special equipments on automotiveand thenwe started GHI and we had this idea that we want tocreate--I found these challenges that we're talkingabout earlier, how deep embedded developer isextremely difficult to do a lot of things on theembedded side.

Carl Franklin:

Yeah.

Gus Issa:

So we had this idea of creatingthese modules that are easier to use. They arehardware and software. There are plenty of modulesout there, hardware modules and there's plenty ofsoftware but it's not easy to find a combination. Sowe had this idea of let's start a business where weoffer developers hardware and software package thatgets them going with whatever they want to do andthis where we always try to create devices that arevery generic. They're not targeted for one company

Transcription by PWOP Productions, http://www.pwop.com

Page12of12

Gus Issa Has a Micro .NET Framework!

January 4, 2011

or one need. Wetry as many features as we can.We have to try to have everything of course, makesure everything is professionally added. Now usersout there needing file system, we support that.Somebody needing networking, we support that. Wi-Fi, or wired, or evenPPP if you need to use cellphone network we also support that.

Carl Franklin:

That's awesome. Well, Gus,man, it's been awesome. This is great stuff and afterChristmas and I have a few extra dollars lying around,I'm definitely going to get into this. So Richard, I'mgoing to apologize in advance because I'm going tobe busy with my GHI devices and probably won't havetime to hang out as much.

Richard Campbell:

Okay.

Gus Issa:

Yeah. I love to hear more afteryou try it and I would love hearing thestory of someusers who coming from either world, from .NET worldor from deep embedded world and they're trying .NETMicro Framework. I love to hear what your opinionwould be.

Carl Franklin:

I also like to apologize inadvance to my girlfriend. I'm sorry but...

Richard Campbell:

I'm busy.

Carl Franklin:

I'm going to be busy for awhile. All right, Gus, thank you so much.

Gus Issa:

You're really welcome. Well,one thing to get you started before you purchaseanything...

Carl Franklin:

Okay.

Gus Issa:

Or do anything, there is a freeebook for you and it's right there on the website. Iwrote this book and it was a gift for the communityand basically it's the knowledge from everybody atGHI and knowledge from the community combinedthat. Thanks to everyone at GHI and the communityfor helping me, and combine that into one book thattakes you from the very beginning. The book wasmade so even if you're not .NET developers youwould be able to use the book. It even teaches C# toan extent. So take it from A to Z. So this is a goodplace to start.

Carl Franklin:

Okay. So if you go to thedownloads tab, you'll see it there, this PDF file.

Gus Issa:

Yes.

Carl Franklin:

All right. Great. BeginnersGuide to NETMF and NETMF...Thanks very muchandwe'll see you next time on .NET Rocks!

[Music]

Carl Franklin:

.NETRocks! is recorded andproduced by PWOP Productions, providingprofessional audio, audio mastering, video, postproduction, and podcasting services, online atwww.pwop.com..NETRocks! is a production ofFranklins.NET, training developers to work smarterand offering custom onsite classes in Microsoftdevelopment technology with expert developers,online atwww.franklins.net. For more.NETRocks!episodes and to subscribe to the podcast feeds, go toour website atwww.dotnetrocks.com.