Visual Studio: The one IDE to rule them all

This week there was some great news about .NET MF and the return of the Netduino!(http://blog.wildernesslabs.co/netduino-is-back/)

 

I was inspired enough to dust off one of my older projects which included .NET MF and the Xamarin Monkey Robotics project. I then decided to consolidate and rearrange it with some of the newer stuff I’m playing with in the “Iot” space.    It’s also an example of how Visual Studio can handle projects of all types, held together and fully “debuggable” within one solution.     This seems like a good time to do this especially with the recent talks at the Xamarin User Groups in Cape Town (http://explorationspace.co.za/2017/07/20/cross-platform-iot-at-ctxug/)  and Johannesburg (http://explorationspace.co.za/2017/07/12/cross-platform-iot-at-gxugsa/) on the topic.

 

 

Visual Studio Controller of Things Solution

 

I do still have to port all this to Visual Studio 15.3 preview 3 so I can have Xamarin Iot working in the solution as well.

 

Still a lot of on the list to do today, so I’ll end off here.

 

Happy Iot’ing!

Cross Platform Iot at CTXUG

Last night was the Cross Platform Iot Session at CTXUG in Cape Town.    The turnout was absolutely amazing!    Thank you to all for coming it was a really fun evening!

 

Roger Weiss from Aliens kicked off with an overview of Windows 10 Iot Core and a few demos.  These demos featured some awesome use of Microsoft Cognitive services and also some nifty voice controlled home automation.

 

It was then my turn.   Unfortunately Chris van Wyk couldn’t make it this evening.  🙁

 

The session featured

 

Visual Micro for Visual Studio

Visual Studio Code with Arduino Extension which is now Open Source.

Xamarin Forms and Xamarin.Android with Android Things 0.41 Preview

The new Xamarin Iot preview for Linux based devices

Azure Iot Hubs

 

Devices wise 

 

Raspberry Pi 3

Intel Edison

Raspberry Pi Zero W

Latte Panda and Arduino Leonardo

MXChip Azure Kit

Devices everywhere! Latte Panda, Pi With Android Things. NexDock

 

The awesome new MXCHIP Azure Iot kit (Arduino)

 

The presentation can be found here:  https://github.com/apead/XUGSA/tree/master/19072017

Android Things Weather Station Sample with Azure Iot Hubs:    https://github.com/apead/Xamarin-AndroidThings-Contrib

Cross Platform Generic Xamarin Forms sample that ran on Phone, Android Things and Windows 10 Iot (I didn’t demo this, but it works too):   https://github.com/apead/XUGSABuildAutomation

 

Xamarin Android Things Nuget:  https://www.nuget.org/packages/Xamarin.Android.Things/0.4.0-devpreview

 

Xamarin Android Things Contrib Drivers:  https://www.nuget.org/packages/Xamarin.AndroidThings.Contrib.RainbowHat/0.40.0-beta

 

Getting Started with Xamarin Iot:   http://explorationspace.co.za/2017/06/21/xamarin-iot-comes-to-visual-studio-2017-on-windows/

 

MXChip Azure Kit:   https://microsoft.github.io/azure-iot-developer-kit/

 

Android Things Starter Kit with Rainbow Hat:   https://shop.pimoroni.com/products/rainbow-hat-for-android-things

 

Rainbow HAT

 

There’s a Xamagon!

 

Interesting VR Stuff happening in Aliens office

Cross Platform Iot at GXUGSA

Last night was the Cross Iot Session at GXUGSA in Johannesburg.    It’s always fun presenting all the Iot toys, but also what can actually be done with Xamarin and the rest of the Microsoft tooling.

 

It’s also not always clear that you can basically do anything you want with Xamarin, so always nice and exciting to showcase it outside the usual phone type scenarios.

 

 

Gert Talking Windows 10 Iot Core

 

 

The session featured

 

Visual Micro for Visual Studio

Visual Studio Code with Arduino Extension which is now Open Source.

Xamarin Forms and Xamarin.Android with Android Things 0.4 Preview

The new Xamarin Iot preview for Linux based devices

Windows 10 Iot Core

Azure Iot Hubs

 

Devices wise 

 

Raspberry Pi 2 + 3

Intel Edison

Raspberry Pi Zero W

Latte Panda and Arduino Leonardo

MXChip Azure Kit

Devices Devices Everywhere

The presentation can be found here:   https://github.com/apead/XUGSA/tree/master/11072017

 

Android Things Weather Station Sample with Azure Iot Hubs:    https://github.com/apead/Xamarin-AndroidThings-Contrib

Cross Platform Generic Xamarin Forms sample that ran on Phone, Android Things and Windows 10 Iot:   https://github.com/apead/XUGSABuildAutomation

 

Xamarin Android Things Nuget:  https://www.nuget.org/packages/Xamarin.Android.Things/0.4.0-devpreview

 

Xamarin Android Things Contrib Drivers:  https://www.nuget.org/packages/Xamarin.AndroidThings.Contrib.RainbowHat/0.40.0-beta

 

Getting Started with Xamarin Iot:   http://explorationspace.co.za/2017/06/21/xamarin-iot-comes-to-visual-studio-2017-on-windows/

 

MXChip Azure Kit:   https://microsoft.github.io/azure-iot-developer-kit/

 

Android Things Starter Kit with Rainbow Hat:   https://shop.pimoroni.com/products/rainbow-hat-for-android-things

 

Rainbow HAT

 

Behind the Scenes Fun 🙂

Android Things Contrib Drivers for Xamarin Sample Added

Last week I pushed the Xamarin version of the Google Contrib drivers to Nuget.    I’ve now added a sample project, to illustrate how it all works.    The sample also includes the use of Azure Iot Hubs.

 

The sample and the Xamarin components for Android Things Contrib can be found here:  https://github.com/apead/Xamarin-AndroidThings-Contrib

 

The Google Contrib drivers provides for the following components:

 

  • Sparkfun ADC Block for Intel Edison – adcv2x
  • Apa102 RGB LED strip
  • Bmx280 temperature and pressure sensor
  • Push button over GPIO
  • Cap12xx capacitive touch buttons
  • GPS
  • Ht16k33 7-digit alphanumeric segment
  • Mma7660fc accelerometer sensor
  • PWM speaker/buzzer
  • Metadriver for the Rainbow HAT
  • Metadriver for the Sense HAT
  • Ssd1306 OLED display
  • Tm1637 4-digit numeric segment display

 

You can find more details on each can be found within the Android Things Github repo:  https://github.com/androidthings/contrib-drivers

 

A great test of the contrib drivers is Pimoroni’s Rainbow Hat.   https://shop.pimoroni.com/products/rainbow-hat-for-android-things   The Rainbow HAT brings together a lot of the components mentioned above on one board.   It’s provided with the Android Things Starter Kit so it’s a very good place to start.       The first sample I’ve added here focus’s on this specific HAT.

 

I’ve added a Nuget package which contains the entire contrib library.    The nuget is built on version 0.4 preview of Android Things  It can be found on nuget.org:   https://www.nuget.org/packages/Xamarin.AndroidThings.Contrib.RainbowHat/0.40.0-beta   Something to note, it’s still a pre-release nuget package.

 

The sample added is based on the google Weather Station sample.  It has one difference, it uses Azure Iot Hubs for cloud messaging.

 

Sample Functionality

  • Temperature Monitoring
  • Pressure Monitoring
  • Push Button (A) to swap display from Temperature and Pressure on the board display
  • Native UI for RaspberryPi to display weather based on air pressure
  • Telemetry sent from Android Things Device to  Azure via Azure Iot Hubs
  • Message support from Azure to Android Things Device.

 

To uses the Iot hub in the sample, the DeviceId, DeviceKey and HostName of an Azure Iot hub will need to be provided.    I will do a post specific on Iot Hubs to provide more detail on this in subsequent blog posts.    These variables are set in the MainActivity.

 

 private bool _useHubs = true;   //  Set this to true to use Azure Iot Hubs

 _weatherDevice.DeviceId = "<Add Azure Iot Hub Device Id Here>";
 _weatherDevice.DeviceKey = "<Add Azure Iot Hub Device Key Here>";
 _weatherDevice.HostName = "<Add Azure Iot Hub Hostname Here>";

 

Weather Station

 

The sample  uses Xamarin’s own 0.4 Preview nuget for Android Things:   https://www.nuget.org/packages/Xamarin.Android.Things/0.4.0-devpreview

 

I’m in the process of creating more samples of the rest of the contrib library.    I’m also packaging more third-party drivers from around the community into reusable Nuget packages for Android Things with Xamarin.

 

I’m also having a lot of fun at the moment with a version of these drivers, built from scratch to work with Xamarin Iot.  We can then have these components (and Rainbow HAT) working on Linux devices which will of course be awesome!

 

Happy Iot’ing with Xamarin!

 

Xamarin Iot comes to Visual Studio 2017 on Windows

I recently had a quick look at Xamarin Iot.  The post can be found here: http://explorationspace.co.za/2017/06/07/first-look-at-xamarin-iot/.

 

That was using Xamarin Iot on Visual Studio for the Mac (Preview).     Xamarin Iot is also however available for Visual Studio 2017 on Windows (Preview 2.1) too.  Below is the identical solution just running from Visual Studio 2017 on Windows.    Have a look!

 

Visual Studio Iot Project Template

 

 

New Xamarin Iot Agent

 

 

 

Visual Studio in Action

 

Xamarin Iot on Raspberry Pi Zero

 

This is just a quick look at Xamarin Iot running on a Raspberry Pi Zero, this time on Visual Studio on Windows.   More in-depth content coming soon!

 

Happy Iot’ing!

First Look at Xamarin IOT

This is a first look at the new Xamarin Iot functionality found within Visual Studio for Mac 7.1 Preview.   I will dig much further into detail in future posts, but lets have a very quick look and it.    I’m really excited about this addition to the already awesome Xamarin tooling!

 

New Iot Project Type

 

A new project type has been added for Iot.    This project type or template will create the solution and project needed to run on the Iot device.

 

Manage devices option

 

What’s immediately apparent is the new run option for the Iot project type.   There’s now a new item called “Manage Devices”

 

Iot device manager

 

The Iot Device Manager allows all the connected devices to be managed.   This setup is very similar to the Mac Agent used for iOS development with the Xamarin Visual Studio for Windows extension, however it will display all the Linux based devices running on the network.  In this case and screenshot it’s a Raspberry Pi Zero running Raspian (Jesse).   Configuring the device will allow remote deploys to the device from your Mac.    This will require a user name and password of a user on the Raspberry Pi.  This user will be used to connect to the Raspberry pi via SSH.    Also note, SSH needs to be enabled on the Raspberry Pi for this to work.

 

Executing remotely on device

 

Now you can start developing your Iot solution.   What’s really awesome is, all the things you expect to work will just work. This includes break points and a full debugging experience.     All this can happen wirelessly to a “headless” device.

 

The build and execution process is very similar to the Mac Agent when you do iOS development from Windows (Visual Studio) to a Mac.  The difference in this case, it is from a Mac (Visual Studio) to a Linux instance (Raspberry Pi).   On the very first execution, the mono run time will be copied over to the device.  This will be used to execute the built app.    The application itself and it’s “built code” is also synchronized with the Raspberry Pi.    This compiled Iot app is then in turn executed on the device remotely.

 

Lets see it in action!    Here is a simple example of the now standard Iot demo of a flashing LED, but running on a tiny Raspberry Pi Zero W.    What’s really nice about this implementation is, it runs on devices that is not supported by other Iot platforms, like Android Things and Windows 10 Iot Core.   It will run on the myriad of Linux based devices out there.

 

 

There is much more to show and tell.  So there’s much more blogs to come on this topic!   This will also include how Android Things and Xamarin Iot can work together to make cross platform Iot simpler.

 

But for now:  Happy Xamarin Iot’ing! 🙂

 

Xamarin MVP Award

I received this today, the Xamarin MVP Award!!!      This is truly something special that I can now cross off from my bucket list.    Thank you, so much Xamarin and the awesome Xamarin Community!    So honored to be receiving this!

 

 

Thank you to all that made this possible.      It is really really amazing to know that all the years of work that went into assisting and contributing to the Xamarin and Microsoft community, globally and in South Africa has been appreciated!

Thank you once again!   And here’s to more community fun and enjoyment!!

Updated Installing Xamarin Cycle 9 side by side with Android Studio 2.3

Android Studio 2.3 released on 1 March.   I recently created a guide to install Xamarin side by side with Android Studio 2.2.3 here.

 

The steps illustrated remain the same.   The only difference is, the Android Studio 2.3 zip  file (without sdk and installer) can be located here.    If 2.23 was previously installed, migrate the 2.2.3 settings on first run of Android Studio 2.3.   This will copy across the shared SDK location with the Xamarin installation.

 

Android Studio 2.3

 

Happy Xamarin Development!

MVP Award 2017

I returned home from the Cape Town Xamarin User’s group last night to find that I have just become a Microsoft MVP for the first time!!!

 

 

 

I am so honored to be receiving this award!!  Thank you to all that made this possible.      It is really really amazing to know that all the years of work that went into assisting and contributing to the Xamarin and Microsoft community, globally and in South Africa has been appreciated!

 

Thank you once again!   And here’s to more community fun and enjoyment!!

 

CTXUG Monthly Meetup 1 March 2017

Tonight was a very fun evening at CTXUG (Cape Town Xamarin User’s Group).      The two topics presented were Telerik UI for Xamarin and Lottie.       The User Group was held at the MLab office at the waterfront which is a great place to have events!

 

Event URL:  https://www.meetup.com/Cape-Town-Xamarin-Users-Group/events/237781504/

 

Telerik UI

 

“Telerik® UI for Xamarin by Progress is a collection of UI controls and functionalities that complement the default controls found in the platform. The controls offer many non-trivial scenarios out of the box, helping developers to implement polished UI with native-quality performance in their apps faster, shortening time to market. Telerik UI for Xamarin includes Xamarin.iOS wrappers, Xamarin.Android wrappers and Xamarin.Forms controls.”

 

I did the first talk this time on Telerik UI for Xamarin.      It was great showing off what the component set could do, and everyone seemed inspired and impressed with what Telerik UI for Xamarin offers.

 

I do hope the free Telerik license recipients will be presenting the cool stuff they build soon at CTXUG!!!  🙂

 

Thank you to Telerik for all the giveaways!!

 

Speaker:   Allan Pead

 

The slides for this can be found on github:    http://bit.ly/2mGtt61

 

More details on Telerik UI for Xamarin can be found here:  http://www.telerik.com/campaigns/xamarin-ui/telerik-ui-for-xamarin

 

Photos

 

Telerik UI For Xamarin Talk

 

Telerik Swag

 

Lottie

Lottie is a mobile library for Android and iOS that parses Adobe After Effects animations exported as json with Bodymovin and renders them natively on mobile!

For the first time, designers can create and ship beautiful animations without an engineer painstakingly recreating it by hand.”

 

Chris van Wyk  (from Xamarin University) gave an amazing talk on the amazing animation framework Lottie.   Everyone (including myself) was really, really impressed what Lottie can do.

 

Speaker:   Chris van Wyk

 

More information about Lottie:  https://github.com/martijn00/LottieXamarin

 

Photos

 

Lottie Talk

 

 

I hope to see everyone at CTXUG soon!  <Update> The next User Group meetup is on the 29th of March.   The topic will be Visual Studio 2017!!