Microsoft UK Faculty Connection - Site Home - MSDN Blogs


  • Microsoft UK Faculty Connection

    Join the Java Tools Challenge- Make Java Great with Visual Studio – Over $80,000 in prizes



    The 2016 Java Tools Challenge officially opened on Feb 1st and runs through Apr 30th.

    Are you up for the challenge?

    There are two ways you can participate: 

    Create a Visual Studio Team Services (VSTS) extension that helps developers create, test, and/or deploy Java apps; OR Create a Java app (multiple judging categories) using either the Visual Studio Team Services Eclipse plugin (aka Team Explorer Everywhere) or our JetBrains IntelliJ plugin.

    • Best Overall
      Best overall extension or app.
      $10,000 cash
      VSPP Premier Membership 1yr ($10,000 value)
      Visual Studio Enterprise 2015 Qty=3 ($18,000 value)
      Featured product listing on VS Marketplace
    • Best VSTS Extension
      Best VSTS extension for Java app developers.
      $1,500 cash
      Surface Pro 4 ($1,500 value)
      Visual Studio Enterprise 2015 ($6,000 value)
    • Best Android App
      Best Android app built using Java with VSTS and Eclipse or IntelliJ plugins for VSTS.
      $1,500 cash
      Surface Pro 4 ($1,500 value)
      Visual Studio Enterprise 2015 ($6,000 value)
    • Best Web App
      Best web app built using Java with VSTS, Eclipse or IntelliJ plugins for VSTS, and Azure app service.$1,500 cash
      Surface Pro 4 ($1,500 value)
      Visual Studio Enterprise 2015 ($6,000 value)
    • Best Azure SaaS App
      Best Azure SaaS app built using Java.
      $1,500 cash
      Surface Pro 4 ($1,500 value)
      Visual Studio Enterprise 2015 ($6,000 value)
    • Best Student App
      Best VSTS extension or Java app developed and submitted by a student.
      Oculus Rift ($750 value)
      Visual Studio Enterprise 2015 ($6,000 value)

    What type of Java app or extension should you build?

    There are no limits to what you can build for the Java Tools Challenge. Here are some ideas to get your started:

    • Integrations. Have a Java developer tool or extension that you want integrated with one of our Visual Studio and Team Services products? The Java Tools Challenge is your chance to build that integration.
    • Functionality. Wish Visual Studio Team Services tools would better support your Java development? The Java Tools Challenge is your chance to extend our products and help Java development teams work even smarter.
    • Existing App or Extension. Already have a private Java app built using the Visual Studio Team Services Eclipse plugin (aka Team Explorer Everywhere) or JetBrains IntelliJ plugin? Consider building a version to share for the Java Tools Challenge. Have a Visual Studio plugin or extension for Java development that you’ve built for your team? The Java Tools Challenge is a great way to share it with the Java developer community.
    • Solutions. Is there an industry or business team that would benefit from the customization of our products? Help these teams unleash their potential by building a Java app for the Java Tools Challenge..

    Thousands of developers have developed apps and extensions for the Visual Studio platform. For some inspiration, checkout some of the products that have been published on our Visual Studio Marketplace.

    To learn more about our Java development tools and integrations, check out our website at, follow us on Twitter (@JavaALM) , and like our Facebook page.

    Get Started and Sign up for the Challenge!

    Are you up for the challenge?

    There are two ways you can participate: 

    Create a Visual Studio Team Services (VSTS) extension that helps developers create, test, and/or deploy Java apps; OR Create a Java app (multiple judging categories) using either the Visual Studio Team Services Eclipse plugin (aka Team Explorer Everywhere) or our JetBrains IntelliJ plugin.


    This challenge is open to:

    • Individuals (who have reached the age of majority in their jurisdiction of residence at the time of entry)
    • Teams of eligible individuals
    • Organizations (up to 50 employees)
    • Large Organizations (with over 50 employees) may compete only for the non-cash Large Organization Recognition Awards.
    • Employees of Large Organizations (with over 50 employees) are eligible as long as they enter the competition independent of their company and meet all other requirements.

    Employees of Microsoft, Devpost, and contractors currently under contract work for Microsoft or Devpost are not eligible.

    If you are employed by a public sector organization, please review the rules pertaining to prize fulfillment to a public sector organization employee.

    How to enter
    1. “Register” to access the submission form, receive important communications, and form teams.
    2. Build an awesome VSTS extension for Java developers or a Java app using the VSTS plugin for Eclipse or IntelliJ.
    3. Visit the Resources pages for VSTS extensions, Visual Studio Team Services Eclipse plugin (aka Team Explorer Everywhere), and JetBrains IntelliJ plugin.
    4. Submit your VSTS extensions to the Visual Studio Marketplace.
    5. Shoot a demo video and/or take screenshots of your functioning app. 
    6. Create your submission on DevPost with a) Your extension/app name, b) VS Marketplace URL or link to your Java App in the "Website URL" field, and c) Banner image for your extension/app via the image uploader.
    7. Submit early! (You can edit your submission as many times as you want before the deadline.)
    Competition Judges

    Paul Barham
    Principal Program Manager

    David Staheli
    Senior Software Engineer Mgr

    Brian Harry
    Corporate VP, Developer Division

    Jamie Cool
    Group Program Manager

    Brian Benz
    Sr. PM Cross-Platform and Open Tools

    Martin Sawicki
    Principal Software Engineer Mgr

    Judging Criteria
    • Usefulness
      Is your app or extension solving a real problem developers have?
    • Innovation
      Is your app or extension creative and unique given the other apps and extensions in the market?
    • Quality
      Does the app or extension function as expected? Is it free of bugs?
    • Design
      Is the UI intuitive and the description informative including useful screenshots?

    Register now

  • Microsoft UK Faculty Connection

    Cool new features for BBC Micro:bit with TouchDevelop



    A new in-browser compiler

    The compilation from the script to the ARM machine code is now done entirely in the browser thanks to the ARM thumb assembler written by Michał Moskal (read the in depth story about building the compiler).

    The new compiler is used by the Block Editor, Touch Develop and Code Kingdoms to create the .hex file on the fly without having to rely on an cloud-based C++ compiler.


    The BBC micro:bit compilation process (see page 10 in the Quick Start book) has been updated below to reflect the new compiler architecture.


    As a result of running the entire compilation process in the browser, the new compiler works completely offline.

    Save and load .hex files to see source code


    Users are now able to import and export scripts as files. For example, they can simply email it or submit them in their classroom portal.


    Compiled .hex files can also be imported back into the web site. This make it easy for a teacher to review the source of a script by simply drag and dropping the file into the editor.

    micro:bit uploader

    This superb tool Automatic uploads  .hex which are complied directly to a micro:bit which is connected via USB. Simply Download the microbit updater and install it to your PC.

  • Microsoft UK Faculty Connection

    Maker.js, JavaScript library for creating and sharing modular line drawings for CNC and laser cutters.


    Maker.js, a Microsoft Garage project, is a JavaScript library for creating and sharing modular line drawings for CNC and laser cutters.


    Getting Started

    Try it now

    Visit the Maker.js Playground to edit and run JavaScript from your browser.

    Each of the demos will also open in the playground so that you can explore and modify their code.

    To use in a web browser

    Download the browser-based version of Maker.js, then upload it to your website:

    Add a script tag in your HTML:

    <script src= 

    In your JavaScript, use the require function to get a reference:

    var makerjs = require('makerjs');
    To use in Node.js

    To depend on Maker.js, run this from the command line:

    npm install makerjs --save

    In your JavaScript, use the require function to get a reference:

    var makerjs = require('makerjs');
  • Microsoft UK Faculty Connection

    Microsoft Azure Storage Explorer - Easily work with Azure Storage - from any platform, anywhere



    Microsoft Azure Storage Explorer (Preview) is a standalone app from Microsoft that allows you to easily work with Azure Storage data.


    Microsoft Azure Storage Explorer is available for OS X, Linux, and Windows (and it's free)

    Download for Windows

    Download for Mac

    Download for Linux



    Click to see the full feature list

    • Mac OS X, Linux, and Windows versions (New in v0.7.20160107)
    • Sign in to view your Storage Accounts – use your Org Account, Microsoft Account, 2FA, etc
    • Add Storage Accounts by account name and key, as well as custom endpoints (New in v0.7.20160107)
    • Add Storage Accounts for Azure China (New in v0.7.20160107)
    • Add blob containers with Shared Access Signatures (SAS) key (New in v0.7.20160107)
    • Local development storage (use storage emulator, Windows-only)
    • ARM and Classic resource support
    • Create and delete blobs, queues, or tables
    • Search for specific blobs, queues, or tables
    • Explore the contents of blob containers
    • View and navigate through directories
    • Upload, download, and delete blobs and folders
    • Open and view the contents text and picture blobs (New in v0.7.20160107)
    • View and edit blob properties and metadata
    • Generate SAS keys
    • Manage and create Stored Access Policies (SAP)
    • Search for blobs by prefix
    • Drag ‘n drop files to upload or download

    Download now from

  • Microsoft UK Faculty Connection

    Windows 10 IOT Core Beginners Walkthrough using Raspberry Pi 2 and the Fez Hat



    In this walkthrough you learn all about

    1. Raspberry Pi 2 device with Windows 10 Iot Core
    2. FEZ HAT sensor hat.
    3. Azure IoT Hub

    The walkthrough will guide you through using a Windows 10 Universal Application, the sensors get the raw data and format it into a JSON string. That string is then shuttled off to the Azure IoT Hub, where it gathers the data and you can communicate commands directly back to the device. This walkthrough will take approx. 90 mins to complete.


    The following sections are intended to setup your environment to be able to create and run your solutions with Windows 10 IoT Core.

    Setting up your Software

    Your machine setup includes the following items already downloaded:

    • Windows 10 (build 10240) or better

    • Visual Studio 2015 or above – Community Edition is sufficient.

      NOTE: If you choose to install a different edition of VS 2015, make sure to do a Custom install and select the checkbox Universal Windows App Development Tools -> Tools and Windows SDK.

    • Windows IoT Core Project Templates. You can download them from here. Alternatively, the templates can be found by searching for Windows IoT Core Project Templates in the Visual Studio Gallery or directly from Visual Studio in the Extension and Updates dialog (Tools > Extensions and Updates > Online).

    • Make sure you’ve enabled developer mode in Windows 10 by following these instructions.

    Download Azure Device Explorer

    Setting up your Devices

    For this project, you have the following items

    To setup your devices perform the following steps:


    1. Plug the GHI FEZ HAT into the Raspberry Pi 2.


      The FEZ hat connected to the Raspberry Pi 2 device

    2. Get your Windows 10 IoT Core SD Card and insert into the micro SD card on the Raspberry Pi device.

    3. Download the Windows 10 IoT Core image as per the instructions on and run the installer on your development PC. You already have Windows IoT core image on the SD card, you still need to follow this step to get the IoT Core Watcher on to your PC.

    4. Connect the Raspberry Pi to a power supply and use the Ethernet cable to connect your device and your development PC. You can do it by plugging in one end of the spare Ethernet cable to the extra Ethernet port on your PC, and the other end of the cable to the Ethernet port on your IoT Core device. (Do this using an on-board port or an auto-crossover USB->Ethernet interface.)


    5. Wait for the OS to boot.  Download the IOT Core Watcher find internet sharing.pdf and follow the instructions to setup internet sharing.

    6. Run the **Windows 10 IoT Core Watcher** Download the IOT Core Watcher utility in your development PC and copy your Raspberry Pi IP address by right-clicking on the detected device and selecting **Copy IP Address**.

             - Click the windows "**Start**" button

             - Type "**WindowsIoTCoreWatcher**" to pull it up in the search results

             - You may want to right click on the program name and select "**Pin to Start**" to pin it to your start screen for easy access

             - Press **Enter** to run it


      <If your device does not show up, follow the "GetIPAddressFromHostName.docx" document for instructions on gaining your IP from your unique device name on the bright label>


    7. Launch an administrator PowerShell console on your local PC. The easiest way to do this is to type _powershell_ in the **Search the web and Windows** textbox near the Windows Start Menu. Windows will find **PowerShell** on your machine. Right-click the **Windows PowerShell** entry and select **Run as administrator**. The PS console will show

    8. ![Running Powershell as Administrator](Images/running-powershell-as-administrator.png?raw=true)

    9. Launch an administrator PowerShell console on your local PC. The easiest way to do this is to type powershell in the Search the web and Windows textbox near the Windows Start Menu. Windows will find PowerShell on your machine. Right-click the Windows PowerShell entry and select Run as administrator. The PS console will show.

      Running Powershell as Administrator

    10. You may need to start the WinRM service on your desktop to enable remote connections. From the PS console type the following command:

      net start WinRM

    11. From the PS console, type the following command, substituting '<IP Address>' with the IP value copied in prev:

      Set-Item WSMan:\localhost\Client\TrustedHosts -Value <machine-name or IP Address>

    12. Type Y and press Enter to confirm the change.

    13. Now you can start a session with you Windows IoT Core device. From you administrator PS console, type:

      Enter-PSSession -ComputerName <IP Address> -Credential localhost\Administrator

    14. In the credential dialog enter the following default password: p@ssw0rd.

      Note: The connection process is not immediate and can take up to 30 seconds.

      If you successfully connected to the device, you should see the IP address of your device before the prompt.

      Connected to the Raspberry using PS

    15. Disconnect from the Powershell Session Exit-PSSession

    Setting up your Azure Account
    Creating an IoT Hub
    1. Enter the Azure portal, by browsing to
    2. Create a new IoT Hub. To do this, click New in the jumpbar, then click Internet of Things, then click Azure IoT Hub.

      Creating a new IoT Hub

      Creating a new IoT Hub

    3. Configure the IoT hub with the desired information:

      • Enter a Name for the hub e.g. iot-sample,
      • Select a Pricing and scale tier (F1 Free tier is enough),
      • Create a new resource group, or select and existing one. For more information, see Using resource groups to manage your Azure resources.
      • Select the Region such as North Europe where the service will be located.

        new iot hub settings

        New IoT Hub Settings

    4. It can take a few minutes for the IoT hub to be created. Once it is ready, open the blade of the new IoT hub, take note of the URI and select the key icon at the top to access to the shared access policy settings:

      IoT hub shared access policies

    5. Select the Shared access policy called iothubowner, and take note of the Primary key and connection string in the right blade. You should copy these into a text file for future use.

      Get IoT Hub owner connection string

    Registering your device

    You must register your device in order to be able to send and receive information from the Azure IoT Hub. This is done by registering a Device Identity in the IoT Hub.

    1. Open the Device Explorer app (C:\Program Files (x86)\Microsoft\DeviceExplorer\DeviceExplorer.exe) and fill the IoT Hub Connection String field with the connection string of the IoT Hub you created in previous steps and click on Update.

      Configure Device Explorer

    2. Go to the Management tab and click on the Create button. The Create Device popup will be displayed. Fill the Device ID field with a new Id for your device (myFirstDevice for example) and click on Create:

      Creating a Device Identity

    3. Once the device identity is created, it will be displayed in the grid. Right click on the identity you just created, select Copy connection string for selected device and take note of the value copied to your clipboard, since it will be required to connect your device with the IoT Hub.

      Copying Device connection information

      Note: The device identities registration can be automated using the Azure IoT Hubs SDK. An example of how to do that can be found here.

    Creating a Universal App

    Now that the device is configured, you will see how to create an application to read the value of the FEZ HAT sensors, and then send those values to an Azure IoT Hub.

    Read FEZ HAT sensors

    In order to get the information out of the hat sensors, you will take advantage of the Developers' Guide that GHI Electronics published.

    1. Find the folder on your USB Stick called 'ghi_elect-windows-iot-183b64180b7c'and open the Microsoft Visual Studio Solution File

    2. After opening the solution you will see several projects. The Developers's Guide comes with examples of many of the shields provided by the company. Right-click the one named GHIElectronics.UAP.Examples.FEZHAT, and select Set as Startup Project.

      Set FEZ HAT examples project as default

      Setting the FEZ hat example as the default project

    3. Ensure that the target platform for the project is set to "ARM":


    4. Build the solution to restore the NuGet packages, and make sure it builds:



      Note: Now you will inspect the sample code to see how it works. Bear in mind that this example is intended to show all the available features of the shield, while in this lab you will use just a couple of them (temperature and light sensors).

    5. Open the MainPage.xaml.cs file and locate the Setup method.

         1: private async void Setup()
         2: {
         3:     this.hat = await GIS.FEZHAT.CreateAsync();
         5:     this.hat.S1.SetLimits(500, 2400, 0, 180);
         6:     this.hat.S2.SetLimits(500, 2400, 0, 180);
         8:     this.timer = new DispatcherTimer();
         9:     this.timer.Interval = TimeSpan.FromMilliseconds(100);
        10:     this.timer.Tick += this.OnTick;
        11:     this.timer.Start();
        12: }

      WHAT DOES THIS CODE DO?: In the first line, the program creates an instance of the FEZ HAT driver and stores it in a local variable. The driver is used for interacting with the shield. Then, after setting the limits for the servos (not used in this lab), a new DispatchTimer is created. A timer is often used in projects of this kind to poll the state of the sensors and perform operations. In this case the OnTick method is called every 100 miliseconds. You can see this method below.

         1: private void OnTick(object sender, object e)
         2: {
         3:     double x, y, z;
         5:     this.hat.GetAcceleration(out x, out y, out z);
         7:     this.LightTextBox.Text = this.hat.GetLightLevel().ToString("P2", CultureInfo.InvariantCulture);
         8:     this.TempTextBox.Text = this.hat.GetTemperature().ToString("N2", CultureInfo.InvariantCulture);
         9:     this.AccelTextBox.Text = $"({x:N2}, {y:N2}, {z:N2})";
        10:     this.Button18TextBox.Text = this.hat.IsDIO18Pressed().ToString();
        11:     this.Button22TextBox.Text = this.hat.IsDIO22Pressed().ToString();
        12:     this.AnalogTextBox.Text = this.hat.ReadAnalog(GIS.FEZHAT.AnalogPin.Ain1).ToString("N2", CultureInfo.InvariantCulture);
        14:     ...
        15: }

      This sample shows how to use the FEZ HAT to get data from the sensors.

    6. To deploy the application to the Raspberry Pi, the device has to be on the same network as the development computer. To run the program, select Remote device in the Debug Target dropdown list:

      Deploy to Remote machine

      Deploying the application to a Remote Machine

    7. If a remote machine has not been selected before, the Select Remote Connection screen will be displayed:

      Remote Connection

      Setting up the Remote Connection

    8. If the device is not auto-detected, the Raspberry Pi IP or name can be entered in the Address field. Otherwise, click the desired device. Change the Authentication Mode to Universal (Unencrypted Protocol) or none if unavaliable:

      Set Authentication mode to Universal

      Setting the Authentication Mode

    9. If you want to change the registered remote device later it can be done in the project Properties page. Right-click the project name (GHIElectronics.UAP.Examples.FEZHAT) and select Properties. In the project Properties' page, select the Debug tab and enter the new device name or IP in the Remote Machine field.

      Change Remote connection

      Changing the Remote Connection Settings

      Note: Clicking the Find button will display the Remote Connection screen.

    10. Click the debug button to start the deployment to the Raspberry Pi. The first deployment will take some time as the remote debug tools, frameworks, and your code all need to be deployed. This could take up to a couple of minutes to completely deploy. You can monitor the status in the Visual Studio "Output" window.


    11. If the program is successfully deployed to the device, the current value of the different sensors will be displayed in the Visual Studio output window. The shield leds will also be turned on and off alternately. The Debug.Writeline code above will display sensor data in the "Output" window:


    Send telemetry data to the Azure IoT Hub

    Now that you know how to read the FEZ HAT sensors data, you will send that information to an Azure IoT Hub. To do that, you will use an existing project located in the Code\WindowsIoTCorePi2FezHat-IoTHubs\Code\WindowsIoTCorePi2FezHat\Begin folder.

    1. Open the Microsoft Visual Studio solution file located in the Code\WindowsIoTCorePi2FezHat-IoTHubs\Code\WindowsIoTCorePi2FezHat\Begin folder.

    2. Before running the application, you must set the Device connection information. Go to the MainPage method of the MainPage.xaml.cs file and replace IOT_CONNECTION_STRING with your device connection string, obtained in previous steps using the Device Explorer app:

         1: ctdHelper = new ConnectTheDotsHelper(iotDeviceConnectionString: "IOT_CONNECTION_STRING",
         2:     organization: "YOUR_ORGANIZATION_OR_SELF",
         3:     location: "YOUR_LOCATION",
         4:     sensorList: sensors);

      Copying Device connection information

      Note: An Organization/School and Location may also be provided. Those values will be part of the telemetry data message, and could be used to get a better classification of the data received.

    3. Before the app can be deployed you need to change the solution target platform, since the Raspberry Pi is based on the ARM architecture. To do that select ARM in the Solution Platform dropdown:

      Set Solution Platform

      Setting the Solution Platform

    4. Insert code for a sensor timer

      1. Instead of the Button_Click method (commented out in the code in green) find the comment "//ADD TIMER_TICK METHOD HERE" and add the code below:

           1: private void Timer_Tick(object sender, object e)
           2: {
           3:     ConnectTheDotsSensor sensor = ctdHelper.sensors.Find(item => item.measurename == "Temperature");
           4:     sensor.value = counter++;
           5:     ctdHelper.SendSensorData(sensor);
           6: }
      2. Now uncomment (remove the //) lines of code like below for the timer to be initiated:

           1: //Button_Click(null, null);
           2: var timer = new DispatcherTimer();
           3: timer.Interval = TimeSpan.FromMilliseconds(500);
           4: timer.Tick += Timer_Tick;
           5: timer.Start();

        Which will make the Timer tick twice a second.

    5. Before adding real sensor information you can run this code to see how the device connects to your Azure IoT Hub and sends information. Run the application.

      Debug Console output

      Debugging in the Output Window

    6. After the app has been successfully deployed, it can start sending messages to the IoT Hub.

      The information being sent can be monitored using the Device Explorer application. Run the application and go to the Data tab and select the name of the device you want to monitor (myFirstDevice in your case), then click on Monitor

      Monitoring messages sent

      Note: If the Device Explorer hub connection is not configured yet, you can follow the instructions explained in the Registering your device section

    7. Now remove the timer created in that flow before you continue. A new timer will be created in the next steps replacing the previous one. Remove the Timer_Tick method you created before and delete the following lines from the MainPage constructor

         1: var timer = new DispatcherTimer();
         2: timer.Interval = TimeSpan.FromMilliseconds(500);
         3: timer.Tick += Timer_Tick;
         4: timer.Start();
    8. Now that the device is connected to the Azure IoT Hub, add some real sensor information. First, you need to add a reference the FEZ HAT drivers. To do so, instead of manually adding the projects included in the GHI Developer's Guide, you will install the NuGet package that they provide. To do this, open the Package Manager Console (Tools/NuGet Package Manager/Package Manager Console) and execute the following command:

      PM> Install-Package GHIElectronics.UWP.Shields.FEZHAT

      Intalling GHI Electronics NuGet package

      Installing the FEZ hat Nuget package

    9. Add a reference to the FEZ HAT library namespace in the MainPage.xaml.cs file. Find all the 'using' statements of code at the top of the file and add the following line of code to the end of them:

         1: using GHIElectronics.UWP.Shields;
    10. Declare the variables that will hold the reference to the following objects, find the comment "//DECLARE VARIABLES HERE" and ad the code below:

      • hat: Of the type Shields.FEZHAT, will contain the fez hat driver object that you will use to communicate with the FEZ hat through the Raspberry Pi hardware.
      • telemetryTimer: of the type DispatchTimer, that will be used to poll the hat sensors at regular basis. For every tick of the timer the value of the sensors will be get and sent to Azure.

           1: FEZHAT hat;
           2: DispatcherTimer telemetryTimer;
    11. You will add the following method to initialize the objects used to handle the communication with the hat, find the comment "//ENTER SETUP HAT ASYNC METHOD HERE" and place below. The TelemetryTimer_Tick method will be defined next, and will be executed every 500 ms according to the value hardcoded in the Interval property.

         1: private async Task SetupHatAsync()
         2: {
         3:     this.hat = await FEZHAT.CreateAsync();
         5:     this.telemetryTimer = new DispatcherTimer();
         7:     this.telemetryTimer.Interval = TimeSpan.FromMilliseconds(500);
         8:     this.telemetryTimer.Tick += this.TelemetryTimer_Tick;
        10:     this.telemetryTimer.Start();
        11: }
    12. The following method will be executed every time the timer ticks, and will poll the value of the hat's temperature sensor, send it to the Azure IoT Hub and show the value obtained. Place the code just below the comment "//ENTER TELEMENTRYTIMER_TICK METHOD HERE"

         1: private void TelemetryTimer_Tick(object sender, object e)
         2: {
         3:     // Temperature Sensor
         4:     var tSensor = ctdHelper.sensors.Find(item => item.measurename == "Temperature");
         5:     tSensor.value = this.hat.GetTemperature();
         6:     this.ctdHelper.SendSensorData(tSensor);
         8:     this.HelloMessage.Text = "Temperature: " + tSensor.value.ToString("N2");
        10:     System.Diagnostics.Debug.WriteLine("Temperature: {0} °C", tSensor.value);
        11: }

      WHAT DOES THIS CODE DO?: The first statement gets the ConnectTheDots sensor from the sensor collection already in place in the project (the temperature sensor was already included in the sample solution). Next, the temperature is polled out from the hat's temperature sensor using the driver object you initialized in the previous step. Then, the value obtained is sent to Azure using the ConnectTheDots's helper object ctdHelper which is included in the sample solution.

      The last two lines are used to show the current value of the temperature sensor to the debug console respectively.

    13. Before running the application you need to add the call to the SetupHatAsync method. Find the Page_Loaded method and place those two lines of code inside the {} curly brackets:

         1: private async void Page_Loaded(object sender, RoutedEventArgs e)
         2: {
         3:     // ADD CALL TO SETUP HAT ASYNC
         4:     // Initialize FEZ HAT shield
         5:     await SetupHatAsync();
         6: }

      Note you need to add the the async word (a modifier) to the event handler to properly handle an asynchronous call to the FEZ HAT initialization method. Place async as shown above between private and void WHAT DOES ASYNCHRONOUS MEAN?

    14. Now you are ready to run the application. Connect the Raspberry Pi with the FEZ HAT and run the application. After the app is deployed you will start to see in the output console the values polled from the sensor. The information sent to Azure is also shown in the console.

      Console output

      Output Window

      You can also check that the messages were successfully received by monitoring them using the Device Explorer

      Telemetry messages received

    Keep building up your project

    Adding extra sensors

    Now that your application is sending information from your device to the cloud for one sensor - lets add some more!

    1. To incorporate the data from the Light sensor you will need to add a new ConnectTheDots sensor:

         1: // Hard coding guid for sensors. Not an issue for this particular application which is meant for testing and demos
         2: List<ConnectTheDotsSensor> sensors = new List<ConnectTheDotsSensor> {
         3:     new ConnectTheDotsSensor("2298a348-e2f9-4438-ab23-82a3930662ab", "Light", "L"),
         4:     new ConnectTheDotsSensor("d93ffbab-7dff-440d-a9f0-5aa091630201", "Temperature", "C"),
         5: };
    2. Next, add the following code to the TelemetryTimer_Tick method to poll the data from the temperature sensor and send it to Azure.

         1: // Light Sensor
         2: ConnectTheDotsSensor lSensor = ctdHelper.sensors.Find(item => item.measurename == "Light");
         3: lSensor.value = this.hat.GetLightLevel();
         5: this.ctdHelper.SendSensorData(lSensor);
         7: System.Diagnostics.Debug.WriteLine("Temperature: {0} °C, Light {1}", tSensor.value.ToString("N2"), lSensor.value.ToString("P2", System.Globalization.CultureInfo.InvariantCulture));

      After running the app you will see the following output in the debug console. In this case two messages are sent to Azure in every timer tick:

      Debug console after adding Light Sensor

      Output Window after Adding the Light Sensor

    Send commands to your device

    Azure IoT Hub is a service that enables reliable and secure bi-directional communications between millions of IoT devices and an application back end. In this section you will see how to send cloud-to-device messages to your device to command it to change the color of one of the FEZ HAT leds, using the Device Explorer app as the back end.

    1. Open the Universal app you created before and add the following method to the ConnectTheDotsHelper.cs file. Add the code to the bottom of the file where you see the comment "//ADD RECIEVE MESSAGE METHOD HERE":

         1: public async Task<string> ReceiveMessage()
         2: {
         3:     if (this.HubConnectionInitialized)
         4:     {
         5:         try
         6:         {
         7:             var receivedMessage = await this.deviceClient.ReceiveAsync();
         9:             if (receivedMessage != null)
        10:             {
        11:                 var messageData = Encoding.ASCII.GetString(receivedMessage.GetBytes());
        12:                 this.deviceClient.CompleteAsync(receivedMessage);
        13:                 return messageData;
        14:             }
        15:             else
        16:             {
        17:                 return string.Empty;
        18:             }
        19:         }
        20:         catch (Exception e)
        21:         {
        22:             Debug.WriteLine("Exception when receiving message:" + e.Message);
        23:             return string.Empty;
        24:         }
        25:     }
        26:     else
        27:     {
        28:         return string.Empty;
        29:     }
        30: }

      The ReceiveAsync method returns the received message at the time that it is received by the device. The call to CompleteAsync() notifies IoT Hub that the message has been successfully processed and that it can be safely removed from the device queue. If something happened that prevented the device app from completing the processing of the message, IoT Hub will deliver it again.

    2. Now you will add the logic to process the messages received. Open the MainPage.xaml.cs file and add a new timer to the MainPage class. Add the new variable to the section "//DECLARE VARIABLES HERE":

         1: DispatcherTimer commandsTimer;
    3. Add the following method, which will be in charge of processing the commands where it says "//ENTER COMMANDTIMER_TICK METHOD HERE":

         1: private async void CommandsTimer_Tick(object sender, object e)
         2: {
         3:     string message = await ctdHelper.ReceiveMessage();
         5:     if (message != string.Empty)
         6:     {
         7:         System.Diagnostics.Debug.WriteLine("Command Received: {0}", message);
         8:         switch (message.ToUpperInvariant())
         9:         {
        10:             case "RED":
        11:                 hat.D2.Color = new FEZHAT.Color(255, 0, 0);
        12:                 break;
        13:             case "GREEN":
        14:                 hat.D2.Color = new FEZHAT.Color(0, 255, 0);
        15:                 break;
        16:             case "BLUE":
        17:                 hat.D2.Color = new FEZHAT.Color(0, 0, 255);
        18:                 break;
        19:             case "OFF":
        20:                 hat.D2.TurnOff();
        21:                 break;
        22:             default:
        23:                 System.Diagnostics.Debug.WriteLine("Unrecognized command: {0}", message);
        24:                 break;
        25:         }
        26:     }
        27: }

      It reads the message received, and according to the text of the command, it set the value of the hat.D2.Color attribute to change the color of the FEZ HAT's LED D2. When the "OFF" command is received the TurnOff() method is called, which turns the LED off.

    4. Lastly, add the following piece of code to the SetupHatAsync method in order to initialize the timer used to poll for messages.

         1: this.commandsTimer = new DispatcherTimer();
         2: this.commandsTimer.Interval = TimeSpan.FromSeconds(60);
         3: this.commandsTimer.Tick += this.CommandsTimer_Tick;
         4: this.commandsTimer.Start();

      Note: The recommended interval for HTTP/1 message polling is 25 minutes. For debugging and demostration purposes a 1 minute polling interval is fine (you can use an even smaller interval for testing), but bear it in mind for production development. Check this article for guidance. When AMQP becomes available for the IoT Hub SDK using UWP apps a different approach can be taken for message processing, since AMQP supports server push when receiving cloud-to-device messages, and it enables immediate pushes of messages from IoT Hub to the device. The following article explains how to handle cloud-to-device messages using AMQP.

    5. Deploy the app to the device and open the Device Explorer app.

    6. Once it's loaded (and configured to point to your IoT hub), go to the Messages To Device tab, check the Monitor Feedback Endpoint option and write your command in the Message field. Click on Send

      Sending cloud-to-device message

    7. After a few seconds the message will be processed by the device and the LED will turn on in the colour you selected. The feedback will also be reflected in the Device Explorer screen after a few seconds.



    In this lab, you have learned how to create a Universal app that reads from the sensors of a FEZ hat connected to a Raspberry Pi 2 running Windows 10 IoT Core, and upload those readings to an Azure IoT Hub. You also added more sensors to your application and implemented how to use the IoT Hubs Cloud-To-Device messages feature to send simple commands to your devices.

  • Microsoft UK Faculty Connection

    Generating the correct logos for your Windows 10 UWP application package manifest


    So have you struggled to generate all the required tile sizes for your Windows UWP application.

    Well fear not this is No Longer a chore!!

    Welcome to Visual Studio 2015 UWP Tile Generator which is available for FREE in the Visual Studio Gallery.

    There are some key things about developing logos for apps! and this is one of my favorite blogs on this very subject.

    Your app logo is the impression you give people of your app the first time they find it, and every time they launch it so check out How to make an app logo that doesn’t suck from In this post, the author walks you through creating an app logo from beginning to end for a fictional app.

    So how does the UWP Tile Generator work.

    Simply right click on a square png and select Generate UWP Tiles.

    Within seconds you'll have all the recommended tile sizes and what's more the extension will also update your package manifest so you don't have to.

    This extension is designed to save time as well as adhere to the Windows 10 tile guidelines found here:

  • Microsoft UK Faculty Connection

    Welcome to the Imagine Cup 2016!


    The Imagine Cup is Microsoft at its best: inspirational, empowering and energetic.

    Team up with friends or fellow developers to enter your world-changing software innovations in the U.K. Imagine Cup – a global student technology competition presented by Microsoft.


    Whether it's a game-changing app which solves a global problem, an innovative gee-whiz quality app with mind-blowing consumer appeal, or an addictive game you simply can’t stop playing, we want to help you leave your mark on the world. Who knows where the Imagine Cup can lead you to?

    Team Colinked from the United Kindom, won $50,000 as the first-place winners of the Microsoft Imagine Cup Innovation Competition in 2013 with their mobile phone application “soundSYNK”. They were then invited to the Microsoft Ventures Accelerator in London and after securing investment they are now running their technology start-up company called Gloop.

    Imagine Cup UK – Key Dates

    Tuesday 1st of March
    Online National Preliminaries Round:

    All Imagine Cup contestants are required to submit a project proposal. This should be a Microsoft Word or PDF document no longer than ten pages, or a PowerPoint presentation no longer than twenty slides, which explains your project and your team: who your team is; what your project does; who your project is for; and how you will bring your project to market.

    Friday 11th of MarchOnline National Semifinalists Announced:

    Imagine Cup contestants who have been successful in the first stage of the Imagine Cup competition and qualified through to the Online National Semifinal Round will be notified via e-mail by 18.00pm.

    Tuesday 15th of MarchOnline National Semifinal Round:

    Imagine Cup contestants who have successfully proceeded to this stage of the competition will be required to submit a presentation video of their project in which your entire team appears on camera to deliver the presentation as if to a panel of judges. This presentation should explain your project and your team: who your team is; what your project does; who your project is for; and how you will bring your project to market. Your video must be no longer than ten minutes and it may not have any edits or added visual effects. You may not move the camera during your presentation. In all respects it should replicate the experience of a judge sitting and watching your live presentation.

    Friday 1st of April- National Finalists Announced:

    The three finalists for the UK Imagine Cup National Final from each of the three categories will be announced by 18.00pm. All successful nine finalists will be notified via e-mail.

    Friday 8th of April National Final Presentation Submission Deadline:

    All finalists must submit their presentation deck to the Imagine Cup UK team PowerPoint presentations should have a 16:9 aspect ratio and videos should be Windows Media Video file types. The deck submitted will be final and no changes will be allowed on the day for the UK Imagine Cup National Final.

    Friday 15th of April- UK Imagine Cup National Final:

    The UK Imagine Cup National Final will be taking place at the Microsoft UK Headquarters in Thames Valley Park, Reading.


    Requirements for Imagine Cup UK National Finalists:

    If you have been selected to participate in the UK Imagine Cup National Final you will receive an email on the April 1st, which will include key details around what time to arrive on the day of the finals and what time your pitch slot is.

    National Finalists are required to prepare a 5-minute presentation to be pitched in front of our panel of judges and leading industry experts. You will be strictly kept to the 5-minute time slot which you have been allocated. This presentation must include slides to be projected during the pitch and any video footage to demo your project. Please ensure that you bring any laptops you wish to use in order to demo your project. No additional demo equipment will be allowed so we recommend you keep technical set-up simple.

    Register your team now at

  • Microsoft UK Faculty Connection

    Microsoft Student Hackers! GitHub resources for student developing with Microsoft tools and tech



    GitHub is the home of a strong open source community, including hundreds of Microsoft projects, and students are a critical part of this community. 

    GitHub announced the GitHub Student Developer Pack, a collection of resources for students to get started with access to great developer tools and services offerings from dozens of partners.

    Students can also get free access to many more Microsoft tools and developer offerings through DreamSpark, including Azure, SQL Server, R Server, Visual Studio training courses and Windows Store developer accounts.

    So make sure you activate your DreamSpark account and get started today.

    We have also developed a one stop shop for resource for students on GitHub with the MSFTImagine GitHub Repo 


    So Welcome to the ultimate Microsoft Hackathon Meta Resource!

    Check out the MSFTImagine GitHub Repo 

    This repo contains for a rich set of information to help you with your hack. Let’s Start Hacking!

    Microsoft APIs

    Start Writing code for face detection, computer vision and more with Project Oxford.

    Harness the power of Cortana, Bing, and Skype for your app!

    Or get your thinker thinking with the whole list of Microsoft APIs!

  • Microsoft UK Faculty Connection

    Getting started on Docker - Azure Hands-on Lab for Educators and Students




    Do you want learn all about Docker? Check out this set of exercises for getting started with running Docker on Azure.

    Simply follow the exercises you will learn how to setup your local environment with your own private Docker lab by installing Ubuntu on a Virtual Machine using Hyper-V or VirtualBox,

    if your an academic you can start building this into your curricula using Azure Educator Grants 

    These labs are intented to help you get familiar with Docker by trying out different commands, installing containers and creating Dockerfiles for your own images.

    You will also learn how to setup a private Docker registry hosted on Azure and how to deploy one or more containers, also, running on Azure.


    Before we get started you need to install a few things locally in order to create your own private lab and in order to interact with remote resources on Azure.

    We recommend installing and configuring the 3 prerequisites as mentioned in the tutorials below in order to get a local setup that is consistent with what is used in the exercises, and to get a client environment that is fairly close to what you would have on a linux machine (even though we are running Windows).


    Private Lab

    To get a better understanding of working with Docker and Linux (Ubuntu specifically) we highly recommend starting with setting up a private lab. Here you will install Ubuntu server in a virtual machine on your local machine. And you will learn to install and update the Docker daemon within Ubuntu.

    The private lab is not necessary to complete the exercises below, so please consider this step optional. You might consider skipping or including this part based on the time available to complete this hands-on lab.

    Getting Started


    Once you have the prerequisites in order you can follow the exercises outlined below.

    Please note that certain exercises have two routes you can take depending on, which fits best with the system that you are running your local lab on (ie. running Mac OS, Windows 8 or Windows 10).

    Docker on Azure

  • Microsoft UK Faculty Connection

    Imagine Cup 2016–Dream it Build it. Live It – Global Student Competition



    What's Imagine Cup?

    Imagine Cup is the world's premier student technology competition. We invite all eligible students to use their imagination and passion to create a technology solution in one of our competitions and challenges. You can find out more about Imagine cup here, or take a look at this year's competitions!


    Ready to Get Started?

    Here's how to sign up, pick a competition, and get started on your project!

    Sign Up

    Sign In to log in with your Microsoft account! Don't have a Microsoft account? They're free and give you access to great services like Outlook Email, XBox Live, and more!

    Register for Competitions

    Head over to the Competition Categories page to find a competition that's right for your skill and interest level. You can get your feet wet with the Big Idea Pitch challenge, or dive right into the Games, Innovation or World Citizenship competitions. Click on any of the categories to read more about it, and click 'Register Now' to sign up!

    Go To Your Dashboard

    From your Imagine Cup dashboard, you can fill out your member profile and tell us about yourself. The Dashboard is also where you'll find the competitions you've signed up for. As we add new competitions to the categories you're registered for, we'll automatically let you know about them, so you can decide if you'd like to participate! Follow  the Imagine Cup Dashboard get started.

    Submit Your Project

    Ready to submit your project to the judges? Click the 'Submit' link next to the competition on your Dashboard to get underway! Every competition's requirements are different, so check the Official Rules to find out what you'll need to submit.

    Create a Team

    Many of our competitions are intended for teams, so you may also need to create a team to participate. If a competition requires a team, you'll be able to pick your team right on the Submission page. If you don't have a team yet, you can create one in just a few moments -- you just need a team name and team country, and you're ready to go.

    Send It Off

    Once you've filled out all the fields on the Submission page, and uploaded any required files, click Submit to send your project to the Imagine Cup judging team. Competitions close at different times during the year; check the Official Rules to find out when yours ends. We announce winners via email and on the Imagine Cup site, so if you win, you'll be notified of your victory.

    You're Ready To Compete!

    You're all signed up and ready to participate in Imagine Cup 2016! Good luck, and have fun!

Page 1 of 112 (1,117 items) 12345»