How Technology Companies Can Connect with Generation Z

Richard Emmerson - Senior Consultant, Communications Systems

By: Richard Emmerson
Senior Consultant, Communications Systems

24th January 2018

Home » Insights » Communications & IoT

Generation Z (referring to the cohort born between the mid-1990s to mid-2000s) is the first generation to never know life without the internet, social media and technology with high-resolution colour screens…. just let that sink in for a second.

This new wave of young people will be the future-shapers of technology and innovation in our industry and are already strongly familiar with today’s technological achievements (smartphones, tablets and VR/AR entertainment systems to name a few).

In fact, switching between screens, devices, accounts and platforms all comes naturally to generation Z, as if intuitive; all the while juggling multiple tasks and projects without, seemingly, sacrificing the quality of their work. Therefore, we shouldn’t be surprised, or worried, if we see them on their phones all day, it’s their default position for communicating with colleagues, taking notes and doing research. This lends itself to the question:

How do you connect with a generation that is, in many ways, already connected?

Having been an Assessor for the Engineering Education Scheme (EES) Applied Programme, an educational classroom scheme that aims to inspire young people into pursuing a career into Science, Technology, Engineering and Mathematics through carrying out projects in ‘real-life’ business conditions; I believe that first-hand experience may hold the answer.

The opportunity for young people to experience real-life exposure to our industry has, I think, a two-fold benefit. Firstly, so that they may be inspired and motivated to lead the way in the latest cutting-edge technology and secondly, so that we, collectively in the industry, may learn from a new and fresh perspective on what we are currently doing in our methods and practises.

With the latter in mind, here are 3 things I think a company in the technology/electronics industry can do to gain maximum benefit from their newest and youngest workforce.

1. Mix and match project teams

While selecting a project team involves much strategic decision-making, many project managers may favour in picking teams stocked with their most experienced and specialist experts. From personal experience during projects, I’ve found that the most effective working groups often feature a mix of top experts with junior and lower-level professionals.

2. Let Junior Engineers lead project work (when appropriate) with guidance

Giving junior engineers the chance to contribute as to what direction the project should be heading will help them integrate quickly and develop the confidence they need to bring their skills and education to the table. At the same time, gentle guidance can be given here so that they can learn from each team member’s unique areas of expertise and stay on track with the project timeline. Life skills, such as teamwork, time management, and project management skills can also develop faster.

3. Create a mentorship scheme

Similar to my previous point, a mentorship scheme goes one step further that project-based guidance. A mentorship scheme is extremely important for young people, while information is available at a touch of a button; real-life experiences can only be taught and cannot be downloaded. Such relationships encourage knowledge transfer and skills development, honing softer skills that will ease them into the established ways of working.

Save

Save

Save

Save

Save

Save

Save

Save

Save

Save

Save

Save

Save

Save

Save

Generation Z (referring to the cohort born between the mid-1990s to mid-2000s) is the first generation to never know life without the internet, social media and technology with high-resolution colour screens…. just let that sink in for a second.

This new wave of young people will be the future-shapers of technology and innovation in our industry and are already strongly familiar with today’s technological achievements (smartphones, tablets and VR/AR entertainment systems to name a few).

In fact, switching between screens, devices, accounts and platforms all comes naturally to generation Z, as if intuitive; all the while juggling multiple tasks and projects without, seemingly, sacrificing the quality of their work. Therefore, we shouldn’t be surprised, or worried, if we see them on their phones all day, it’s their default position for communicating with colleagues, taking notes and doing research. This lends itself to the question:

How do you connect with a generation that is, in many ways, already connected?

Having been an Assessor for the Engineering Education Scheme (EES) Applied Programme, an educational classroom scheme that aims to inspire young people into pursuing a career into Science, Technology, Engineering and Mathematics through carrying out projects in ‘real-life’ business conditions; I believe that first-hand experience may hold the answer.

The opportunity for young people to experience real-life exposure to our industry has, I think, a two-fold benefit. Firstly, so that they may be inspired and motivated to lead the way in the latest cutting-edge technology and secondly, so that we, collectively in the industry, may learn from a new and fresh perspective on what we are currently doing in our methods and practises.

With the latter in mind, here are 3 things I think a company in the technology/electronics industry can do to gain maximum benefit from their newest and youngest workforce.

1. Mix and match project teams

While selecting a project team involves much strategic decision-making, many project managers may favour in picking teams stocked with their most experienced and specialist experts. From personal experience during projects, I’ve found that the most effective working groups often feature a mix of top experts with junior and lower-level professionals.

2. Let Junior Engineers lead project work (when appropriate) with guidance

Giving junior engineers the chance to contribute as to what direction the project should be heading will help them integrate quickly and develop the confidence they need to bring their skills and education to the table. At the same time, gentle guidance can be given here so that they can learn from each team member’s unique areas of expertise and stay on track with the project timeline. Life skills, such as teamwork, time management, and project management skills can also develop faster.

3. Create a mentorship scheme

Similar to my previous point, a mentorship scheme goes one step further that project-based guidance. A mentorship scheme is extremely important for young people, while information is available at a touch of a button; real-life experiences can only be taught and cannot be downloaded. Such relationships encourage knowledge transfer and skills development, honing softer skills that will ease them into the established ways of working.

Save

Save

Save

Save

Save

Save

Save

Save

Save

Further Reading

Getting started with IoT Core and C# on the Raspberry Pi

Getting started with IoT Core and C# on the Raspberry Pi

David Kyle - Principal Consultant, Data Exploitation

By: David Kyle
Principal Consultant, Data Exploitation

2nd August 2017

Home » Insights » Communications & IoT

Most people reading this are no doubt familiar with the Raspberry Pi. It was originally designed for the education market but its combination of price, size, and IO (Input/Output) capability has made it a huge success for both the home hobbyist and professional seeking to create a prototype.

It’s a physically small single board machine with a set of IO pins that can be used to control real world functionality; that includes everything from lights, to central heating systems, and anything else you might be considering for your IoT (Internet of Things) project.

I’ve spent a good part of my career working with the Microsoft.NET framework and I think it’s a great platform. I’ve also spent a lot of time working with embedded firmware, and that tends to be C code. Unfortunately, and if you’re a C# expert unfamiliar with C, then the transition to the embedded world can be a jarring experience. To make matters worse, the Raspberry Pi was originally based on a Linux distribution which is another hurdle to the C# developer.

Of course it’s possible to learn new languages, but maybe you would just prefer to use the tools you already know and this is where “Windows IoT core” comes in. Windows IoT core is a free version of Windows 10 that runs on the Raspberry Pi, and lets you jump straight into embedded IoT using your existing C# skills. You’ll get all the benefits of Visual Studio and C# with the added bonus of control of the Raspberry Pi IO pins.

Step 1: Install IoT Dashboard

For this blog, I decided it would be fun to create a beginner’s guide that’s as much aimed at the hobbyist as it is the C# professional. So let’s get started by installing some of the tools you will need. Unlike a traditional PC, the Raspberry Pi doesn’t include a hard disk, and instead uses an SD memory card on which you will need to install IoT core using a Microsoft 10 application called “Windows 10 IoT core Dashboard”. You can get this by following this link (or just Google “IoT Dashboard”).

Once you’ve got IoT Dashboard installed, you need to choose the “Set up a new device” option, and then select “Download and Install”. Make sure you have the empty SD card in your Windows 10 desktop machine, choose the options I’ve shown (pictured), and select a password of your choice. IoT Dashboard will then fetch the IoT core image from Microsoft and write it to your flash card.

Please note: It is crucially important to have a completely clean and empty SD card; otherwise IoT Dashboard will report back errors without any indication of the cause. A great tool you can use is called “HDD LLF Low Level Format” and can be downloaded by following this link.

Running the HDD LLF Low Level Format tool will remove all partitions and data from your memory card. Just make sure that before you click “format this device” that you have definitely selected the correct hard disk. The tool will be just as happy to format your windows desktop hard disk if you select the wrong option (and you really don’t want to do this!).

Step 2: Start your Raspberry Pi

With that done, take the memory card out of your PC, insert it into the Raspberry Pi, connect power to the USB port, an Ethernet cable to your router, and the Raspberry Pi should boot. For power, I used a Samsung USB phone charger rated at 2 Amps. If you also connect a monitor via an HDMI lead you will see the familiar Windows boot sequence.

During boot up you will be asked a few setup questions, and if you have a keyboard and mouse plugged into the Raspberry Pi you can answer them. Otherwise, just ignore them and they will time out. When boot up is complete, you should get to the screen you can see on the left, but unfortunately that didn’t happen to me.




Step 3: Fix the Boot Error!


The first time I booted my Raspberry Pi everything worked as it should. However, after I re-imaged the memory card with the IoT Dashboard tool, I was presented with the blue screen (shown): “Your PC ran into a problem and needs to restart. We’re just collecting some error info, and then we’ll restart for you”. The Raspberry Pi then rebooted, returned to the same error screen and looped endlessly. This proved to be quite a frustration with lots of internet forum speculation as to the cause and usually erroneously blaming the flash card.

The way to fix this is to always use the HDD-LLF-Low-Level-Format tool before you use IoT Dashboard to image the memory card. If you do this, then everything should work fine. The format tool makes sure you have erased any partitions or data that might not be visible in Windows 10 but will stop the Raspberry Pi.

Step 4: Connect to and manage the Raspberry Pi

With the Raspberry Pi running you can now connect to it. Double check your Ethernet lead is connected, and then start up the IoT Dashboard application on your Windows desktop. Navigate to the “My Devices” option, and if everything has worked you will see your Raspberry Pi together with its IP address. Right click your Raspberry Pi, and select the “Open In Device Portal”. This will open a web site that’s hosted by your Raspberry Pi, and the first thing you will need to do is to enter the web site credentials. These are “Administrator”, and the password you entered when you first used IoT Device Portal to create your Raspberry Pi image.

The management portal lets you configure your raspberry Pi, change its network setup, install applications, and view its status.

Earlier we connected a monitor to the Raspberry Pi, but you can also use a Windows 10 app to view the Raspberry Pi display from your PC. (If you do this you won’t need to tie up your monitor). To make this work, make sure you enable the “Windows IoT Remote Server” option as shown in the picture, and then return to the IoT device portal, right click on your Raspberry Pi, and then choose “Launch IoT Remote Client”. If it’s the first time you’ve done this you will be taken to the Windows App store to install the application. If you find you get a blank screen when you start the application, double check you have followed these instructions correctly.

Step 5: Get Visual Studio ready

Before you can start creating code, you’re going to need to download and install Visual Studio. If you are reading this blog and know C# you’ve probably already done this. You can find the free Visual Studio Community 2017 edition from the Microsoft web site.

Next, and once you’ve got Visual Studio running, you need to get the project templates for a Windows IoT core project. To do this, Google “Windows IoT Core Project Templates for VS 2017”, and then follow the links to download “WindowsIoTCoreTemplatesDev15.vsix”. Run the template installer and when this is done (it takes a while!) you will find some new project templates in Visual Studio.

Step 6: Create and compile some code

We’re going to create the simplest code possible, and this is a “Windows IoT Core” application that is very much like a windows service on a desktop PC. It runs in the background, and starts as soon as the Raspberry Pi boots up. We’ll write the application so that it flashes an LED on and off. So, start Visual Studio, create a Windows IoT Core application, and then replace the application code with the below contents. (If you already know C#, then this is the easy bit!)

Save

Save

Save

Save

Save

Save

Save

Save

Save

Save

Save

Save

Save

Save

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net.Http;
using Windows.ApplicationModel.Background;
using Windows.Devices.Gpio;
using System.Threading.Tasks;
using System.Threading;
using System.IO;
namespace BackgroundApplication1
{

public sealed class StartupTask : IBackgroundTask

{

public void Run(IBackgroundTaskInstance taskInstance)

{

GpioController gpioController = GpioController.GetDefault();

GpioPin pin = gpioController.OpenPin(26);

pin.SetDriveMode(GpioPinDriveMode.Output);

while (1 == 1)

{

pin.Write(GpioPinValue.High);

Task.Delay(5).Wait();

pin.Write(GpioPinValue.Low);

Task.Delay(5).Wait();

}

}

}

}

Step 7: Deploy and debug your code

Now we’ve got the code created you need to compile it like you do any other Visual Studio Project. You can then deploy it to the Raspberry Pi.

If you’ve not written embedded code before, then cross compilation will be a new concept to you. But it’s very simple. We are using Visual Studio to generate the compiled code, but rather than running it on the PC, we are going to use Visual Studio to transfer it to the Raspberry Pi, and then debug the code running on the Raspberry Pi using Visual Studio that is running on your desktop PC.

The first thing to do is select the “Remote Machine” option in Visual Studio (take a look at the diagram above) and this will launch the dialogue options shown. Set the address to the IP address of your Raspberry Pi, and set the Authentication Mode to “Universal (Unencrypted Protocol”). Next, right click on your project, and select “Deploy”. This will install your project onto the Raspberry Pi. Alternatively, you can click the green “Go” triangle to start your application, and you will be able to debug in Visual Studio just like any other application. At least that’s the theory ……

…. I experienced a lot of problems with Visual Studio refusing to talk to the Raspberry Pi, working one moment, and then failing the next. If this happens to you, then connect to the Raspberry Pi web portal and then navigate to the Processes\Details option. This shows all of the processes running on the Raspberry Pi, and if there are any called “MSVSMON” then kill these instances and reboot the Raspberry Pi. At least for me, this fixed all Visual Studio connection issues.

You will also discover that there is an option in the web portal called “Debug Settings” with a “Start” button to enable Visual Studio remote debugger. In my case, this needed to remain off for Visual Studio debugging to work (i.e. clicking the option stopped the visual studio debugger – perhaps a little confusing and counter intuitive!).

Once you have visual studio running, and you have deployed your application to the Raspberry Pi, you should be able to see it in the web management portal under the “Apps Manager” option. You can use this to start and stop an application; configure it to start automatically at boot up, and to uninstall the application.

Step 8: Beginners tips and words of warning

The code in the example is very simple, and all it does is use C# to open a GPIO pin, set the pin to be an output, and then enter an eternal loop to switch the pin on and off. You can easily connect this to an LED to prove that it’s working.

If you’re an absolute beginner, I’d recommend you buy a ‘bread board’ and some connecting leads for your experiments. It’s also very important that you understand the current limits of the Raspberry Pi GPIO pins. The pins can only supply enough electrical energy to drive an LED, and if you try and draw any more than this (for example to operate a relay) you will almost certainly damage the Raspberry Pi. To be safe, take a look at the Raspberry Pi website to find the maximum current draw, and make sure you don’t exceed this (If you “Google Raspberry Pi relay driver” you will be able to find out how to solve the problem. You can either build your own driver circuits, or alternatively buy modules designed for the purpose).

You also need to know which physical header pins on the Raspberry Pi correspond to which pin numbers you access in your code. There is a very helpful document on the Microsoft web site that gives you the pin mappings, but for convenience I’ve also summarised the information in the table at the end of this blog. In our diagram above we have the LED connected to ground on pin 39 (bottom left pin), and GPIO26 on pin 37 (second from bottom left pin). If your LED doesn’t flash, make sure you have connected it the correct way round!

Step 9: Build your IoT project!

So hopefully you found this a useful read, and hopefully it will get you past any of the initial setup hurdles in getting you started with your C# IoT project. Finally, and if you’re a skilled IoT developer, we are always looking for good engineers, and if you’re an IoT start up looking to take your prototype to the next level, our team of IoT engineers would love to talk!

Save

Save

GPIO#Power-on PullAlternate FunctionsHeader Pin
2PullUpI2C1 SDA3
3PullUpI2C1 SCL5
4PullUp7
5PullUp29
6PullUp31
7PullUpSPI0 CS126
8PullUpSPI0 CS024
9PullDownSPI0 MISO21
10PullDownSPI0 MOSI19
11PullDownSPI0 SCLK23
12PullDown32
13PullDown33
16PullDown36
17PullDown11
18PullDownSPI1 CS012
19PullDown35
20PullDown38
21PullDownSPI1 MISO40
22PullDownSPI1 MOSI15
23PullDownSPI1 SCLK16
24PullDown18
25PullDown22
26PullDown37
27PullDown13
35PullDownRed Power LED
47PullDownGren Activity LED
GND9,25,39,6,14,20,30,34
5V Power2,4
3.3V Power1

Most people reading this are no doubt familiar with the Raspberry Pi. It was originally designed for the education market but its combination of price, size, and IO (Input/Output) capability has made it a huge success for both the home hobbyist and professional seeking to create a prototype.

It’s a physically small single board machine with a set of IO pins that can be used to control real world functionality; that includes everything from lights, to central heating systems, and anything else you might be considering for your IoT (Internet of Things) project.

I’ve spent a good part of my career working with the Microsoft.NET framework and I think it’s a great platform. I’ve also spent a lot of time working with embedded firmware, and that tends to be C code. Unfortunately, and if you’re a C# expert unfamiliar with C, then the transition to the embedded world can be a jarring experience. To make matters worse, the Raspberry Pi was originally based on a Linux distribution which is another hurdle to the C# developer.

Of course it’s possible to learn new languages, but maybe you would just prefer to use the tools you already know and this is where “Windows IoT core” comes in. Windows IoT core is a free version of Windows 10 that runs on the Raspberry Pi, and lets you jump straight into embedded IoT using your existing C# skills. You’ll get all the benefits of Visual Studio and C# with the added bonus of control of the Raspberry Pi IO pins.

Step 1: Install IoT Dashboard

For this blog, I decided it would be fun to create a beginner’s guide that’s as much aimed at the hobbyist as it is the C# professional. So let’s get started by installing some of the tools you will need. Unlike a traditional PC, the Raspberry Pi doesn’t include a hard disk, and instead uses an SD memory card on which you will need to install IoT core using a Microsoft 10 application called “Windows 10 IoT core Dashboard”. You can get this by following this link (or just Google “IoT Dashboard”).

Once you’ve got IoT Dashboard installed, you need to choose the “Set up a new device” option, and then select “Download and Install”. Make sure you have the empty SD card in your Windows 10 desktop machine, choose the options I’ve shown (pictured), and select a password of your choice. IoT Dashboard will then fetch the IoT core image from Microsoft and write it to your flash card.

Please note: It is crucially important to have a completely clean and empty SD card; otherwise IoT Dashboard will report back errors without any indication of the cause. A great tool you can use is called “HDD LLF Low Level Format” and can be downloaded by following this link.

Running the HDD LLF Low Level Format tool will remove all partitions and data from your memory card. Just make sure that before you click “format this device” that you have definitely selected the correct hard disk. The tool will be just as happy to format your windows desktop hard disk if you select the wrong option (and you really don’t want to do this!).

Step 2: Start your Raspberry Pi

With that done, take the memory card out of your PC, insert it into the Raspberry Pi, connect power to the USB port, an Ethernet cable to your router, and the Raspberry Pi should boot. For power, I used a Samsung USB phone charger rated at 2 Amps. If you also connect a monitor via an HDMI lead you will see the familiar Windows boot sequence.

During boot up you will be asked a few setup questions, and if you have a keyboard and mouse plugged into the Raspberry Pi you can answer them. Otherwise, just ignore them and they will time out. When boot up is complete, you should get to the screen you can see on the left, but unfortunately that didn’t happen to me.

Step 3: Fix the Boot Error!


The first time I booted my Raspberry Pi everything worked as it should. However, after I re-imaged the memory card with the IoT Dashboard tool, I was presented with the blue screen (shown): “Your PC ran into a problem and needs to restart. We’re just collecting some error info, and then we’ll restart for you”. The Raspberry Pi then rebooted, returned to the same error screen and looped endlessly. This proved to be quite a frustration with lots of internet forum speculation as to the cause and usually erroneously blaming the flash card.

The way to fix this is to always use the HDD-LLF-Low-Level-Format tool before you use IoT Dashboard to image the memory card. If you do this, then everything should work fine. The format tool makes sure you have erased any partitions or data that might not be visible in Windows 10 but will stop the Raspberry Pi.

Step 4: Connect to and manage the Raspberry Pi

With the Raspberry Pi running you can now connect to it. Double check your Ethernet lead is connected, and then start up the IoT Dashboard application on your Windows desktop. Navigate to the “My Devices” option, and if everything has worked you will see your Raspberry Pi together with its IP address. Right click your Raspberry Pi, and select the “Open In Device Portal”. This will open a web site that’s hosted by your Raspberry Pi, and the first thing you will need to do is to enter the web site credentials. These are “Administrator”, and the password you entered when you first used IoT Device Portal to create your Raspberry Pi image.

The management portal lets you configure your raspberry Pi, change its network setup, install applications, and view its status.

Earlier we connected a monitor to the Raspberry Pi, but you can also use a Windows 10 app to view the Raspberry Pi display from your PC. (If you do this you won’t need to tie up your monitor). To make this work, make sure you enable the “Windows IoT Remote Server” option as shown in the picture, and then return to the IoT device portal, right click on your Raspberry Pi, and then choose “Launch IoT Remote Client”. If it’s the first time you’ve done this you will be taken to the Windows App store to install the application. If you find you get a blank screen when you start the application, double check you have followed these instructions correctly.

Step 5: Get Visual Studio ready

Before you can start creating code, you’re going to need to download and install Visual Studio. If you are reading this blog and know C# you’ve probably already done this. You can find the free Visual Studio Community 2017 edition from the Microsoft web site.

Next, and once you’ve got Visual Studio running, you need to get the project templates for a Windows IoT core project. To do this, Google “Windows IoT Core Project Templates for VS 2017”, and then follow the links to download “WindowsIoTCoreTemplatesDev15.vsix”. Run the template installer and when this is done (it takes a while!) you will find some new project templates in Visual Studio.

Step 6: Create and compile some code

We’re going to create the simplest code possible, and this is a “Windows IoT Core” application that is very much like a windows service on a desktop PC. It runs in the background, and starts as soon as the Raspberry Pi boots up. We’ll write the application so that it flashes an LED on and off. So, start Visual Studio, create a Windows IoT Core application, and then replace the application code with the below contents. (If you already know C#, then this is the easy bit!)

Save

Save

Save

Save

Save

Save

Save

Save

Save

Save

Save

Save

Save

Save

Save

Save

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net.Http;
using Windows.ApplicationModel.Background;
using Windows.Devices.Gpio;
using System.Threading.Tasks;
using System.Threading;
using System.IO;
namespace BackgroundApplication1
{

public sealed class StartupTask : IBackgroundTask

{

public void Run(IBackgroundTaskInstance taskInstance)

{

GpioController gpioController = GpioController.GetDefault();

GpioPin pin = gpioController.OpenPin(26);

pin.SetDriveMode(GpioPinDriveMode.Output);

while (1 == 1)

{

pin.Write(GpioPinValue.High);

Task.Delay(5).Wait();

pin.Write(GpioPinValue.Low);

Task.Delay(5).Wait();

}

}

}

}

Step 7: Deploy and debug your code

Now we’ve got the code created you need to compile it like you do any other Visual Studio Project. You can then deploy it to the Raspberry Pi.

If you’ve not written embedded code before, then cross compilation will be a new concept to you. But it’s very simple. We are using Visual Studio to generate the compiled code, but rather than running it on the PC, we are going to use Visual Studio to transfer it to the Raspberry Pi, and then debug the code running on the Raspberry Pi using Visual Studio that is running on your desktop PC.

The first thing to do is select the “Remote Machine” option in Visual Studio (take a look at the diagram above) and this will launch the dialogue options shown. Set the address to the IP address of your Raspberry Pi, and set the Authentication Mode to “Universal (Unencrypted Protocol”). Next, right click on your project, and select “Deploy”. This will install your project onto the Raspberry Pi. Alternatively, you can click the green “Go” triangle to start your application, and you will be able to debug in Visual Studio just like any other application. At least that’s the theory ……

…. I experienced a lot of problems with Visual Studio refusing to talk to the Raspberry Pi, working one moment, and then failing the next. If this happens to you, then connect to the Raspberry Pi web portal and then navigate to the Processes\Details option. This shows all of the processes running on the Raspberry Pi, and if there are any called “MSVSMON” then kill these instances and reboot the Raspberry Pi. At least for me, this fixed all Visual Studio connection issues.

You will also discover that there is an option in the web portal called “Debug Settings” with a “Start” button to enable Visual Studio remote debugger. In my case, this needed to remain off for Visual Studio debugging to work (i.e. clicking the option stopped the visual studio debugger – perhaps a little confusing and counter intuitive!).

Once you have visual studio running, and you have deployed your application to the Raspberry Pi, you should be able to see it in the web management portal under the “Apps Manager” option. You can use this to start and stop an application; configure it to start automatically at boot up, and to uninstall the application.

Step 8: Beginners tips and words of warning

The code in the example is very simple, and all it does is use C# to open a GPIO pin, set the pin to be an output, and then enter an eternal loop to switch the pin on and off. You can easily connect this to an LED to prove that it’s working.

If you’re an absolute beginner, I’d recommend you buy a ‘bread board’ and some connecting leads for your experiments. It’s also very important that you understand the current limits of the Raspberry Pi GPIO pins. The pins can only supply enough electrical energy to drive an LED, and if you try and draw any more than this (for example to operate a relay) you will almost certainly damage the Raspberry Pi. To be safe, take a look at the Raspberry Pi website to find the maximum current draw, and make sure you don’t exceed this (If you “Google Raspberry Pi relay driver” you will be able to find out how to solve the problem. You can either build your own driver circuits, or alternatively buy modules designed for the purpose).

You also need to know which physical header pins on the Raspberry Pi correspond to which pin numbers you access in your code. There is a very helpful document on the Microsoft web site that gives you the pin mappings, but for convenience I’ve also summarised the information in the table at the end of this blog. In our diagram above we have the LED connected to ground on pin 39 (bottom left pin), and GPIO26 on pin 37 (second from bottom left pin). If your LED doesn’t flash, make sure you have connected it the correct way round!

Step 9: Build your IoT project!

So hopefully you found this a useful read, and hopefully it will get you past any of the initial setup hurdles in getting you started with your C# IoT project. Finally, and if you’re a skilled IoT developer, we are always looking for good engineers, and if you’re an IoT start up looking to take your prototype to the next level, our team of IoT engineers would love to talk!

Save

Save

Save

Save

GPIO#Power-on PullAlternate FunctionsHeader Pin
2PullUpI2C1 SDA3
3PullUpI2C1 SCL5
4PullUp7
5PullUp29
6PullUp31
7PullUpSPI0 CS126
8PullUpSPI0 CS024
9PullDownSPI0 MISO21
10PullDownSPI0 MOSI19
11PullDownSPI0 SCLK23
12PullDown32
13PullDown33
16PullDown36
17PullDown11
18PullDownSPI1 CS012
19PullDown35
20PullDown38
21PullDownSPI1 MISO40
22PullDownSPI1 MOSI15
23PullDownSPI1 SCLK16
24PullDown18
25PullDown22
26PullDown37
27PullDown13
35PullDownRed Power LED
47PullDownGren Activity LED
GND9,25,39,6,14,20,30,34
5V Power2,4
3.3V Power1

Save

Save

All 'Things' to be considered in IoT

All ‘Things’ to be Considered in IoT

Richard Emmerson - Senior Consultant, Communications Systems

By: Richard Emmerson
Senior Consultant, Communications Systems

3rd May 2017

Home » Insights » Communications & IoT

So you have a great idea for an internet connected ‘Thing’. You’ve done the business plan, you’ve raised some investment, or maybe you’re staking your own money. All you have to do now is connect your ‘Thing’ to ‘The Internet of Things (IoT)’ and get the product into the market.

Well, there are a few things you should consider before you jump in.

How will the ‘Thing’ connect?

Surely that’s simple, everyone’s using LoRa (long-range, low-power radio), so I can buy some LoRa modules, connect them to my ‘Thing’ and I’m done.

Well, yes and no.

Range, Data Rate & Power Consumption

With any communications system, there is a direct trade-off between range, data rate and power consumption. LoRa is potentially a great system for IoT. When properly designed, it can achieve long range (typically 2 km in urban areas and line of sight in rural areas) and have a battery life that can last for years. However, data rates are limited to between 0.3 kbps to 50 kbps; with the longest range achieved at the lowest data rate. In the EU 868 MHz band, the duty cycle is also limited to 1%, meaning, at the lowest data rate, only 51 user bytes can be sent every 245 seconds. This is fine for a smoke alarm but unsuitable for a security camera.

For higher data rate applications, a 3G or 4G modem module may be a better choice, provided the power is available. For power limited systems, there is also the Narrowband IoT system, which uses the 4G mobile network with data rates between 20-250 kbps and offers impressive battery life.

What about base stations?

BaseStationLoRa can be used in a peer-to-peer mode (communication between nodes). To connect to the internet though requires some kind of base station. This could be a local base station installed in the home or office, or a wide area base station (LoRa-WAN). You might choose to supply customers with their own low-cost base stations, or take advantage of public networks such as ‘The Things Network’.

An alternative may be to use the ’Sigfox’ system. This has similar performance to LoRa but for a small subscription fee accesses an international network of base stations owned and managed by Sigfox. Unlike Sigfox and cellular systems, LoRa has the advantage that if there is no coverage then you can simply add your own base station.

What about the Antenna?

AntennaBoardThe antenna is a key part of any wireless system and is an area where many developers face problems. In order to work efficiently, antennas need an effective area which is made up of the antenna itself and the circuit board it is connected to. Look carefully at the datasheet for that tiny 868 MHz ‘chip’ antenna and you are likely to see that it requires a PCB of approximately 90 mm length.

However, this poses a problem for small devices operating at 868 MHz, as the antenna is unlikely to be efficient, and that 2km range you expected just reduced to 500 m or less. The antenna may also become de-tuned by the presence of breaks in the PCB ground plane, nearby components and caseworks require a matching network to compensate for these effects. For really small devices, it may be worth considering Bluetooth, which with its higher operating frequency of 2.4 GHz requires a smaller PCB, and, with the release of Bluetooth 5, can be used for local area networks.

So that’s it?

Well, not quite. LoRa and Sigfox use the licence free 868 MHz ISM band in Europe and 915 MHz band in the US. Both of which are prone to interference from other users. There is also the platform, encryption, data ownership, and regulatory approvals to consider.

So you have a great idea for an internet connected ‘Thing’. You’ve done the business plan, you’ve raised some investment, or maybe you’re staking your own money. All you have to do now is connect your ‘Thing’ to ‘The Internet of Things (IoT)’ and get the product into the market.

Well, there are a few things you should consider before you jump in.

How will the ‘Thing’ connect?

Surely that’s simple, everyone’s using LoRa (long-range, low-power radio), so I can buy some LoRa modules, connect them to my ‘Thing’ and I’m done.

Well, yes and no.

Range, Data Rate & Power Consumption

With any communications system, there is a direct trade-off between range, data rate and power consumption. LoRa is potentially a great system for IoT. When properly designed, it can achieve long range (typically 2 km in urban areas and line of sight in rural areas) and have a battery life that can last for years. However, data rates are limited to between 0.3 kbps to 50 kbps; with the longest range achieved at the lowest data rate. In the EU 868 MHz band, the duty cycle is also limited to 1%, meaning, at the lowest data rate, only 51 user bytes can be sent every 245 seconds. This is fine for a smoke alarm but unsuitable for a security camera.

For higher data rate applications, a 3G or 4G modem module may be a better choice, provided the power is available. For power limited systems, there is also the Narrowband IoT system, which uses the 4G mobile network with data rates between 20-250 kbps and offers impressive battery life.

What about base stations?

BaseStationLoRa can be used in a peer-to-peer mode (communication between nodes). To connect to the internet though requires some kind of base station. This could be a local base station installed in the home or office, or a wide area base station (LoRa-WAN). You might choose to supply customers with their own low-cost base stations, or take advantage of public networks such as ‘The Things Network’.

An alternative may be to use the ’Sigfox’ system. This has similar performance to LoRa but for a small subscription fee accesses an international network of base stations owned and managed by Sigfox. Unlike Sigfox and cellular systems, LoRa has the advantage that if there is no coverage then you can simply add your own base station.

What about the Antenna?

AntennaBoardThe antenna is a key part of any wireless system and is an area where many developers face problems. In order to work efficiently, antennas need an effective area which is made up of the antenna itself and the circuit board it is connected to. Look carefully at the datasheet for that tiny 868 MHz ‘chip’ antenna and you are likely to see that it requires a PCB of approximately 90 mm length.

However, this poses a problem for small devices operating at 868 MHz, as the antenna is unlikely to be efficient, and that 2km range you expected just reduced to 500 m or less. The antenna may also become de-tuned by the presence of breaks in the PCB ground plane, nearby components and caseworks require a matching network to compensate for these effects. For really small devices, it may be worth considering Bluetooth, which with its higher operating frequency of 2.4 GHz requires a smaller PCB, and, with the release of Bluetooth 5, can be used for local area networks.

So that’s it?

Well, not quite. LoRa and Sigfox use the licence free 868 MHz ISM band in Europe and 915 MHz band in the US. Both of which are prone to interference from other users. There is also the platform, encryption, data ownership, and regulatory approvals to consider.

Save

Further Reading

Save