• Home
  • About
  • Contact
  • Blog

THINK, SOLVE, BLOG.

Why Windows 10 for IoT Matters

5/26/2015

0 Comments

 
Windows and embedded aren't typically two words you hear in the same sentence. In fact, the mention of the two has often been met with critical remarks about performance, stability, driver availability and development support.

Historically, Microsoft has a long history of targeting the embedded and small-device market with products such as Windows CE, Windows XP Embedded and recently Windows 8.1 Embedded. Often reserved for GUI-oriented applications such as PoS, ATM and touch-screen information systems, industrial control systems and other embedded devices have tended to avoid the platform in favor of traditional 'bare-metal' and Linux-based controllers.

Windows 10 for IoT intends to shake up this space. Why does it matter?
  1. Redesigned, purpose built for IoT. Windows 10 IoT is no longer a consumer OS adapted for embedded use, but rather has been redesigned from the ground up as a bare-bones platform with support for a variety of architectures including ARMv7 and x86.
  2. Supports C# and .NET. This is a game changer. Having worked with C, C++, Java and other languages, this is a key reason why Windows 10 IoT is worth a look. Unlike many of the boutique, high-level languages such as a Python and Ruby, C# is still close enough to C/C++ to be a familiar sight to engineers and yet is able to harness all the power of a modern type-safe, object oriented language. The possibilities are endless: utilisation of existing code and assemblies, web services, LINQ, Entity Framework...the list goes on.
  3. Visual Studio SDK. Arguably one of the best IDEs on the planet, Visual Studio is the platform for developing service and GUI applications using Windows 10 IoT. Visual Studio 2015 Community edition is also available free for non-enterprise applications.
  4. Universal Apps. Universal apps are a new 'flavour' of application which can run on both Windows 10 IoT devices, and all other things Windows 10 including Windows 10 Phone, Desktop or Xbox. Kind of sounds familiar to Java which we've had since 1995, but without the Java virtual machine and apps run natively on the target platform.
Picture
With the release of Windows 10 IoT Core Insider Preview, Microsoft are testing the waters with early support for two platforms:
  1. Raspberry Pi 2 (ARMv7)
  2. Minnowboard MAX (Intel Atom)

The Raspberry Pi 2 needs no introduction, and is targeted primarily at the maker and hobbyist community where it has open-source support and an ever increasing range of 3rd party accessories and software/driver libraries. Raspberry Pi 2 is the latest version with new Broadcom silicon, and increased OS support due to the switch to ARMv7 architecture.

The Minnowboard MAX is an open-source hardware platform developed by Intel. Given the Intel Atom's x86 architecture, this means an even wider range of OS support including spport for x86 Linux distributions and Windows 8.1 Embedded. Also, onboard Intel HD graphics provide accelerated graphics and rendering support.

Upon install and boot, Windows 10 IoT provides a minimal GUI interface much akin to Windows Server Core and is remotely administered using Windows Powershell over Ethernet or WiFI. Development and code deployment to the device is performed over the network using Visual Studio and a remote debugger service.

That's all for now! A future blog post will examine further some of the great new platform features of Windows 10 for IoT and how these can be utilised in your next embedded design.
Picture
Getting Started with Windows 10 for IoT
http://ms-iot.github.io/content/GetStarted.htm

Specifications: Raspberry Pi 2 Model B
https://www.raspberrypi.org/products/raspberry-pi-2-model-b/

Specifications: Minnowboard MAX
http://www.minnowboard.org/meet-minnowboard-max/
http://firmware.intel.com/projects/minnowboard-max
0 Comments

The Art of Problem Solving

8/30/2014

0 Comments

 
"Houston, we've had a problem". Often used and misquoted, this phrase spoken by Jack Swigert of the Apollo 13 crew brings to mind scenes of desperate engineers huddling over slide-rules, perplexed faces and an eventual solution that saved the lives of the crew and led to the mission being called the 'successful failure'.

Problem-solving is the bread and butter of engineers, and in fact is the very reason why the profession exists. However, perhaps the biggest problem of all is this: why do many find problem-solving so difficult? Why are some people 'naturally' good at this? How can I become a better problem-solver? These questions are discussed below.

(1) Problem solving is a mix of process, knowledge & experience.
  • Process is a vital component in problem-solving. Process looks at the problem, defines it, specifies possible solutions and determines if any of these solve the problem. Process joins the dots along the journey, but doesn't necessarily create them. Process is aided by knowledge, but may be overridden by experience or 'gut instinct' along the way.
  • Knowledge supports both analysis of the problem and intended solution. Knowledge is driven by research, but its relevance to the problem is guided by experience. Knowledge may limit the scope of the solution if insufficient or poorly researched. Knowledge is aided by experience, but can also be made redundant by a change in problem-solving process.
  • Experience is 'lessons learnt' from solving the problem and/or similar problems before. Experience is pure inspiration, the 'gut' feeling that sometimes contradicts process & knowledge, but can be responsible for solving the problem in a faster or more innovative way. Experience is aided by historical use of process and knowledge, but in specific cases its relevance can diminish over time. Inspiration, however, is timeless.

(2) Why are some people 'naturally' good at problem-solving?
Simply, because they've learned the art of problem solving from practice. True, inspiration and creative thinking may be stronger in some than others, but this is only one-third of the golden combination. Experience is acquired from a history of solving problems. The solution? Start today. Apply process, research to acquire knowledge and start solving.

(3) How can I become a better problem solver?
OK, so I'm already following the three-step process. Great! What are some tips then for becoming a better problem-solver? Here are some I've learned from experience and mentoring opportunities over the years:
  • Learn to fail quickly. No one has ever solved a problem by trying to 'make' a failed solution work. Don't flog a dead horse. Let go, move on and don't be afraid to do this quickly and/or more than once. Don't hang on to a failed solution just because 'it has worked in the past' - its not working now, maybe it's time for something new.
  • Learn principles, not patterns. Problem solving by rote sometimes works, but never for obscure or complex multi-layered  problems. Learn to understand the principles of an intended solution, rather than just focus on 'patterns' or 'this has worked for me' approaches.
  • Define, don't assume. Don't assume anything about the problem or the solution. 99% of failed problem-solving attempts are often not due to no solution being found, but rather due to the fact that the problem was not correctly defined. Define the problem well, test it, reproduce it and you've already halfway there.

More problem-solving observations, tips and advice to come in a following article.
0 Comments

VELOCITY SYSTEMS LAUNCH NEW WEBSITE

8/29/2014

0 Comments

 
We're proud to launch our new website with information about our company and services.
Check back regularly for further updates.

Coming soon:
  • Portfolio of our recent work & projects
  • Technical resources for software engineering, embedded systems.
  • Engineering and technology blog
  • Links to cutting-edge research and industry publications


0 Comments


    Archives

    May 2015
    August 2014


    Categories

    All
    Embedded
    Engineering
    Experience
    Knowledge
    Problem Solving
    Process

    RSS Feed

Copyright © 2015 Velocity Engineering Systems Ltd. All Rights Reserved.
"Velocity Systems" and logo design is a trademark of Velocity Engineering Systems Ltd (NZ).
  • Home
  • About
  • Contact
  • Blog
✕