All posts tagged: embedded

With the increasing popularity of Internet-of-Things connected products, security of these devices and their networks is a growing concern.

Let’s consider potential security vulnerabilities that can exist in Internet-of-Things appliances, and how these security threats may be mitigated. Security is a particular concern in the context of home automation devices and Internet-of-Things connected appliances in the home because hardware and/or software vulnerabilities in these devices have the potential to affect the security of homes, buildings and people.

Security vulnerabilities in these connected devices, such as home automation hubs, could potentially allow attackers to gain control of door locks or other actuators, access video cameras or otherwise compromise physical security.

Recent research from security firm Veracode has found that many of today’s popular “smart home” devices have security vulnerabilities, which are open to exploitation. The researchers examined a selection of typical always-on IoT home automation appliances on the market in order to understand the real-world potential impact of security vulnerabilities in these kinds of products.

The products that were studied by the researchers included the MyQ Internet Gateway and the MyQ Garage, which provide Internet-based control of devices such as garage doors, power outlets and lighting, the SmartThings Hub, a central control device for home automation sensors, switches and devices such as door locks, the Wink Hub and Wink Relay networked home automation products, and the Ubi home automation gateway.

These devices are just a representative sample of today’s popular “Internet-of-Things” appliances in the consumer market.

The Veracode researchers didn’t look for vulnerabilities in the firmware of the devices they looked at, but instead analysed the implementation and security of the communication protocols they use.

The researchers looked at the front-end connections, between the users and the cloud services, as well as the back-end connections between the cloud services and the devices themselves. They wanted to know whether these services allowed communication to be protected through strong cryptography, whether encryption was a requirement at all, if strong passwords were enforced and whether server TLS certificates were properly validated.

Researchers found that of the six products examined, only one enforced the strength of user passwords at the front end, and one of the products did not enforce encryption for user connections.

This research also looked at the back-end cloud service connectivity in these products, whether the devices used strong authentication mechanisms to identify themselves to cloud services, whether encryption was employed and whether safeguards were in place to prevent man-in-the-middle attacks and if sensitive data was protected – for example by hashing clear text passwords and transmitting only the crucial data needed across the Internet service.

What they found was a general trend towards even weaker security, with two of the products tested not employing encryption for communications between the cloud service and the device.

It was also found that one of the devices did not properly secure sensitive data, and man-in-the-middle attack protection was lacking across all the devices tested, with the exception of the SmartThings Hub, either because TLS (Transport Layer Security) encryption was not used at all or because proper certificate validation was not used.

This research suggests that connected products, marketed as appliances for the household consumer, have been designed with the assumption that the local area networks that they’ll be installed on are secure.

However, that seems to be a mistake since we know that if there’s anything worse than the security and user configuration we see with these new connected products, it’s the security of WiFi routers.

Researchers find serious vulnerabilities in consumer routers and their firmware routinely, and many of these have the potential to enable attackers to perform man-in-the-middle attacks on data going out to the Internet or to other devices on the LAN.

A quick search online and you can find default passwords for many IoT devices – often left unchanged or unable to be changed by users – and the security features in place are often very limited. User instruction and education can play a large part in minimising potential problems here – for example, choosing strong passwords, both for the Wi-Fi router as well as for devices connected to it, and regularly checking for and installing firmware or software updates provided by vendors.

This study is a good reminder to users to keep their networks secure by using strong passwords and security settings, across their PCs, phones or other devices, wireless access points and routers, as well as smart IoT devices. Furthermore, the research team also explored device debugging interfaces and services that run on these IoT devices which aren’t intended to be accessed by end users.

The team only investigated interfaces that are accessible over a network, whether over the local area network or through the Web. For example, attacking a device through a hardware interface, plugging a JTAG probe into a smart light bulb, is not considered to be a significant security threat compared to network-connected services. 

security2

This research explored whether access to these hidden services was restricted to users with physical access to the device, if open interfaces are protected against unauthorised access, and whether open interfaces are designed to prevent an attacker who gains access to these interfaces from running arbitrary code on the device.

The Veracode research found that the Wink Hub runs an unauthenticated HTTP service on port 80 that is used to configure the wireless network settings, the Wink Relay runs a network-accessible ADB (Android Debug Bridge) service, the Ubi runs both an ADB service and a VNC remote desktop service with no password, the SmartThings Hub runs a password-protected telnet server and the MyQ Garage runs an HTTPS service that exposes basic connectivity information.

It is simply assumed that all these things are secure because the wireless LAN they’re on is secure, but this is commonly not true and these networks are secured poorly or not at all. For devices with exposed ADB interfaces, this can provide attackers with root access and can allow them to execute arbitrary code on the device.

At this point the casual observer may consider all these new consumer IoT-based devices to be a security risk, however if developed by the right team nothing could be further from the truth. With a great design team and user education security can become a non-issue for the end user.

The easiest part is to find the right designers for your IoT-based product – and here at the LX Group we have the team, experience and technology to bring your ideas to life.

Getting started is easy – join us for an obligation-free and confidential discussion about your ideas and how we can help bring them to life – click here to contact us, or telephone 1800 810 124.

LX is an award-winning electronics design company based in Sydney, Australia. LX services include full turnkey design, electronics, hardware, software and firmware design. LX specialises in embedded systems and wireless technologies design.

Published by LX Pty Ltd for itself and the LX Group of companies, including LX Design House, LX Solutions and LX Consulting, LX Innovations.

Muhammad AwaisSecurity concerns with consumer IoT devices

Even though the design and development of electronic systems, and firmware in embedded systems, differs from conventional software application development in many ways – there is an increasing awareness in the hardware and embedded engineering fields today about Agile development methods.

 The accelerating rate of technological change for electronic products requires rapid market responsiveness to maintain a competitive edge, and this is especially true in today’s world of ubiquitous mobile connected devices and Internet-of-Things technologies.

 In one recent survey, 76% of software developers today see electronic hardware as a key element in turning many software ideas into products ready for market. This highlights a need for product innovators – growth of new markets like the Internet of Things demand practical tools to make physical design more efficient without sacrificing product quality, and Agile methods are one of the tools that can potentially play a role here.

 Hardware is different from software, so rather than attempt to transfer Agile practices directly to hardware development, some careful consideration about what the differences are, what is really relevant and what is not most relevant, will allow the most effective adoption of Agile management techniques in the electronic design and embedded systems industry.

 Agile project management methods can be used effectively in a hardware environment, by mechanical or electronic development teams, but some adaptations might be needed on a case-specific basis. However, this is already the best practice recommended in an Agile environment for software development teams.

Many large companies use Agile techniques in their development today, including Yahoo, Microsoft, Google and many others. The WikiSpeed startup employs heavy use of Agile management techniques in their mechanical engineering projects, delivering a novel car built from composite materials that offers extremely high fuel efficiency while also being safe and road-legal – designed and built from scratch in only 3 months using crowd funding, made viable thanks to the cost-effectiveness of their Agile practices.

However, some companies prefer the perceived stability and predictability of a traditional development process. Traditional use of comprehensive documentation and contracts is viewed as protecting them from risk and having one team follow the work of another.

 There are also special hurdles when you’re combining hardware and software in one product, and most Agile experts, even with extensive software project experience, are not yet used to working with these issues. Some common challenges and concerns that are raised against the use of Agile methods are that more revisions and versions mean more data to manage, and that changing procedures and tools means added costs. There is the view that fewer contracts and specifications could mean higher risk, and that effective, useful communication and coordination is more complicated in an Agile environment.

 One of the challenges for combined software and hardware development is that software can normally be developed fairly rapidly, and the development broken down into smaller chunks with more rapid iteration. Hardware, on the other hand, may require many months to show a working component or feature.

 If the software must wait for the hardware to be created for final testing, this can create testing delays. Use of rapid prototyping technologies such as 3D printing can be valuable here for mechanical and plastics design, as can the use of modular electronic design, with smaller subsystems that can be iterated more rapidly, demonstrated, and tested independently of the whole system.

 Writing user stories that span hardware and software allows for the interdependencies to be understood. There might be some software that the hardware team needs to test their first prototype; the teams can ensure that the required stories are correctly prioritised to support this. Similarly there may be software that is most efficiently developed once hardware is available (perhaps low-level interface drivers); these can be prioritised based on the hardware delivery schedules.

 Because hardware often isn’t available until near the end of a project for actual deployment and testing, virtual versions of the hardware such as mock-ups, simulations and emulations are often an important part of hardware development using Agile techniques.

 Modelling and simulation allow testing and integration to begin as soon as the design work begins, which eliminates the delays that might be experienced if the hardware isn’t yet available. It can save significant investment in unnecessary early prototyping of architectures that aren’t viable.

 One method of dealing with hardware that isn’t ready to test is to decouple software and hardware development, via an abstraction layer, to allow software development to continue more rapidly. The challenge is to find a method that allows the rapid development of software and concurrent development of the hardware in a way that can best meet the requirements of each process.

Heat-Strap-Image-160x130

 Hardware abstraction layers enable concurrent hardware and software engineering by allowing software development and testing to start prior to hardware availability. This valuable practice can also provide input into the hardware requirements and help most efficiently refine the boundary between hardware and software.

 Therein lies the challenge of embedded hardware design using Agile methodologies – software and hardware teams need to be challenged to work together for the desired outcome in the available amount of time. And as a leading developer of embedded hardware, products and services from design through to product manufacturing and support – here at the LX Group we have the team, experience and technology to bring your ideas to life.

 Getting started is easy – join us for an obligation-free and confidential discussion about your ideas and how we can help bring them to life – click here to contact us, or telephone 1800 810 124.

 LX is an award-winning electronics design company based in Sydney, Australia. LX services include full turnkey design, electronics, hardware, software and firmware design. LX specialises in embedded systems and wireless technologies design.

Published by LX Pty Ltd for itself and the LX Group of companies, including LX Design House, LX Solutions and LX Consulting, LX Innovations.

 

Muhammad AwaisAdoption of Agile for Embedded Hardware Design

The Internet of Things (IoT) is increasingly taking over from Machine-to-Machine communications (M2M) as the trendy new buzzword. However, these terms are often used interchangeably, and neither of these two popular terms is well defined or standardised, with many organisations and companies operating with their own internal definitions. So, what’s the difference between IoT and M2M?

In a basic sense, the definition of Machine-to-Machine communications (M2M) is that it’s communication between one remote machine and another. M2M is basically about communicating with a remote machine in the field in order to manage that machine or collect machine and sensor data.

M2M connectivity has been used in industry in one form or another long before the Internet in its modern form has been around, usually through the use of embedded modems and the wired or cellular telephone networks.

As an example of a familiar embedded M2M system, which has been in use for a long time, consider the point-of-sale EFTPOS terminal in a shop, which communicates with the bank, commonly over the telephone network. This system is networked from point A to point B, with a specific job to do.

When it comes to the maintenance of vending machines or industrial machines, M2M capabilities allow the vendors of machines or assets to reduce service and management costs through remote diagnostics, troubleshooting, updates and similar remote maintenance which optimises the deployment of service personnel in the field, deploying personnel only when they’re needed.

The scope of industrial M2M also includes industrial telemetry and remote surveillance of systems such as SCADA equipment.

M2M can be understood from a more vertical perspective, usually built around proprietary, closed systems, whilst the IoT encompasses a more horizontal and interoperable approach where vertical applications are pulled together in order to provide value for both business and end users.

While M2M solutions offer remote communications with machines, this data is traditionally targeted at specific, closed solutions that perform specific applications. Rarely, if ever, is the data integrated with enterprise applications to help improve overall business performance, and this is where more complicated IoT applications can realise gains both in terms of user and business value.

If you can recognise whether you seek a point solution for simple remote machine access, such as a service-management application, or you seek to drive incremental business benefits across the enterprise through the use of analytics, Big Data and other software-oriented tools for the improvement of business performance, both from the business perspective and customer perspective, then you can recognise whether a machine-to-machine application or an Internet-of-Things application is what you’re looking for to best suit your needs.

The IoT represents things connecting with systems, people and other things, moving beyond connectivity from one machine to another. “Things” in the IoT can include machines, sensors, consumer products, appliances, vehicles and systems that control other physical devices, but they can also include CRM systems and analytics applications, data warehouses or other business intelligence systems.

Internet-of-Things applications and platforms can interconnect data between things, systems and people, connecting things to other things as well as cloud computing infrastructure, people, and business systems.

But there is some overlap between modern IoT systems and M2M systems, since every modern IoT system must have some kind of machine-to-machine communications links somewhere. You might say that today M2M systems are a subset of the Internet of Things, but the IoT has a much broader scope than traditional M2M connectivity.

Things and systems in the Internet of Things are also interconnected into people – consumers and end users as well as business decision makers.

Integration of device and sensor data with big data, analytics and other enterprise applications is a core concept behind the Internet of Things and this integration is key to achieving many potential new IoT benefits throughout industry. IoT devices communicate using open standards, in many cases, and this use of open standards is a key driver behind the success of the Internet of Things, just like the Internet has been built around open standards with great success.

This use of open standards, and room for interoperability, is a key factor that differentiates the IoT from the older domain of industrial M2M telemetry, which is often proprietary and vendor-specific, with the communication from a remote machine being tied back to one fixed place for one fixed application at one specific operator or site.

The data collected by Internet-of-Things services and devices can be incorporated into enterprise applications to enable improved service but also improved business intelligence, operational improvement and indeed the generation of whole new business models.

The ability for applications throughout the enterprise to access device data to enable performance improvements and business innovation clearly distinguishes the potential of IoT technologies from traditional point-to-point M2M communications.

IoT applications typically rely on IP-based networks to interface device data to a cloud or middleware platform accessible from the Internet, enabling access to this data by any enterprise application, anywhere, that is authorised to do so. 

Bug Labs Swarm IoT LX Group

This is in contrast to the direct, point-to-point communication usually associated with M2M applications. Overall, enterprise integration capabilities, scalability, software instead of hardware emphasis, interoperability (without insecurity) and the dominance of standards-based as opposed to proprietary connectivity protocols are key factors that differentiate the Internet of Things from traditional M2M connectivity solutions.

No matter whether you’re looking for M2M or IoT solutions – here at the LX Group we have the team, experience and technology to bring your ideas to life.

Getting started is easy – join us for an obligation-free and confidential discussion about your ideas and how we can help bring them to life – click here to contact us, or telephone 1800 810 124.

LX is an award-winning electronics design company based in Sydney, Australia. LX services include full turnkey design, electronics, hardware, software and firmware design. LX specialises in embedded systems and wireless technologies design.

Published by LX Pty Ltd for itself and the LX Group of companies, including LX Design House, LX Solutions and LX Consulting, LX Innovations.

 

Muhammad AwaisDifferences between M2M and the IoT

The ESP8266 Wi-Fi System-on-Chip from Espressif Systems is a highly integrated SoC designed for the needs of modern Wi-Fi-connected embedded systems, appliances, sensors and other cost-sensitive, Wi-Fi-enabled Internet-of-Things applications.

This high-performance wireless SoC aims to provide Wi-Fi capabilities in embedded systems with strong functionality at a low cost. It has powerful on-board processing and storage capabilities that allow it to be integrated with sensors or other application-specific peripheral devices via its general-purpose digital I/O ports with minimal development effort and potentially without the need for any separate microcontroller in many typical applications.

The ESP8266 provides single-band (2.4 GHz) Wi-Fi connectivity using the 802.11b/g/n standards and supports WEP, WPA and WPA2 encryption.

The high degree of on-chip integration minimises the bill of materials in your design, with a low-power Tensilica 80 MHz 32-bit processor core, RAM, ROM and GPIOs, power management module, and all RF front-end components such as the clock generation, PLLs, LNA and power amplifier all integrated on the 32-pin QFN chip.

This means that your complete Wi-Fi connected solution requires minimal external components and minimal PCB area. The ESP8266 offers a complete and self-contained wireless networking solution, including an integrated TCP/IP stack – and it can either provide Wi-Fi connectivity and networking functions to a separate application processor in your design or host your application itself in the chip’s on-board application processor.

Where the ESP8266 serves as an external Wi-Fi bridge to a separate application processor in your design, Wi-Fi connectivity is added to the host processor via a simple UART or SPI interface to the ESP8266. As long as your microcontroller has a spare serial UART or an SPI interface you’re ready to go, so you can straightforwardly interface the ESP8266 to essentially any microcontroller in your existing design.

The ESP8266 has also been designed with energy-efficient mobile and battery-powered applications in mind, with an architecture that minimises power consumption and provides a sleep mode and deep-sleep mode to minimise power use in your design at times when Wi-Fi network connectivity is not actively being used.

With a wide range of interfaces including SPI, SDIO, UART and I2C, the ESP8266 can be used for interfacing to external EEPROM and Flash memory, ADC/DACs, external audio codecs, or other sensors and peripherals that can connect to these serial interfaces.

In stand-alone mode at least one external flash memory chip to boot from is needed. The chipset also incorporates 16 programmable general-purpose digital I/O pins, which can be configured in software with a range of flexible interrupt and output options.

Espressif has released a complete Software Development Kit for the ESP8266, along with a VirtualBox Ubuntu image that provides you with a complete ready-to-go tool chain including gcc and all the other tools you’ll need to develop and build code for the Xtensa core in the chip.

Included in the SDK are SSL, JSON and lightweightIP (lwIP) libraries, providing the capabilities for a range of typical Internet-of-Things applications. Example code is provided to demonstrate the use of the chip’s UART, I2C and SPI interfaces as well as general-purpose digital I/O.

Espressif provides an ESP8266 Internet-of-Things SDK, which is specifically aimed at IoT applications. Although this SDK is only partially open source and some libraries are provided as binary blobs, a fully open-source third-party tool chain for development on the Xtensa CPU architecture is separately available.

A range of other third-party software development tools and interpreters are available or in development for the ESP8266, including the nodeMCU Lua interpreter and an ESP8266 port of the MicroPython embedded Python project, allowing you to use these scripting languages if you choose. There is also firmware available for the ESP8266 that implements MQTT-based message brokering for Internet-of-Things applications.

The ESP8266 is notable in that it is one of the few chip-level 802.11 Wi-Fi devices on the market, along with the Texas Instruments CC3000-series chipsets, which is available in small-volume distribution and with publicly-available datasheets and documentation, meaning that this device is accessible to small-volume businesses and small, independent developers in a way that 802.11 chipsets from major vendors such as Broadcom or Realtek generally aren’t.

Alternative Wi-Fi modules and devices such as the Spark Photon offer features such as USB connectivity, more memory, more I/O and a more familiar ARM architecture, but they are more expensive – the Photon is close to USD $20, for example.

The Spark Photon is a very simple breakout board that just provides an antenna and a voltage regulator for USI’s WM-N-BM-09 Wi-Fi module, which implements Broadcom’s standardised WICED ecosystem with a STM32 Cortex-M3 microcontroller core alongside Broadcom’s BCM43362 Wi-Fi radio.

As another example of relatively low-cost embedded Wi-Fi solution, there are similar boards coming from China today for about $10 based on the MXchip MX1081 chipset, which also incorporates the Broadcom BCM43362 core alongside a STM32 microcontroller.

The Texas Instruments CC3200 Internet-of-Things SoC also aims to provide a complete single-chip IoT solution based around an ARM Cortex-M4 80 MHz CPU core and integrated Wi-Fi radio along with a flexible range of digital I/O interfaces and an integrated ADC.

The CC3200 offers extensive, good quality, English documentation, development tools and resources along with an ARM core that is more popular and familiar with developers than the ESP8266’s Xtensa core. The CC3200 is distributed in small volumes and has publicly available documentation and development tools as with the ESP8266, however the ESP8266 has the advantage of its relatively low cost even in small volumes.

ESP8266 2

With the appearance of such low-cost IoT capable chipsets on the market, bringing your Internet-enabled product ideas to market can be much faster, simpler and even cheaper than you ever expected. And here at the LX Group we have the team, experience and technology to bring your ideas to life.

Getting started is easy – join us for an obligation-free and confidential discussion about your ideas and how we can help bring them to life – click here to contact us, or telephone 1800 810 124.

LX is an award-winning electronics design company based in Sydney, Australia. LX services include full turnkey design, electronics, hardware, software and firmware design. LX specialises in embedded systems and wireless technologies design.

Published by LX Pty Ltd for itself and the LX Group of companies, including LX Design House, LX Solutions and LX Consulting, LX Innovations.

 

Muhammad AwaisReducing the cost of IoT devices with the ESP8266

OpenIoT is a generic middleware platform for Internet-of-Things applications, which allows you to link together Internet-connected devices and semantic Web services via a friendly user interface, working either in Cloud Computing environments or with a local server.

This platform is available as a Virtual Development Kit, providing a complete cloud solution for the Internet of Things which allows you to easily get up and running getting information from sensor clouds and connecting this information with Web services without worrying about exactly what different sensors are being used.

The OpenIoT middleware enables the easy scalability of sensor networks and the addition of new, cost-effective sensors in an intrinsically flexible framework, and aims to provide a complete middleware for Internet-of-Things applications, connected sensors and wireless sensor networks.

OpenIoT is building a novel platform for IoT applications, funded by the European Union, which includes powerful capabilities such as the ability to compose (dynamically and on-demand) non-trivial IoT services using a cloud-based and utility-based paradigm.

With an aim to facilitate open access to a wide range of technologies for Internet-connected sensors and other objects exposed as “services”, the creators claim that OpenIOT is the first open-source project to provide the means for setting up, managing and using a sensor cloud in this way.

With the ability to support large-scale deployments by co-scheduling access from thousands of simultaneous users to millions of sensors and actuators, OpenIoT will be well placed for all IoT-based solutions of all sizes, and it will have a small number of its own open (public data) sensing services for anyone to send queries to.

The OpenIoT project explores efficient ways to use and manage cloud environments for IoT entities and resources, such as sensors, actuators and smart devices, and the management of utility-based, pay-as-you-go business models for IoT networks and services.

The platform will provide instantiations of cloud-based and utility-based IoT sensor and data management services, using the OpenIoT adaptive middleware framework for deploying and providing IoT services in cloud environments to enable the concept of “sensors as a service” business models for commercial IoT applications.

 OpenIoT supports flexible configuration and deployment of algorithms for collecting and filtering the large volumes of data that are collected by networks of Internet-connected objects, and processing and detecting those events that are determined to be particularly interesting and relevant to application or business outcomes.

 As OpenIoT is a completely open-source project, and all its source code is available for download – developers and end-users can examine and openly use the OpenIoT platform. You can use the OpenIoT source code to create innovative services, to extend OpenIoT with new sensor wrappers, or to improve the OpenIoT platform itself.

 Furthermore, OpenIoT also aims to provide the capacity for semantically annotating sensor data, according to the W3C Semantic Sensor Networks specification, streaming the data collected from various sensors to a cloud computing infrastructure, dynamically discovering and querying sensors and their data, composing and delivering IoT services that comprise data from multiple sensors and visualising IoT data using many different options such as maps and graphs.

 An example application area where OpenIoT has been targeted is the improvement of efficiency in industrial operations such as manufacturing and agriculture. The OpenIoT platform can be used for intelligent sensing in manufacturing environments where it offers rapid integration of data from sensors and other devices in the manufacturing environment, dynamic and intelligent discovery of new sensors in factories, and analysis of data collected from the factory floor.

 The OpenIoT platform enables the dynamic selection of sensors along with the nearly-real-time fusion of sensor data in order to deliver any manufacturing indicators that are required – not just sets of inflexible, pre-configured indicators. This can increase the agility of decision-making and of the manufacturing process.

 One example of this is an agricultural application – where farmers and researchers can benefit from an instantaneous crop performance analysis platform that is powered by OpenIoT, using a wide range of distributed remote sensors gathering various types of data in order to build models that predict crop yields.

openiot2

 Every year Australian grain breeders plant up to a million small test plots of wheat and barley across the country to find the best high-yielding varieties. The Phenonet application developed by OpenIoT in partnership with the CSIRO is an interesting demonstration of the capability of the OpenIoT platform, using advanced sensor network technology to gather environmental data from crop trials at a much higher resolution than traditional methods and providing an OpenIoT-powered high-performance, real-time online data analysis platform that allows scientists and farmers to visualise, process and extract both real-time and long-term crop performance information.

 The Phenonet project enables plant breeders and farmers to compare and evaluate the performance of different grain varieties using real-time measurements from a variety of remote sensors. By combining these measurements with each plant’s genetic profile, plant scientists can distinguish the effects of microclimate and genetics, thus improving the accuracy and speed of plant breeding which leads to better crop quality and increased agricultural yields.

This is only one of an almost infinite number of applications that can be harnessed with the OpenIoT platform. And no matter what your requirements are, from concept to final product – here at the LX Group we have the experience and expertise to solve your IoT power problems right through to a whole system to meet your needs.

 Getting started is easy – join us for an obligation-free and confidential discussion about your ideas and how we can help bring them to life – click here to contact us, or telephone 1800 810 124. 

LX is an award-winning electronics design company based in Sydney, Australia. LX services include full turnkey design, electronics, hardware, software and firmware design. LX specialises in embedded systems and wireless technologies design.

Published by LX Pty Ltd for itself and the LX Group of companies, including LX Design House, LX Solutions and LX Consulting, LX Innovations.

 

Muhammad AwaisOpenIoT – Open-source middleware for the Internet of Things

Moving away from a “waterfall” development process to a process that incorporates Agile methods, at least to some extent, can noticeably improve the quality and reduce schedules for the engineering of both hardware and software products.

However, in the case of a hardware-engineering task such as the physical design and layout of a complex printed circuit board or an ASIC we can’t simply release a half-complete iteration at any time and expect to get anything which is remotely functional or useful.

Although there are some important differences between hardware and software to consider when applying Agile methods, Agile is still valuable in the hardware domain.

When it comes to the layout of a printed circuit board, or the layout of an ASIC, this physical design iteration may take several weeks or even months to perform, to get from the netlist to working hardware. To get it right, several iterations may be required. Even when the time has been taken to complete this iteration, it may not make any sense, in terms of economics or customer value, to release this iteration to the customer.

Modular design and engineering is a valuable strategy for making Agile methods work in hardware development. Software developers have long understood this, using modular architectures such as object-oriented programming which limit the costly ripple effect of engineering changes in a tightly integrated system.

However, commercial electronic hardware designs tend to be highly integrated, not modular – since modular hardware systems tend to be more expensive. The cost of engineering changes, however, is higher in a more integrated system.

The use of modular components, FPGAs, pre-manufactured modules or development boards is particularly attractive during research and development for the rapid evaluation and prototyping of different circuits and component choices.

Although requirements for miniaturisation, cost, weight or reliability (e.g.. removal of connectors) may lead to a final, finished product that looks very different to the modular prototype version on the R&D lab bench, Agile techniques such as rapid iteration and the rapid delivery of new prototypes at the end of each sprint can be particularly relevant and useful during this stage of product design even though they may be somewhat less applicable later.

Agile hardware developers do not have any one solution for the question of modularity, since market forces tend to push us away from modularity. Increasing modularity typically increases the cost of hardware, as well as factors such as hardware size and weight which may be critical for some products, pushing us back towards increased integration and miniaturisation where the “cost of change” is higher.

Unlike software, hardware systems tend to have a much greater cost of change, and this means more time is required to recover the cost of each change. This tends to lengthen the optimal release rate for a hardware project incorporating Agile techniques, as compared to a software product.

Although many aspects of hardware product design, such as PCB layout, physical design of ASICs and tooling for plastic moulding are intrinsically time consuming and relatively expensive to iterate, many other aspects of hardware design such as electrical rule checking, ASIC verification, documentation, and the development of the firmware and software that is intrinsically associated with the hardware in most modern embedded devices are intrinsically more similar to the software development tasks that Agile methods were originally developed for.

agile2

Therefore, Agile methods lend themselves to these parts of the development of a hardware project very well, even if some other aspects of hardware development are not quite as well suited. The same is also true in the case of hardware logic that is implemented in an FPGA or CPLD – particularly during prototyping or R&D phases, where an FPGA may be used instead of bespoke ASIC hardware.

Depending on time and cost constraints for the project, it is also possible that an FPGA or other programmable logic device may be kept in the final production hardware, instead of an ASIC, which does provide a benefit in terms of agility.

The fact that it is generally not profitable to release new iterations of hardware products continuously to customers does not preclude us from taking advantage of Agile methods to develop our hardware products more continuously, in smaller batches, and to realise the Agile principle that the highest priority is to satisfy the customer early through continuous delivery of value.

Although this is often taken to mean continuous delivery of newly updated software or hardware products, continuous improvement in the value delivered to the customer doesn’t necessarily mean continuous expensive iterations in physical design, manufacturing and tooling for new hardware delivered to the customer – incremental improvements in customer value can be achieved using the previous iteration of physical hardware that is already in the hands of customers.

Therefore Agile project management techniques can be very useful and applicable to the design of hardware products – although the agile techniques that are employed and the way and time when they’re employed can be somewhat different to the application of Agile techniques in the software industry.

Here at the LX Group we can work with the development methods of all our current and future clients – and can put Agile development methods to work for your success.

Getting started is easy – join us for an obligation-free and confidential discussion about your ideas and how we can help bring them to life – click here to contact us, or telephone 1800 810 124.

LX is an award-winning electronics design company based in Sydney, Australia. LX services include full turnkey design, electronics, hardware, software and firmware design. LX specialises in embedded systems and wireless technologies design.

Published by LX Pty Ltd for itself and the LX Group of companies, including LX Design House, LX Solutions and LX Consulting, LX Innovations.

 

Muhammad AwaisAgile and Hardware Development – a Successful Partnership

When an organisation or team decides to adopt Agile methodology for their projects, not “staying agile” can potentially lead to problems. Although Agile itself is very broadly defined in the general principles of the Agile Manifesto, and there are many different ways to implement these principles, “staying agile when using agile” is important and straying too far from the underlying principles can potentially lead to pitfalls.

So, how can we keep Agile development agile and avoid common pitfalls when adopting Agile project management techniques?

One of the important things to know about Agile methods is that if they are limited to one development team churning out code, the outcome won’t be truly Agile. It takes a whole organisation to truly be agile, with agile methods supported by management and other staff within your organisation – not just one team without any support for agile in the organisation.

There are several other key success strategies for organisations when adopting Agile methods, such as looking beyond the application “construction” stage and considering the life-cycle context of the application. If organisations only change the way they construct software, without downstream or upstream business changes, this is unlikely to lead to the most effective outcomes with Agile.

It’s important to not be “Agile zombies”, with the inaccurate assumption that just attending a class or seminar about Agile methods and implementing some of the points learned leads to “being agile”. Every organisation is different and is constantly evolving. Continuous learning and improvement is at the core of Agile, and Agile isn’t a strictly defined “one size fits all” recipe.

The methodology itself isn’t a prescribed process or set of practices; it’s a philosophy that can be supported by practices, and no two agile approaches are exactly the same. No one single methodology exists that meets the needs of everyone.

It’s also important for organisations to decide if and where agile adoption is most beneficial for their business, to plan carefully for adoption, and to not adopt “Agile just because it’s Agile”. Organisations should ask questions such as why they want to be agile, what benefits it will provide, and how agility will be achieved and measured. Organisations should ask what cultural or other barriers exist to their adoption of Agile techniques and how they can be overcome.

Without a plan that clearly shapes the initiative, addresses and resolves constraints to agility (for example, removing waterfall process checkpoints or getting support from other required entities), it is more difficult to shape the Agile initiative, staff it, fund it, manage blockers and maintain support from executives.

It’s valuable to ensure that the entire organisation is included in Agile project management – including areas of the organisation that may be overlooked such as marketing or accounting staff. It’s faster and less painless, of course, just to launch an Agile initiative with one team, but this is not most effective.

A single team may gain some benefit from agile, but to be most successful you need to look at the whole process around solution delivery and the numerous people involved. Agile, ideally, should be a change in culture for the entire organisation.

It’s important to find supporters for Agile adoption not only among developers and IT teams, but across all parts of the business unit. In particular it is desirable to try and get somebody from senior management directly involved in Agile adoption, with as much support as you can find from executive management.

Effective agile adoption requires executive sponsorship at the highest level, because these are the people who control resources and can move them as needed to deliver results most efficiently.

Successful adoption of Agile means a shift in the way business views technology, and for most effective results we should recognise that developers don’t like change and many people like working in their own world. As with any cultural shift like this, coaching can be valuable.

Business users will need to learn to work differently with development teams as well. That’s why a coach – either a professional or a designated employee with strong communication and motivation skills – can be an effective part of a new agile team, to help everyone learn to work together most effectively.

Training is also important for success with Agile. Some organisations tend to skimp on training, but Agile is one area where it can be particularly valuable. Managers may only send a few key people to training, in the hopes that they can train the rest of the organisation to implement the new approach for free.

scrum 1

This is unlikely to yield the best results, since Agile is a game-changing initiative, and everyone across the organisation needs to understand it for best results. Continuous improvement is a key principle of Agile development, including continuous development of the team and their skills.

Once again we enjoy illustrating that Agile methodologies can be used effectively with embedded (and other) hardware development if all members of the team embrace the methodology. And that includes the engineering team here at the LX Group – who can bring your ideas to life.

Getting started is easy – join us for an obligation-free and confidential discussion about your ideas and how we can help bring them to life – click here to contact us, or telephone 1800 810 124.

LX is an award-winning electronics design company based in Sydney, Australia. LX services include full turnkey design, electronics, hardware, software and firmware design. LX specialises in embedded systems and wireless technologies design.

Published by LX Pty Ltd for itself and the LX Group of companies, including LX Design House, LX Solutions and LX Consulting, LX Innovations.

 

Muhammad AwaisThe importance of staying Agile when using Agile

The ARM group has recently announced the new ARM mbed IoT Device Platform and an accompanying free operating system, aiming to build on top of the existing mbed embedded development ecosystem to simplify and accelerate the development and deployment of your new Internet-of-Things connected products.

For the uninitiated, mbed is “a platform for developing smart devices that are based on 32-bit ARM Cortex-M microcontrollers. It is designed to provide a highly productive solution for rapid prototyping and product development, with a focus on connected Internet of Things devices.

It is a project developed by ARM, its technology partners and a community of core developers, and it is used by tens of thousands of professional developers to create intelligent products that take advantage of the power of modern microcontrollers and connectivity” (from Wikipedia).

The new mbed platform has been built around open standards and aims to bring Internet protocols, security, standards-based manageability and interoperability together into one integrated solution optimised for the development of cost-constrained and energy-constrained connected devices with the power of ARM’s popular 32-bit processor technology.

The ARM mbed IoT Device Platform is supported by the established and growing mbed hardware and software ecosystem that will provide common building blocks for IoT devices and services. This new platform aims to accelerate the growth of the Internet-of-Things market by enabling innovators to focus on value-add features and differentiation in their product, spending less time on the core processor and connectivity requirements.

The platform is built around the free mbed operating system for ARM processors and devices based around them, and the mbed Device Server, which is analogous to a Web server that accepts connections from Web browsers, but instead it handles the connections from embedded Internet-of-Things devices. The new mbed OS aims to consolidate the fundamental building blocks of the IoT into one integrated set of software components.

The mbed IoT operating system is a modern full-stack operating system that is designed specifically for the popular ARM Cortex-M based 32-bit microcontrollers. Optimised for energy efficiency, connectivity, security and reusable software functionality, as well as being available at no cost, the OS aims to become a foundation that enables widespread innovation in the IoT space.

The mbed OS contains security, communication and device management features to enable the development of production-grade, energy-efficient IoT products.

The mbed Device Server, which is available now, aims to be a key enabler for cloud service providers, operators and enterprises to access the growing IoT market with production deployments, bringing end node devices into the world of web services.

The scalable, industrial-strength mbed Device Server supports the protocols, behaviours and security requirements of IoT devices, making them accessible through APIs to enterprise software, web applications and cloud stacks.

mbed Device Server brings web services to the most demanding enterprise applications in the Internet of Things, utilising open-source protocols such as CoAP/HTTP, MQTT, TLS/TCP, and DTLS/UDP for data communication and device management.

Device Server is a software product that provides the required server-side technologies to connect and manage devices in a secure way, and also provides a bridge between protocols such as MQTT or CoAP that are suited for use in IoT devices and the APIs that are used by web developers. 

 This simplifies the integration of IoT devices that provide “little data” into cloud frameworks that deploy “big data” analytics on the aggregated data, with the scalability to handle the connections and management of millions of devices.

The mbed IoT Device Platform also incorporates the mbed.org Web community, a central website and a community of more than 70,000 developers working with the mbed platform, providing a comprehensive database of hardware development kits, a repository for reusable software components, reference applications, documentation and Web-based development tools.

The mbed developer website hosts all the development tools you need within a Cloud-based Web IDE to give you quick access wherever you are; it is already configured, requires no installation, and will stay up-to-date whenever you decide to use it.

mbed2

Software development has come a long way in a short time, driven by the innovation around the productive programming frameworks, tools and workflows of the Web era, and mbed is bringing these modern tools and design patterns into the world of embedded development with up-to-date, modern workflows and tools inspired by the Web development community.

Inspired by the highly productive programming frameworks, tools and collaborative workflows of the web, it is time to bring embedded development up-to-date. The mbed team is developing free and reliable command-line build, component management and test tools, and a Web IDE and developer web services that help bootstrap your embedded development with the accessibility and productivity one would expect in other programming or software development domains.

These new tools comprise a platform toolkit that can handle the complexity and collaboration requirements of the IoT, enabling you to build complex applications from well-tested software components and to collaboratively develop and improve those components.

The Web-based mbed IDE includes features such as workspace version control, code formatting and auto-generation of documentation for published libraries. You can publish projects directly from your private workspace to the developer website to share code openly with the community if you choose, or pull existing libraries into your workspace to get a head start on your project.

The mbed platform offers 32-bit power to your embedded hardware along with an easy point-of-entry, allowing you to work with powerful hardware and IoT product design. As another option for your existing or new IoT-enabled project, our experienced award-winning engineering team can harness mbed for your success.

Getting started is easy – join us for an obligation-free and confidential discussion about your ideas and how we can help bring them to life – click here to contact us, or telephone 1800 810 124.

LX is an award-winning electronics design company based in Sydney, Australia. LX services include full turnkey design, electronics, hardware, software and firmware design. LX specialises in embedded systems and wireless technologies design.

Published by LX Pty Ltd for itself and the LX Group of companies, including LX Design House, LX Solutions and LX Consulting, LX Innovations.

Muhammad AwaisARM’s new mbed-based IoT Device Platform

The Internet Protocol for Smart Objects (IPSO) Alliance is an organisation, which has served as a resource centre and industry leader since 2008 – whose goal is to seek the establishment of Internet Protocol as the dominant, open standard adopted by industry as the basis for the connectivity of “smart objects”, machine-to-machine and Internet-of-Things networks and applications.

The IPSO Alliance provides a foundation for industry growth by fostering awareness, providing education, generating research, promoting the industry, and creating
a better understanding of IP and other open protocols and standards and the role they can play in the Internet of Things.

Through the work of the IPSO Alliance, many industries have come to realise the benefits associated with using the Internet Protocol within their Internet-of-Things and M2M products and applications. The Alliance is moving forward from explaining “Why use IP in IoT devices” to “How to use IP” down to the individual device level in connected IoT networks.

While the Alliance will continue to educate and inform on the numerous fundamental benefits of IP, it has embarked on defining the set of appropriate protocols, architecture and data definitions for IoT “Smart Objects” so that engineers and product developers working in this field will have access to the necessary tools in order “to build the IoT right” using open standards in a way that the IPSO Alliance considers to be the most valuable for everybody.

Primary goals of the IPSO Alliance are to promote the Internet Protocol as the universal, most secure and most resilient infrastructure on which to base ever more critical and ubiquitous connectivity, and to carry on their core mission of “Internet Protocol enabling the Internet of Things”. It is a goal of the IPSO Alliance to promote the use of IP as the premier solution for access and communication for smart objects as well as to invest in innovation in IP- and open-standards-based Internet-of-Things technology.

The Alliance aims to uphold open standards for IoT connectivity including but not limited to IP, supporting the Internet Engineering Task Force and other technical standards organisations in the development of standards for smart objects and Internet-of-Things connectivity, building on the technical work of these bodies with promotion, outreach and education.

The main objective of the Alliance is not to define new technologies and standards, but to document the use of IP-based technologies defined by the standards-building organisations such as IETF with focus on support by the Alliance of various use cases.

Furthermore, the IPSO aims to promote the use of the Internet Protocol by developing and publishing white papers and case studies and providing updates
on open standards-building progress from associations such as the Internet Engineering Task Force, with a particular focus on Internet-of-Things applications and what IPSO refers to as “Smart Objects”, which promote Web-scale interoperability between IP-connected devices and IoT applications.

The Alliance has recently broadened its standards vision to include education on the best practice for the use of IP and other open protocols to create end-to-end solutions for the Internet of Things, promoting the use of open standards, not just through awareness that these open standards exist but also through education of developers on how to actually use them most effectively in IoT products.

With an aim to understand the industries and markets where M2M and IoT devices can have an effective role in growth when connected using the Internet Protocol, and to organise interoperability tests that will allow members and interested parties to show that products and services using IP-based connectivity for “smart objects” can work together and meet industry standards for communication, the alliance is a beneficial group to further the use of IP in various products.

IPSO aims to build stronger relationships around IP and other open standards within the industry and to create a better understanding of IP and its role in connecting Smart Objects, fostering awareness that the Internet Protocol is an existing, proven networking solution based on open standards that is already deployed and demonstrated to be eminently scalable.

The availability of Internet Protocol, including IPv6 and 6LoWPAN, on constrained embedded systems and low-cost microcontrollers with very limited memory and other resources has made possible a new kind of device and a new kind of Internet, with ubiquitous interoperability between “smart objects” and connected Internet-of-Things devices.

IPSO2

The Internet Engineering Task Force specifies a set of standard protocols for Constrained Resource Environment (CoRE) IP-enabled networks, including the Constrained Resource Application Protocol or CoAP, applicable to low-power and low-bandwidth embedded devices.

CoAP is an application protocol for machines and connected devices, as HTTP is for the World Wide Web, but designed specifically for machine interaction and operation over networks of resource-constrained devices. IPSO’s Smart Object Guidelines provide a common design pattern, an object model that can effectively use CoAP to provide high-level interoperability between “smart objects” and connected software applications on other devices and services.

For more information on the IPSO alliance, you can visit their website from the following URL – http://www.ipso-alliance.org/. And if you’re looking for a partner to help bring your new or existing products to the Internet-of-Things, we have the experience, expertise and team to get the job done. Getting started is easy – join us for an obligation-free and confidential discussion about your ideas and how we can help bring them to life – click here to contact us, or telephone 1800 810 124.

LX is an award-winning electronics design company based in Sydney, Australia. LX services include full turnkey design, electronics, hardware, software and firmware design. LX specialises in embedded systems and wireless technologies design.

Published by LX Pty Ltd for itself and the LX Group of companies, including LX Design House, LX Solutions and LX Consulting, LX Innovations.

Muhammad AwaisIPSO – the Internet Protocol for Smart Objects Alliance

Although the Scrum agile methodology was originally formalised for software development projects, as with other agile frameworks it can be applied well to any complex, innovative project that a team works on.

Scrum is a way for teams to work together to develop a product where product development occurs in small pieces, with each piece building upon previously created pieces. Building products one small piece at a time encourages creativity and enables teams to respond to feedback and change, to build exactly what is needed using a most efficient manner.

Furthermore it’s a simple framework for effective team collaboration on complex projects that provide a small set of rules that create just enough structure for teams to be able to focus their innovation on solving what might otherwise be an insurmountable challenge.

So let’s have a look at how scrum methodology can be applied, and its potential benefits and challenges, when applied to embedded systems and hardware projects. Building complex products for customers is an inherently difficult task, even more so for projects that have a hardware component, and Scrum provides structure to allow teams to deal with that difficulty.

However, the fundamental Scrum process is quite simple and at its core it is governed by a few core roles on the project team. Product owners determine what needs to be built during a “sprint” interval of 1 to 4 weeks and the development team does the technical work to design and build what is needed during this interval, followed by demonstration of what they have built.

Based on this demonstration, the product owner determines what to build next. The Scrum master ensures this process happens as smoothly as possible and continually helps to improve the process.

A key principle of Scrum that differentiates it from traditional project management philosophies is its recognition that during a project the customers can change their minds about what they need or want, and that unpredictable challenges cannot be easily addressed in a traditional predictive or planned manner.

As such, scrum methodology adopts an empirical approach, accepting that the project cannot be perfectly understood or defined in advance and instead the team focuses on maximising its ability to deliver small iterations of progress quickly and to respond to changing or emerging requirements as the project proceeds.

As the team proceeds through the “backlog” of tasks during a scrum project, it is accepted that changes can and will happen – the team may learn about new market opportunities to take advantage of, competitor threats that may arise, or customer feedback may change the way the product is supposed to work.

When it comes to hardware projects, the time constraints involved in fabrication of printed circuit boards, the ordering of components, hardware assembly or other external manufacturing dependencies and the commitment to a particular hardware prototype design once it has been sent for manufacturing can potentially make it much more difficult to respond to new or changing customer specifications or requirements within the fixed timeframe of a given sprint.

If these kinds of factors in ordering or manufacturing hardware devices exceed the time allocated for a sprint, these manufacturing issues can present a unique challenge when trying to apply agile methods to hardware development.

The “sprint” is the basic unit of development effort in a Scrum project, a period of typically 1 to 4 weeks in which development occurs on a set of “backlog” items that the team has committed to, restricted to a specific time duration which is fixed in advance for each sprint.

Over the course of a sprint the project team has a physical, co-located, “stand-up” meeting every day to communicate between the team and assess its work, while the scrum master keeps the team focused on its goal along the way.

scrum 1

For hardware projects, increasingly popular and accessible tools and technologies such as small-scale CNC milling, 3D printing, and laser cutting are becoming more important for rapid prototyping and agile hardware development, allowing components such as custom plastics or simple PCBs to be rapidly prototyped, demonstrated to the product owner and evaluated within a sprint.

A prototype iteration of a hardware system doesn’t have to physically involve hardware. Simulation and visualisation tools, such as SPICE for electronic engineering, 3D rendering of mechanical components and PCB component dimensions, and thermal modelling for predicting heat transport with a device enclosure, for example, can all play an important role in assuring the quality, interoperability, industrial design, electrical and thermal performance and the “look and feel” of all the components that come together into a new product even before a prototype is actually physically constructed.

These tools and techniques can also be valuable to demonstrate hardware design and engineering progress relatively quickly, within the finite timeframe of a sprint, if the manufacturing of physical prototype hardware will take longer.

Once again this shows that agile can be used effectively with embedded (and other) hardware development if all members of the team embrace the methodology. And that includes the engineering team here at the LX Group – who can bring your ideas to life.

Getting started is easy – join us for an obligation-free and confidential discussion about your ideas and how we can help bring them to life – click here to contact us, or telephone 1800 810 124.

LX is an award-winning electronics design company based in Sydney, Australia. LX services include full turnkey design, electronics, hardware, software and firmware design. LX specialises in embedded systems and wireless technologies design.

Published by LX Pty Ltd for itself and the LX Group of companies, including LX Design House, LX Solutions and LX Consulting, LX Innovations.

 

Muhammad AwaisUsing Scrum methodology for Hardware Development