SlideShare a Scribd company logo
1 of 20
Download to read offline
C# on CHIPs
Mirco Vanini
Microsoft MVP Windows Developer
SPONSOR
Agenda
• .NET for IoT
• MCU, CPU, what’s the difference?
• .NET Micro Framework
• Alternative to .NET MF
• What is nano framework
• Demo
.NET for IoT
• Full integration with Azure services (IoT Hub, IoT Edge)
• ARM32 and ARM64 Runtime and SDK build:
• Ubuntu 16.04+, Debian 9+, Alpine 3.9+
• Windows 1809+
• Docker images
• API for all the major IoT Device protocols: GPIO, PWM, SPI, I2C,
…
• Device binding for a growing set of peripherals
MCU, CPU, what’s the difference?
• A Micro Controller Unit (MCU) is a small processor, usually a
synonym for low power consumption, and small size. Modern
ones like STM32F7, ESP32, TI CC1352R are ARM Cortex M based,
embedding few hundreds of kilobytes of RAM, small flash and a
decent few hundred million of hertz clock cadence.
• A Central Processing Unit (CPU) is a larger processor, in this
category, you’ll find all the traditional x86, x64, but as well other
ARM processors like the one used in Raspberry Pi.
.NET Micro Framework
• The .NET Micro Framework (NETMF) is a .NET
Framework platform for resource-constrained devices with at
least 512 kB of flash and 256 kB of random-access
memory (RAM).
• It includes a small version of the .NET Common Language
Runtime (CLR) and supports development in C#, Visual Basic
.NET, and debugging (in an emulator or on hardware)
using Microsoft Visual Studio.
.NET Micro Framework (2002->2015)
• In 2002 at Comdex Microsoft annunced Smart Personal Objects
Technology, the first devices to make use of SPOT were released in 2004 by
Fossil and Suunto
• In November 2009, Microsoft released the source code of the Micro
Framework to the development community as free and open-source
software
• In January 2010, Microsoft launched the netmf.com community
development site to coordinate ongoing development of the core
implementation with the open-source community
.NET Micro Framework (2002->2015)
• In 2010 Microsoft released the The Gadgeteer platform,
an open-source rapid-prototyping standard for building small
electronic devices using the Microsoft .NET Micro Framework
• On 9 January 2010, GHI Electronics announced FEZ Domino
• On 3 August 2010, Secret Labs announced the Netduino
• In 2015 Microsoft released v4.4, the last release of Micro
Framework
.NET Micro Framework (2002->2015)
• On 16 December 2016, GHI Electronics announced their own
implementation of Micro Framework called TinyCLR OS
• On 23 January 2017 a group of embedded systems developers
publicly announced .NET nanoFramework as spin-off of .NET
Micro Framework.
Alternative to .NET MF
What is nano framework
.NET nanoFramework is a free and open-source platform that enables
the writing of managed code applications for constrained embedded
devices.
It is suitable for many types of projects including IoT sensors,
wearables, academic proof of concept, robotics, hobbyist/makers
creations or even complex industrial equipment.
It includes a reduced version of the .NET Common Language
Runtime (CLR) and features a subset of the .NET base class libraries
along with the most common APIs included in .NET IoT allowing code
reuse from .NET IoT applications, thousands of code examples and
open source projects.
What is nano framework
• Can run on resource-constrained devices with as low as 128kB of flash and 64kB
of RAM.
• Runs directly on bare metal. Currently ARM Cortex-M and ESP32 devices are
supported.
• Supports common embedded peripherals and interconnects like GPIO, UART, SPI,
I2C, USB, networking.
• Provides multi threading support natively.
• Support for energy-efficient operation such as devices running on batteries.
• Support for Interop code allowing developers to easily write libraries that have
both managed (C#) and native code (C/C++).
• No manual memory management because of its simpler mark-and-
sweep garbage collector.
• Execution constrains to catch device lockups and crashes.
[Physical hardware](Hardware Layer) (not
shown in diagram)
[CPU Support layer (CPU)](CPU Layer)
[Hardware Abstraction Layer (HAL)](HAL
Layer)
[Operating System (OS)](OS Layer)
[Platform Abstraction Layer (PAL)](PAL Layer)
[Common Language Runtime (CLR)](CLR
Layer)
[Interop](Interop Layer)
[Base Class Libraries](BCL Layer)
Layers
nano framework - getting started
• Install Visual Studio, make sure to install the workloads for .NET desktop
development and .NET Core cross-platform development.
• Install the nanoFramework extension for Visual Studio
• Install nano Firmware Flasher (nanoff) tool, the .NET 6.0 Runtime (or .NET 6.0
SDK) must be installed
• Uploading the firmware to the board using nanoFirmwareFlasher
• Run Visual studio, File > New > Project menu, to open the Create a new project,
Enter nanoFramework into the Search for templates search prompt. Choose
the Blank Application (nanoFramework) template and press the Next button
.NET nanoFramework Home
nanoFramework.IoT.Device
nano framework – VS2022 integration
ESP32-DevKitC
Ultrasonic Ranging Module HC - SR04
Stepper Motor 5V 4-Phase 5-Wire & ULN2003
Driver Board
Demo
Questions?
myContactInfo:
{
”e-mail”:“mirco.vanini@proxsoft.it”,
“web”: “www.proxsoft.it”,
“twitter”: “@MircoVanini”
}
Mirco Vanini
Microsoft MVP Windows Developer

More Related Content

What's hot

Strategy to Execution - shipping products while adapting to new information -...
Strategy to Execution - shipping products while adapting to new information -...Strategy to Execution - shipping products while adapting to new information -...
Strategy to Execution - shipping products while adapting to new information -...
Jonny Schneider
 
Scaling Agile in Regulated Environments: Addressing the Challenges of Complia...
Scaling Agile in Regulated Environments: Addressing the Challenges of Complia...Scaling Agile in Regulated Environments: Addressing the Challenges of Complia...
Scaling Agile in Regulated Environments: Addressing the Challenges of Complia...
Cprime
 
Strategy Mapping
Strategy MappingStrategy Mapping
Strategy Mapping
led4lgus
 

What's hot (20)

Scrum vs SAFe | Differences Between Scrum and Scaled Agile Framework | Edureka
Scrum vs SAFe | Differences Between Scrum and Scaled Agile Framework | EdurekaScrum vs SAFe | Differences Between Scrum and Scaled Agile Framework | Edureka
Scrum vs SAFe | Differences Between Scrum and Scaled Agile Framework | Edureka
 
Building Quality In in SAFe – The Testing Organization’s Perspective
Building Quality In in SAFe – The Testing Organization’s Perspective	  Building Quality In in SAFe – The Testing Organization’s Perspective
Building Quality In in SAFe – The Testing Organization’s Perspective
 
Agile vs. waterfall - The fundamentals differences
Agile vs. waterfall - The fundamentals differencesAgile vs. waterfall - The fundamentals differences
Agile vs. waterfall - The fundamentals differences
 
Product owner Roles and responsibilities in Agile Scrum Methodologies
Product owner Roles and responsibilities in Agile Scrum MethodologiesProduct owner Roles and responsibilities in Agile Scrum Methodologies
Product owner Roles and responsibilities in Agile Scrum Methodologies
 
Are we done yet?
Are we done yet?Are we done yet?
Are we done yet?
 
Balanced Scorecard: A Review of Implementation and Future Opportunities
Balanced Scorecard: A Review of Implementation and Future OpportunitiesBalanced Scorecard: A Review of Implementation and Future Opportunities
Balanced Scorecard: A Review of Implementation and Future Opportunities
 
Project Status Determination (GYR Method)
Project Status Determination (GYR Method)Project Status Determination (GYR Method)
Project Status Determination (GYR Method)
 
Plan-Do-Check-Act
Plan-Do-Check-ActPlan-Do-Check-Act
Plan-Do-Check-Act
 
Strategy to Execution - shipping products while adapting to new information -...
Strategy to Execution - shipping products while adapting to new information -...Strategy to Execution - shipping products while adapting to new information -...
Strategy to Execution - shipping products while adapting to new information -...
 
Introduction to Recipes for Agile Governance in the Enterprise (RAGE)
Introduction to Recipes for Agile Governance in the Enterprise (RAGE)Introduction to Recipes for Agile Governance in the Enterprise (RAGE)
Introduction to Recipes for Agile Governance in the Enterprise (RAGE)
 
Scaling Agile in Regulated Environments: Addressing the Challenges of Complia...
Scaling Agile in Regulated Environments: Addressing the Challenges of Complia...Scaling Agile in Regulated Environments: Addressing the Challenges of Complia...
Scaling Agile in Regulated Environments: Addressing the Challenges of Complia...
 
1. process mapping is a critical part of the define and measure ph
1. process mapping is a critical part of the define and measure ph1. process mapping is a critical part of the define and measure ph
1. process mapping is a critical part of the define and measure ph
 
Agile Requirements Gathering Techniques
Agile Requirements Gathering TechniquesAgile Requirements Gathering Techniques
Agile Requirements Gathering Techniques
 
Business Analyst Overview
Business Analyst OverviewBusiness Analyst Overview
Business Analyst Overview
 
All about Product Roadmaps
All about Product RoadmapsAll about Product Roadmaps
All about Product Roadmaps
 
Design thinking para desarrollo de software final
Design thinking para desarrollo de software finalDesign thinking para desarrollo de software final
Design thinking para desarrollo de software final
 
[Trung Hoang] Shu-Ha-Ri applied to Agile team
[Trung Hoang] Shu-Ha-Ri applied to Agile team[Trung Hoang] Shu-Ha-Ri applied to Agile team
[Trung Hoang] Shu-Ha-Ri applied to Agile team
 
FDD Overview
FDD OverviewFDD Overview
FDD Overview
 
Strategy Mapping
Strategy MappingStrategy Mapping
Strategy Mapping
 
Entendendo o Kanban Maturity Model
Entendendo o Kanban Maturity ModelEntendendo o Kanban Maturity Model
Entendendo o Kanban Maturity Model
 

Similar to C# on a CHIPs

Codemotion 2013 Madrid - Modern OOP embedded development with .NET Micro Fram...
Codemotion 2013 Madrid - Modern OOP embedded development with .NET Micro Fram...Codemotion 2013 Madrid - Modern OOP embedded development with .NET Micro Fram...
Codemotion 2013 Madrid - Modern OOP embedded development with .NET Micro Fram...
Lorenzo Maiorfi
 

Similar to C# on a CHIPs (20)

Global Azure boot camp 2015 - Microsoft IoT Solutions with Azure
Global Azure boot camp 2015 - Microsoft IoT Solutions with AzureGlobal Azure boot camp 2015 - Microsoft IoT Solutions with Azure
Global Azure boot camp 2015 - Microsoft IoT Solutions with Azure
 
Codemotion 2013 Madrid - Modern OOP embedded development with .NET Micro Fram...
Codemotion 2013 Madrid - Modern OOP embedded development with .NET Micro Fram...Codemotion 2013 Madrid - Modern OOP embedded development with .NET Micro Fram...
Codemotion 2013 Madrid - Modern OOP embedded development with .NET Micro Fram...
 
Christchurch Embedded .NET User Group - Introduction to Microsoft Embedded pl...
Christchurch Embedded .NET User Group - Introduction to Microsoft Embedded pl...Christchurch Embedded .NET User Group - Introduction to Microsoft Embedded pl...
Christchurch Embedded .NET User Group - Introduction to Microsoft Embedded pl...
 
Null mumbai-iot-workshop
Null mumbai-iot-workshopNull mumbai-iot-workshop
Null mumbai-iot-workshop
 
Edje Project: The Software Foundation for IoT Devices
Edje Project: The Software Foundation for IoT DevicesEdje Project: The Software Foundation for IoT Devices
Edje Project: The Software Foundation for IoT Devices
 
RIOT: towards open source, secure DevOps on microcontroller-based IoT
RIOT: towards open source, secure DevOps on microcontroller-based IoTRIOT: towards open source, secure DevOps on microcontroller-based IoT
RIOT: towards open source, secure DevOps on microcontroller-based IoT
 
#OSSPARIS19 : RIOT: towards open source, secure DevOps on microcontroller-bas...
#OSSPARIS19 : RIOT: towards open source, secure DevOps on microcontroller-bas...#OSSPARIS19 : RIOT: towards open source, secure DevOps on microcontroller-bas...
#OSSPARIS19 : RIOT: towards open source, secure DevOps on microcontroller-bas...
 
Inside the Mac OS X Kernel
Inside the Mac OS X KernelInside the Mac OS X Kernel
Inside the Mac OS X Kernel
 
K vector embedded_linux_workshop
K vector embedded_linux_workshopK vector embedded_linux_workshop
K vector embedded_linux_workshop
 
From Uc To Embedded
From Uc To EmbeddedFrom Uc To Embedded
From Uc To Embedded
 
LAS16 100 K1 - Keynote George Grey
LAS16 100 K1 - Keynote George GreyLAS16 100 K1 - Keynote George Grey
LAS16 100 K1 - Keynote George Grey
 
LAS16-100K1: Welcome Keynote
LAS16-100K1: Welcome KeynoteLAS16-100K1: Welcome Keynote
LAS16-100K1: Welcome Keynote
 
Developers’ mDay u Banjoj Luci - Janko Isidorović, Mainflux – Unified IoT Pl...
Developers’ mDay u Banjoj Luci - Janko Isidorović, Mainflux –  Unified IoT Pl...Developers’ mDay u Banjoj Luci - Janko Isidorović, Mainflux –  Unified IoT Pl...
Developers’ mDay u Banjoj Luci - Janko Isidorović, Mainflux – Unified IoT Pl...
 
Connect a chips to Azure
Connect a chips to AzureConnect a chips to Azure
Connect a chips to Azure
 
The fight for surviving in the IoT world
The fight for surviving in the IoT worldThe fight for surviving in the IoT world
The fight for surviving in the IoT world
 
The fight for surviving in the IoT world - Radu Vunvulea
The fight for surviving in the IoT world - Radu VunvuleaThe fight for surviving in the IoT world - Radu Vunvulea
The fight for surviving in the IoT world - Radu Vunvulea
 
Linxu conj2016 96boards
Linxu conj2016 96boardsLinxu conj2016 96boards
Linxu conj2016 96boards
 
Connect a chips to Azure
Connect a chips to AzureConnect a chips to Azure
Connect a chips to Azure
 
Contiki IoT simulation
Contiki IoT simulationContiki IoT simulation
Contiki IoT simulation
 
Inria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoT
Inria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoTInria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoT
Inria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoT
 

More from Mirco Vanini

More from Mirco Vanini (20)

.NET 7 Performance Improvements_10_03_2023.pdf
.NET 7 Performance Improvements_10_03_2023.pdf.NET 7 Performance Improvements_10_03_2023.pdf
.NET 7 Performance Improvements_10_03_2023.pdf
 
Debugging a .NET program after crash (Post-mortem debugging)
Debugging a .NET program after crash (Post-mortem debugging)Debugging a .NET program after crash (Post-mortem debugging)
Debugging a .NET program after crash (Post-mortem debugging)
 
How to modernise WPF and Windows Forms applications with Windows Apps SDK
How to modernise WPF and Windows Forms applications with Windows Apps SDKHow to modernise WPF and Windows Forms applications with Windows Apps SDK
How to modernise WPF and Windows Forms applications with Windows Apps SDK
 
.NET Conf 2021 - Hot Topics Desktop Development
.NET Conf 2021 - Hot Topics Desktop Development.NET Conf 2021 - Hot Topics Desktop Development
.NET Conf 2021 - Hot Topics Desktop Development
 
Async Debugging A Practical Guide to survive !
Async Debugging A Practical Guide to survive !Async Debugging A Practical Guide to survive !
Async Debugging A Practical Guide to survive !
 
IoT support for .NET (Core/5/6)
IoT support for .NET (Core/5/6)IoT support for .NET (Core/5/6)
IoT support for .NET (Core/5/6)
 
Async Debugging - A Practical Guide to survive !
Async Debugging - A Practical Guide to survive !Async Debugging - A Practical Guide to survive !
Async Debugging - A Practical Guide to survive !
 
IoT support for .NET Core
IoT support for .NET CoreIoT support for .NET Core
IoT support for .NET Core
 
IoT support for .NET Core - IoT Saturday 2020
IoT support for .NET Core - IoT Saturday 2020IoT support for .NET Core - IoT Saturday 2020
IoT support for .NET Core - IoT Saturday 2020
 
.NET Conf 2020 - Hot Topics Desktop Development
.NET Conf 2020 - Hot Topics Desktop Development.NET Conf 2020 - Hot Topics Desktop Development
.NET Conf 2020 - Hot Topics Desktop Development
 
Are you ready for Microsoft Azure Sphere?
Are you ready for Microsoft Azure Sphere?Are you ready for Microsoft Azure Sphere?
Are you ready for Microsoft Azure Sphere?
 
IoT Day 2019 Naples - Microsoft Azure Shpere
IoT Day 2019 Naples - Microsoft Azure ShpereIoT Day 2019 Naples - Microsoft Azure Shpere
IoT Day 2019 Naples - Microsoft Azure Shpere
 
Debugging with VS2019
Debugging with VS2019Debugging with VS2019
Debugging with VS2019
 
Azure Sphere
Azure SphereAzure Sphere
Azure Sphere
 
Optimising code using Span<T>
Optimising code using Span<T>Optimising code using Span<T>
Optimising code using Span<T>
 
Azure Sphere
Azure SphereAzure Sphere
Azure Sphere
 
Xe OneDay - Modernizing Enterprise Apps
Xe OneDay - Modernizing Enterprise AppsXe OneDay - Modernizing Enterprise Apps
Xe OneDay - Modernizing Enterprise Apps
 
Azure Sphere - GAB 2019
Azure Sphere - GAB 2019Azure Sphere - GAB 2019
Azure Sphere - GAB 2019
 
IoT Day - Introducing Azure Sphere
IoT Day -  Introducing Azure SphereIoT Day -  Introducing Azure Sphere
IoT Day - Introducing Azure Sphere
 
Introducing Azure Sphere
Introducing Azure SphereIntroducing Azure Sphere
Introducing Azure Sphere
 

Recently uploaded

%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
masabamasaba
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
masabamasaba
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
masabamasaba
 
Abortion Pill Prices Boksburg [(+27832195400*)] 🏥 Women's Abortion Clinic in ...
Abortion Pill Prices Boksburg [(+27832195400*)] 🏥 Women's Abortion Clinic in ...Abortion Pill Prices Boksburg [(+27832195400*)] 🏥 Women's Abortion Clinic in ...
Abortion Pill Prices Boksburg [(+27832195400*)] 🏥 Women's Abortion Clinic in ...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 

Recently uploaded (20)

WSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security Program
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaS
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
 
BUS PASS MANGEMENT SYSTEM USING PHP.pptx
BUS PASS MANGEMENT SYSTEM USING PHP.pptxBUS PASS MANGEMENT SYSTEM USING PHP.pptx
BUS PASS MANGEMENT SYSTEM USING PHP.pptx
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
WSO2CON 2024 Slides - Unlocking Value with AI
WSO2CON 2024 Slides - Unlocking Value with AIWSO2CON 2024 Slides - Unlocking Value with AI
WSO2CON 2024 Slides - Unlocking Value with AI
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
Abortion Pill Prices Boksburg [(+27832195400*)] 🏥 Women's Abortion Clinic in ...
Abortion Pill Prices Boksburg [(+27832195400*)] 🏥 Women's Abortion Clinic in ...Abortion Pill Prices Boksburg [(+27832195400*)] 🏥 Women's Abortion Clinic in ...
Abortion Pill Prices Boksburg [(+27832195400*)] 🏥 Women's Abortion Clinic in ...
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptx
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 
WSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - Keynote
 

C# on a CHIPs

  • 1. C# on CHIPs Mirco Vanini Microsoft MVP Windows Developer
  • 3. Agenda • .NET for IoT • MCU, CPU, what’s the difference? • .NET Micro Framework • Alternative to .NET MF • What is nano framework • Demo
  • 4. .NET for IoT • Full integration with Azure services (IoT Hub, IoT Edge) • ARM32 and ARM64 Runtime and SDK build: • Ubuntu 16.04+, Debian 9+, Alpine 3.9+ • Windows 1809+ • Docker images • API for all the major IoT Device protocols: GPIO, PWM, SPI, I2C, … • Device binding for a growing set of peripherals
  • 5. MCU, CPU, what’s the difference? • A Micro Controller Unit (MCU) is a small processor, usually a synonym for low power consumption, and small size. Modern ones like STM32F7, ESP32, TI CC1352R are ARM Cortex M based, embedding few hundreds of kilobytes of RAM, small flash and a decent few hundred million of hertz clock cadence. • A Central Processing Unit (CPU) is a larger processor, in this category, you’ll find all the traditional x86, x64, but as well other ARM processors like the one used in Raspberry Pi.
  • 6. .NET Micro Framework • The .NET Micro Framework (NETMF) is a .NET Framework platform for resource-constrained devices with at least 512 kB of flash and 256 kB of random-access memory (RAM). • It includes a small version of the .NET Common Language Runtime (CLR) and supports development in C#, Visual Basic .NET, and debugging (in an emulator or on hardware) using Microsoft Visual Studio.
  • 7. .NET Micro Framework (2002->2015) • In 2002 at Comdex Microsoft annunced Smart Personal Objects Technology, the first devices to make use of SPOT were released in 2004 by Fossil and Suunto • In November 2009, Microsoft released the source code of the Micro Framework to the development community as free and open-source software • In January 2010, Microsoft launched the netmf.com community development site to coordinate ongoing development of the core implementation with the open-source community
  • 8. .NET Micro Framework (2002->2015) • In 2010 Microsoft released the The Gadgeteer platform, an open-source rapid-prototyping standard for building small electronic devices using the Microsoft .NET Micro Framework • On 9 January 2010, GHI Electronics announced FEZ Domino • On 3 August 2010, Secret Labs announced the Netduino • In 2015 Microsoft released v4.4, the last release of Micro Framework
  • 9. .NET Micro Framework (2002->2015) • On 16 December 2016, GHI Electronics announced their own implementation of Micro Framework called TinyCLR OS • On 23 January 2017 a group of embedded systems developers publicly announced .NET nanoFramework as spin-off of .NET Micro Framework.
  • 11. What is nano framework .NET nanoFramework is a free and open-source platform that enables the writing of managed code applications for constrained embedded devices. It is suitable for many types of projects including IoT sensors, wearables, academic proof of concept, robotics, hobbyist/makers creations or even complex industrial equipment. It includes a reduced version of the .NET Common Language Runtime (CLR) and features a subset of the .NET base class libraries along with the most common APIs included in .NET IoT allowing code reuse from .NET IoT applications, thousands of code examples and open source projects.
  • 12. What is nano framework • Can run on resource-constrained devices with as low as 128kB of flash and 64kB of RAM. • Runs directly on bare metal. Currently ARM Cortex-M and ESP32 devices are supported. • Supports common embedded peripherals and interconnects like GPIO, UART, SPI, I2C, USB, networking. • Provides multi threading support natively. • Support for energy-efficient operation such as devices running on batteries. • Support for Interop code allowing developers to easily write libraries that have both managed (C#) and native code (C/C++). • No manual memory management because of its simpler mark-and- sweep garbage collector. • Execution constrains to catch device lockups and crashes.
  • 13. [Physical hardware](Hardware Layer) (not shown in diagram) [CPU Support layer (CPU)](CPU Layer) [Hardware Abstraction Layer (HAL)](HAL Layer) [Operating System (OS)](OS Layer) [Platform Abstraction Layer (PAL)](PAL Layer) [Common Language Runtime (CLR)](CLR Layer) [Interop](Interop Layer) [Base Class Libraries](BCL Layer) Layers
  • 14. nano framework - getting started • Install Visual Studio, make sure to install the workloads for .NET desktop development and .NET Core cross-platform development. • Install the nanoFramework extension for Visual Studio • Install nano Firmware Flasher (nanoff) tool, the .NET 6.0 Runtime (or .NET 6.0 SDK) must be installed • Uploading the firmware to the board using nanoFirmwareFlasher • Run Visual studio, File > New > Project menu, to open the Create a new project, Enter nanoFramework into the Search for templates search prompt. Choose the Blank Application (nanoFramework) template and press the Next button .NET nanoFramework Home nanoFramework.IoT.Device
  • 15. nano framework – VS2022 integration
  • 18. Stepper Motor 5V 4-Phase 5-Wire & ULN2003 Driver Board
  • 19. Demo