Archive for the ‘IoT’ Category

Microsoft Build Conference – 2018 – Part 2(IoT)

June 11, 2018

 

Iot

Continuing from Build where we looked at AI earlier.. The next big areas was IoT. Microsoft  is planning to spend $5 Billion on IoT over the next few years. The big announcement at Build was to make IoT edge Open source  and big focus on   Intelligent Edge  and IoT security.

Lot of  content was spent on Intelligent IoT Edge devices.  Some of the hardware which was showcased is below.

AI enabled_edge devices

 

Roobo speech device in detail – Complete AI system solutions for IoT devices – household  electric appliances, automobiles, robots, toys, and other industries.  These  kits are Farfield with Custom keyword spotting in linear and circular configurations..

roobo_device

spechdevice_solution

 

 

Azure Sphere   azureSpher1

This project Leverages Microsoft expertise in Security, Cloud to create a Secure connected MCU especially in this day and age where IoT security is a key issue.

Key points about Azure Sphere

  • Build 2018 – Azure Sphere – Silicon, Software and Cloud
  • Azure Sphere is a First device of its kind with Security at its heart
  • Like IoT core Azure Sphere has 10 year support from Microsoft
  • Azure is open to any MCU manufacturer who want to use the Pluton security system ROYALTY FREE who can also innovate with the GPL’d open source Linux  and also to any cloud provider.
  • DevKits available in Summer 2018

The picture below describes  properties of a highly secured connected device which is the goal of this device.\azureSpher2

 

Hardware  is essential for establishing the root of trust. This allows hardware to protect device  identity  and software integrity.

azure_sphere_root_oftrust

Software helps to configure dynamic compartments which limit the reach of any single failure.

azure_sphere_barriers

Nature of software and security that there will be bugs and exploits over time. By having renewable security cloud is leverage to provide updates and software applies updates and hardware prevents rollback. This makes the solution robust.

azure_sphere_updates

azure_spehere_mcu_powered_devices

Implementation details

Each hardware unit is segregated  off from the other by a firewall preventing cross polluting incase one of the components gets compromised. The solution does use Cortex M (typically used in MCU’s) and Cortex A which is used for application and high  compute environments. This however can impact battery life in environments where battery power is the only source. And this is the reason why some folks called is an Application processor rather than an MCU.

azuure_sphere_architecture1

Lots of silicon vendors are implementing this solution especially Mediatek. There is interest from appliance makers like Wolf/Sub zero and Leoni…

azure_sphere_arch2

azure_sphere_security_service

It can be also used as frontend gateway to another MCU IoT device . 

Next time I will cover Microsoft 365/Graph, GIT patterns and anti patterns,  Azure Databricks and Azure Blockchain.

References

 

 

Advertisements

Age of the everyday IoT entrepreneur is here and now ….

August 28, 2017

IoT is the new buzz word these days. Anyone who knows anything about Information technology is feeling the buzz. There have been a lot of products which are making all this happen for the everyday entrepreneur and also for the established companies. Access to electronics, access to code which makes it easy to interface with those, price of the components, easy access to amazing education through video tutorials, blog posts, meetup groups etc.

The feature of the everyday entrepreneur is here and now. If you can imagine it and even better put the ideas on paper to products on shelves then your time has come….

Bigger corporations have very few advantages over an everyday entrepreneur these days right from design, engineering, supply chain, distribution etc.

For anyone new to the space who has an idea we can help you get it to market by either partnering with you or consulting on the product…

The Hype of IoT and the areas of applications from an old Gartner article is clearly defined here:

Iot_

Source: Gartner (July 2014)

http://www.gartner.com/technology/reprints.do?id=1-27LJLAK&ct=150119&st=sb

 

Challenges:

The biggest challenges in IoT from a technology perspective are:

1)      Lightweight networking standards

2)      Securing the data

3)      Power Management in IoT devices

In the end I think if you are getting to the new space of IoT or have some great ideas it is time to put those into practice. Happy IoT’ing

From the trenches – Arduino compilation and link errors and fixes to those

August 28, 2017

Error 1 – Loader error of undefined reference
Arduino: 1.6.5 (Windows 8.1), Board: “Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)”

myrobot.cpp.o: In function `__static_initialization_and_destruction_0′:
C:\Program Files (x86)\Arduino/myrobot.ino:57: undefined reference to `Michelino::Robot::Robot()’
myrobot.cpp.o: In function `loop’:
C:\Program Files (x86)\Arduino/myrobot.ino:272: undefined reference to `Michelino::Robot::run()’
collect2.exe: error: ld returned 1 exit status
Error compiling.

Solution
The problem is that the cpp file should not have the word class in it and only the header file.

Original code :

namespace test
{
class Ctest
{
public:
Ctest() {};
void a() {};
};
};

test.h
#ifndef rocketbot_remote_control_h
#define rocketbot_remote_control_h
namespace test
{
class Ctest
{
public:
// Ctest();
void a();
};
};
#endif

main

#include “test.h”

using namespace test;
test::Ctest r;
//Ctest r;

void setup() {
// put your setup code here, to run once:

}

void loop() {
// put your main code here, to run repeatedly:
r.a();
}

Fixed Code
Test.cpp
#include “test.h”
namespace test
{
//void Ctest::Ctest() {};
void Ctest::a() {};
};

Test.h
#ifndef rocketbot_remote_control_h
#define rocketbot_remote_control_h
namespace test
{
class Ctest
{
public:
// Ctest();
void a();
};
};
#endif

Main
#include “test.h”

using namespace test;
test::Ctest r;
//Ctest r;

void setup() {
// put your setup code here, to run once:

}

void loop() {
// put your main code here, to run repeatedly:
r.a();
}

Error 2 – Function not found

Arduino: 1.6.5 (Windows 8.1), Board: “Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)”

In file included from robot_vehicle_with_bth.h:61:0,
from myrobot.ino:55:
rocketbot_remote_control.h:11: error: no matching function for call to ‘SoftwareSerial::SoftwareSerial()’
SoftwareSerial BTSerial;
^
rocketbot_remote_control.h:11:16: note: candidates are:
In file included from robot_vehicle_with_bth.h:34:0,
from myrobot.ino:55:
C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SoftwareSerial/SoftwareSerial.h:90:3: note: SoftwareSerial::SoftwareSerial(uint8_t, uint8_t, bool)
SoftwareSerial(uint8_t receivePin, uint8_t transmitPin, bool inverse_logic = false);
^
C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SoftwareSerial/SoftwareSerial.h:90:3: note: candidate expects 3 arguments, 0 provided
C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SoftwareSerial/SoftwareSerial.h:47:7: note: SoftwareSerial::SoftwareSerial(const SoftwareSerial&)
class SoftwareSerial : public Stream
^
C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SoftwareSerial/SoftwareSerial.h:47:7: note: candidate expects 1 argument, 0 provided
no matching function for call to ‘SoftwareSerial::SoftwareSerial()’
Solution
Add extern keyword in header file
extern SoftwareSerial BTSerial;

Error 3 — redefinition of ‘class Michelino::RemoteControl’
Arduino: 1.6.5 (Windows 8.1), Board: “Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)”

In file included from myrobot.ino:56:0:
rocketbot_remote_control.h:14: error: redefinition of ‘class Michelino::RemoteControl’
class RemoteControl : public RemoteControlDriver
^
In file included from robot_vehicle_with_bth.h:61:0,
from myrobot.ino:55:
rocketbot_remote_control.h:14: error: previous definition of ‘class Michelino::RemoteControl’
class RemoteControl : public RemoteControlDriver
^
redefinition of ‘class Michelino::RemoteControl’

Solution :
Fix to add the following since header file gets included multiple times
#ifndef rocketbot_remote_control_h
#define rocketbot_remote_control_h
….
#endif

Error 4
x.cpp file
robot_vehicle_with_bth.cpp:77: error: ‘Robot’ has not been declared
void Robot::Robot()

Solution
Solution is to include x.h file
#include “x.h”

Stay tuned more fun ones coming!