All posts tagged: open

The panStamp development environment for wireless sensor networks and Internet-of-Things applications is based around compact, low-cost microcontroller boards including a built-in sub-gigahertz radio transceiver, providing the necessary connectivity and processing power to create autonomous low-power wireless sensor and actuator nodes with almost everything contained in a 24-pin DIP module that is compact, low-cost, easy to program and to use.

It’s easy for anybody to get started with the open-source panStamp platform, allowing you to measure almost anything by connecting a panStamp up to some sensors, connecting a small battery, writing some simple Arduino-compatible code and transmitting data wirelessly, providing a convenient solution for any kind of project needing low-power wireless communications or telemetry, such as home automation, energy metering, robot control or weather monitoring. 

The panStamp platform makes it easy and accessible to get started creating wireless sensor networks and other wireless systems for both professional and hobbyist users.

Modules are very easy to program and configure, and they can be plugged into many different kinds of commercially available base boards containing different sensors, actuators and power supplies, or the user can develop their own custom base-board hardware to meet their needs, with all the complexity of the microcontroller and radio hardware contained on the panStamp module. 

Wireless boards run a compact stack and communicate with each other using a simple protocol called SWAP, using the 868 or 915 MHz ISM radio bands, offering lower congestion and longer range compared to 2.4 GHz solutions. The lightweight, open-source SWAP protocol that powers the panStamp radio stack is designed for use with Texas Instruments CC11xx radio hardware in resource-constrained wireless sensor network and machine-to-machine applications, typically consuming only about 7kB of flash and less than 1kB of RAM.

Everything has been designed to perform efficiently, quickly and with good power efficiency with one of the most compact wireless stacks on the market, allowing developers to focus on their applications without worrying about low-level details of the microcontroller and radio implementation. 

However, the platform is all free and open-source, so those details of low-level implementation are available for developers to look at if you want to. The panStamp project provides a complete solution to allow you to build wireless sensor networks that are connected to the cloud – not only microcontroller and sensor boards, but also the communications stack, protocol definitions, network controller and management tools to get your network of sensors up and running and connected to cloud services. 

panstamp2

From the data collection and actuation to transmission, data management, event handling and IP tunnelling, panStamp aims to provide easy connectivity of wireless devices to cloud services and other Internet-of-Things services in a way that is accessible regardless of your technical background.

Most of the core features of panStamps hardware, such as power management, the real-time clock and the RF transceiver are controlled inside the panStamp library, so the user doesn’t have to deal with the 
low-level programming required to control these hardware peripherals. To consider some of the standard base-boards available for use with panStamp modules, a good starting point is panStick, which is a USB-connected motherboard for panStamps. 

The panStick is used to program panStamps, and also acts as a serial gateway from your PC to the wireless network. You simply place a panStamp on the panStick, program the panStamp with the modem application, and plug the dongle into your computer. This is the simplest way to connect panStamp RF networks to any software on your PC, including the SWAPdmt device management tool for SWAP networks and the Lagarto software for cloud service connectivity.

The panStamp shield for Raspberry Pi adds connectivity to panStamp radio networks on the Raspberry Pi via its UART, combining low-power wireless connectivity with the Pi’s Ethernet or 802.11 networking and more powerful computing capacity, providing a gateway from the panStamp network to the Internet without the size or power consumption of a traditional PC. 

This shield essentially provides the Raspberry Pi with an RF “modem”, as well as providing a DS1338 real-time clock with battery backup to allow the Raspberry Pi to keep the current time without power or network connectivity.

The panStamp AVR module is based around an Atmel ATmega328P microcontroller and TI CC1101 radio transceiver, and is fully compatible with the Arduino bootloader and IDE. Developers can create their own programs and upload them to panStamps using the standard Arduino IDE, making the panStamp platform very accessible and easy for everybody to get started with, especially if you have previous Arduino experience. 

The more powerful, advanced panStamp NRG module is based around the TI CC430F5137, which combines TI’s MSP430 low-power 16-bit microcontroller with a sub-gigahertz radio transceiver on the die, providing a neat, single-chip, power-efficient solution for sub-gigahertz wireless sensor networks. 

The panStamp NRG module is fully compatible with the Energia IDE, a port of the Arduino IDE for the Texas Instruments MSP430/Stellaris microcontroller family. This allows the developer to easily get started with software development for these relatively powerful 16-bit, power-efficient microcontrollers with the same ease of use and same language and development environment that will be familiar to Arduino users.

The radio hardware used in panStamps can typically achieve a transmission range of about 200 meters in open spaces at 38400 bps and 0 dB transmission power, using only a small wire antenna. Using higher transmission power configurations, external high-gain antennas connected to the SMA connector available on panStamp boards, or slower bit rates, it is likely that substantially larger transmission distances could be achieved if this is what your application requires.

The Lagarto software platform allows you to monitor and control panStamp devices remotely from your PC or Raspberry Pi, process the data coming in from your network of devices and deliver it out to the network or the Internet using different mechanisms, for example for connectivity to cloud services. Lagarto is an open automation platform for use with SWAP networks, panStamps and other low-power wireless sensor network technologies, connecting SWAP networks to the IP domain and to the Internet. It is a lightweight solution, designed to run on low-power LAN connected platforms such as embedded plug computers and the Raspberry Pi. Lagarto’s extended automation module has the capability to run complex tasks locally and also connect local networks to remote data services. 

Furthermore the cosm, GroveStreams, ThingSpeak and openSense Internet-of-Things web services are currently supported with connectivity to Lagarto out of the box at the present time, with support for new platforms likely to be added in the future.

Also, panStamps are now officially supported in OpenRemote, a powerful open-source home automation software for iOS and Android devices. One of the major attractive features of OpenRemote is the capacity for anyone to create custom graphic layouts for their preferred mobile platforms for free using OpenRemote’s online designer, uploading the generated files to a computer running OpenRemote Controller and have these custom controller layouts on their mobile device interoperable with a wide range of automation hardware including but not limited to panStamps.

Thanks to the open-source nature and low hardware cost of this platform, it’s simple to get prototypes of IoT systems up and running – which also translates to lowering the cost of the system development through to the final product. However if you need any form of guidance from consulting through to end-product manufacturing and support – we can partner with you – finding synergy with your ideas and our experience to create final products that exceed your expectations.

To get started, 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 IoT made simple with panStamp

Let’s take a brief look at the FreeRTOS operating system, and the FreeRTOS+Nabto platform. It’s the market-leading, real-time operating system (RTOS) for embedded systems that is not only open-source, high quality and well supported – but also provides strong cross-platform support across 33 different architectures, access to high-quality training and information, pre-configured example projects and a growing user community.

Furthermore FreeRTOS is available in a high-reliability TUV-approved version for demanding, safety-critical applications – providing peace of mind to commercial users, with strict configuration management to ensure high quality development of the FreeRTOS project’s code, and FreeRTOS is free to embed in commercial products without any requirement to expose your proprietary source code.

By combining the FreeRTOS real-time operating system with the patented Nabto peer-to-peer remote access communication platform for embedded systems, you can harness a simple and secure HTML5 or native application interface for your end users, along with an adaptive and flexible data-acquisition interface for data collection, central analysis and monitoring systems.

The resulting combined system brings simplicity, platform independence, inclusive cloud hosting services and entry level access to Nabto’s Internet-of-Things solution together into an interesting easy yet powerful real-time platform for use with embedded Internet-of-Things systems.

FreeRTOS+Nabto is a small piece of C code that, when integrated into an embedded networked device, allows that device to be remotely accessed and controlled through a rich web-based or native iOS or Android app-based interface or intelligent data acquisition system – consuming less than 23 Kb of flash in a typical system including both the FreeRTOS kernel and the IP stack.

Each device has a unique URL, allowing the device to be automatically located across the Internet, and the Nabto technology allows secure, authenticated and bandwidth-efficient peer-to-peer connections to be established even when the device is deployed behind a NAT firewall which removes the complexity of configuring firewall penetration for embedded Internet-of-Things devices in enterprise environments. 

FreeRTOS+Nabto enabled devices can also be accessed over the local network in the absence of Internet connectivity. As FreeRTOS+Nabto is a new, simple, cross-platform and fully integrated solution for the Internet of Things, it provides a cloud infrastructure that enables IoT devices to be accessed through a rich user interface running in a web browser or a smartphone app – requiring the device itself to only supply the live sensor data and no other components of the interface, supplying this data via UDP in a lightweight way.

Free RTOS

This means that the embedded devices themselves can be kept simple, power-efficient and lightweight – the use of cloud technologies means small FreeRTOS+Nabto devices can be given rich user interfaces without the need for any on-board filesystem or a TCP/IP stack, only relatively lightweight UDP/IP networking support.

These rich user interfaces can be accessed locally via the LAN or anywhere in the world via the Internet, from a computer, tablet or smartphone, with local device discovery and unique and resolvable URLs for each FreeRTOS+Nabto device provided over the chosen domain (LAN or Internet), solving the traditionally difficult problem of naming and uniquely identifying devices in large Internet-of-Things networks.

Using FreeRTOS+Nabto you can connect to a remote IoT device wherever that device is at the time of the connection simply by knowing the device’s unique URL, and being securely authenticated as a legitimate user, with the system handling all the networking, routing and encryption necessary to securely network your IoT devices, address and find them – across the LAN or across the Internet.

All you need to do as an application developer is compile the source code, write a single interface function, and make use of the FreeRTOS+Nabto fully managed cloud service. Instructions and tutorials are provided to make this easy for you, with a strong community of users and the availability of professional support for commercial customers.

Different web content can be served to different geographic regions, moving the burden of internationalisation from the embedded device into the cloud, allowing for even smaller code size and simpler more maintainable designs. All the network routing and protocol details are encapsulated within the FreeRTOS+Nabto product and its inclusive cloud hosting service, enabling FreeRTOS+Nabto to interface with the user’s application source code through a single C function, and enabling FreeRTOS+Nabto to be accessible to users and developers without an advanced level of existing networking expertise.

The FreeRTOS+Nabto platform includes a fully documented live online example that is running on a small real-world microcontroller and a separate project that uses the FreeRTOS Windows simulator. The Windows simulator version creates live virtual FreeRTOS+Nabto nodes on a local network to allow FreeRTOS+Nabto to be evaluated quickly and easily and without the need to purchase any specific hardware.

Although the simulator differs from FreeRTOS running on real hardware in that it does not exhibit real-time behaviour, the ability to set up a development environment, create and experiment with FreeRTOS+Nabto Internet-of-Things applications on a local network before purchasing any specific hardware is still a very useful and attractive capability.

Thanks to the open nature of FreeRTOS, it can be used in a wide range of embedded hardware and become part of your new or existing IoT products. As experts not only embedded hardware but also full idea-to-delivery of products, our consultants and engineers can work with you to meet your goals.

The first step is to 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 AwaisFreeRTOS – the cross-platform OS for Embedded Hardware

The Pinoccio platform is based around the Pinoccio “Scout” board – a small, inexpensive microcontroller development board based on the Atmel ATmega256RFR2 microcontroller with built-in 802.15.4 2.4 GHz radio, aimed at quick and easy development of wireless, mesh-networked systems and projects without worrying about common challenges such as efficient battery power management, FCC certification and mesh networking protocols.

This hardware offers an integrated Web platform and API so you can easily get started talking to the Web with your project right out of the box, and a built-in lithium polymer battery on every board that is recharged via the same micro-USB port used for programming, with a battery runtime from days up to over a year depending on the software configuration and how the microcontroller and radio are used.

Pinoccio aims to provide an inexpensive but powerful, FCC-certified, power-efficient, mesh-networked and Internet-ready platform for easily accessible Arduino-style development, wireless sensor networks and Internet-of-Things experimentation.

A network of Pinoccio nodes are connected together via a lightweight 802.15.4 mesh network, using the 802.15.4 radio incorporated in every board to network with any other board that shares its Personal Area Network (PAN) ID.

At one or more nodes in the network, the Pinoccio node is equipped with a Pinoccio Wi-Fi board, based on the Gainspan GS1011MEPS 802.11 WiFi module, that connects the 802.15.4 mesh network to your wireless LAN. This means that every Pinoccio node is connected to the LAN and to the Internet, but with a substantially cost and substantially lower power consumption than would be needed if every node in the network was equipped with an 802.11 wireless LAN chipset.

The ATmega256RFR2 draws less than 20mA of current with its microcontroller and RF transmitter running during active transmission – about 10% of the current consumption of a typical Wi-Fi device. The ATmega256RFR2 can be put into sleep states with far lower power consumption as well, with “wake-on-radio” capability to wake up the microcontroller when the wireless network indicates.

With a WiFi connection on at least one node, every Pinoccio board in the mesh network is connected to the Internet. Routing between nodes is supported, so if board A and board C are out of reach of each other, but they can both reach a board B, then B will route packets for A and C to reach each other.

Even if one of the Scouts is out of WiFi range, the others will route its data up to the Web. Pinoccio uses a lightweight mesh networking stack by default – not ZigBee, for example, although there is no reason why advanced users can’t deploy a ZigBee stack on the Pinoccio hardware if they wish.

This coordinator-less mesh network stack is a lightweight alternative to coordinator-based network architectures. Several network configurations are possible, including the traditional coordinator/router/end-node, as well as a completely decentralised peer-to-peer mesh network with routing.

All Pinoccio Scout nodes can be programmed wirelessly, over the air, in a way that is fully compatible with the Arduino IDE – each node in the 802.15.4 network simply appears, with the Pinoccio networking software installed, as a virtual Arduino-compatible serial port in the Arduino IDE.

Without WiFi connectivity, however, users do still have the option of programming each board directly from a PC, via the USB port, just like any Arduino-compatible device, and more advanced users can talk to the chip via traditional hardware interfaces like ISP and JTAG.

You can have your Pinoccio boards scattered all over an area on a wireless mesh network, each doing their thing, and when you need to update the code on one, some, or all of them you can just do so wirelessly from your computer.

If you have Pinoccio boards within an installation, which are difficult to get to, you can easily update their software over-the-air, post-installation, offering a level of convenience that is hard to achieve with other microcontroller development platforms.

You can update a range of boards by listing several of them, or send an update to all boards in the network at once, sending out a single update broadcast. A single update could be sent out to 100 Pinoccio boards if they all need to be updated, and they would all receive the broadcast and update themselves.

The real value of the Pinoccio platform doesn’t just come from the Pinoccio Scout boards, but from the entire stack – from the physical hardware to the API and Web service and back. This includes features like over-the-air firmware updates, optimised mesh networking and the ability to easily move data between multiple Pinoccio boards across the mesh network, to the Web and back again.

LX2

Along with easy routing, discovery and beaconing, provisioning a new Pinoccio WiFi bridge node to the larger Web, and the use of low-bandwidth-friendly protocols like MQTT, Pinoccio is a platform that provides a high level of openness and interoperability.

Pinoccio is aimed at being very easy to use, power efficient, Arduino compatible, and completely open source, providing a complete end-to-end ecosystem for building the Internet-of-Things, but with open standards and without proprietary lock-in.

The Pinoccio API completes the last mile between your network of Pinoccio hardware and the Web, allowing you to send and receive messages between your board and the API. However, using the Pinoccio API is totally optional – you own your data, and you can run your own web server to talk to your Pinoccio devices if you wish. Every Pinoccio board can have its own REST-based URL, and it can respond to HTTP POST and GET requests, with the 802.15.4 mesh network and the WiFi bridge doing all the routing for you.

Pinoccio aims to support websockets and webhooks, allowing easy connectivity with Web services, and saves and logs all the data pushed to the API from your devices.

Unlike some other options on the market such as Electric Imp, Pinoccio offers a pre-baked end-to-end platform and Web service with a tightly integrated web-hardware experience to allow everybody to easily, quickly get up and running with a network of devices talking to a Web service – without locking you in and forcing you to only use their servers and Web services with their hardware.

The Pinoccio Scout is open-source hardware – you can download the hardware schematics, board layout and bootloaders freely. Pinoccio strives to use open, industry-standard protocols that are standardised by groups such as IETF and OASIS where possible.

Pinoccio currently uses MQTT as the core messaging protocol for the Pinoccio API on top of Atmel’s Lightweight Mesh Protocol and the IEEE 802.15.4 MAC and radio physical layer, and is considering moving towards 6LoWPAN and RPL in future once these standards are more mature and more work is done in this area in the IETF working group.

One vision of future work that the Pinoccio team has is to have each board accessible from the Internet with a unique IP address, using IPv6/6LoWPAN and a WiFi bridge at one node. Shying away from non-standard protocols, Pinoccio supports HTTP and MQTT-S (MQTT for Sensor Networks) out of the box – but, again, without locking you into any particular choices, if you’re willing to put a bit of work in yourself to implement other protocols.

Pinoccio has good security capability available in every part of the network stack, which is attractive for automation networks and Internet-of-Things applications. The ATmega256RFR2 microcontroller has hardware-based AES128 encryption, along with a true hardware random number generator.

It’s simply a matter of defining a shared secret in your code to enable encryption for the entire mesh network. With the support for TLS sockets in the Pinoccio WiFi module, complete encryption is supported from the device to the Web.

Although still in the beta stage, the Pinoccio system holds great promise as an inexpensive and open mesh networking system which could be applied to new or existing IoT-enabled products.

If this is of interest, or you need guidance for any or all stages of product design – the first step is to discuss your needs with our team of experienced engineers that can help you in all steps of product design, from the idea to the finished product.

To get started, 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 AwaisPinoccio – an upcoming Mesh Networking Platform

Since the early days of computer and networking development in the late 20th century, the open-source hardware and software movement have become a growing force in the world of agile product development.

Using such open-source methods may seem to be a great idea, however there are some potential advantages and disadvantages of choosing to use open-source software and hardware – both using other people’s existing open software or hardware technology, or releasing your own intellectual property as open-source software or hardware for use in the development of Internet-of-Things solutions. What are some of the potential benefits and challenges associated with open source?

For some proponents of open source technology, the most important advantage of open source technology is that it is “free as in free speech”, and this means that software, updates, or other technology or support cannot be withheld by some company – åjust because it decides that you shouldn’t be using their software any more for whatever reason; they can’t just take their ball and go home.

With open-source software or hardware nobody can stop you from using it down the line, and there is at least some form of future access to the technology, even if it is obsolete, less popular or less well supported in the future.

Another key selling point often associated with open software or open hardware is that it is often, if not usually, free as in zero money. Sometimes developers or software vendors may provide an upgraded product, special features or special paid maintenance or support for an open source product – where these special features are commercialised on top of an underlying open-source platform, but generally the underlying open software or hardware technology is freely available for you to work with.

With modern Internet bandwidth, free software can easily be distributed in minutes via Internet download, without the cost of distributing or producing physical disk media. This makes it possible to get free software into the hands of users cheaply and conveniently, which is obviously good for the user, but also good for the software developer because new software can reach many users much faster, getting used in people’s hands sooner and with much greater potential uptake. This can be particularly attractive to small, independent developers.

Obviously in the case of Open Hardware this is a little different, since hardware still costs money to manufacture. However, Open Hardware generally means that design information such as schematics or CAD/CAM design files are freely downloadable for users to look at or potentially incorporate into modified versions or their own electronic designs.

This re-use of existing designs and technology, if you’re happy with the terms of the open-source licenses that may be used, can make design and prototyping faster, potentially getting your product to market (or a potential product or prototype ready for the investment or crowdfunding stage) that much faster.

In many cases, an open source software or hardware project is developed by one person who is often frequently directly accessible to users for direct advice or support. Many authors will provide helpful, patient support – often with a direct level of technical literacy that you’re often not likely to get from commercial “user support” staff reading from a script.

Even if you can’t talk directly to the developer, many open source software or hardware projects will have some kind of associated mailing list or web forum for community discussion, where other users or developers can help you out with advice and support.

Open source software and hardware allows you to get “under the hood” with the design details in a way that you can’t with proprietary technology. This means that you can inspect the engineering, fix problems, identify potential vulnerabilities, and extend or modify the engineering to suit the needs of your application. This is clearly in contrast to closed software or hardware where you are basically at the mercy of the commercial developers when it comes to future development suggestions, security advisories or bug fixes.

One argument in favour of open source technology is that it can be more secure – with many developers and users looking over the source code, security vulnerabilities become much more visible. Whereas closed source software depends to some extent on “security through obscurity”, open source software brings with it an expectation that having lots of users and developers looking through open-source code, maintaining, developing and tweaking it results in better, more secure software – where potential vulnerabilities are detected and corrected.

Applying this sort of “peer-review” to open source software means that the white-hat hackers are able to keep ahead of the black-hat hackers – or, at least, any unfair potential advantage that the black-hat hackers have is minimised.

Nevertheless, we must recognise that this applies a bit differently to hardware than it does to software. If a security vulnerability is discovered in a piece of software and it is openly discussed, a patch can rapidly be developed to correct it and deployed freely to everybody using that software, quickly and easily, thanks to the Internet.

However, if a security vulnerability is discovered in some hardware system which is used by tens of thousands of customers worldwide, what happens if it is not possible to deploy a software or firmware update to correct the problem?

If fixing the vulnerability requires actually buying new hardware to replace an otherwise mostly functional hardware device it is clear that customers may be reluctant to do this, and many systems may be left insecure. In such a situation, if a security vulnerability is discovered and discussed openly then this can easily have more negative effect on security than it does a positive effect, at least in the short term, or in small businesses or home environments where the hardware upgrade may be financially prohibitive.

Another potential advantage of open source technology is that it encourages commercial technology companies to try harder to make their own offerings more attractive, and it encourages innovation and competition – especially when the agility and speed of development by individual open source software or hardware developers, or small businesses, is taken into account.

Open source technology raises the bar, effectively, by saying to customers that this certain set of functionality is what you can get “free as in free beer” – and, to be honest, this is as far as it needs to go for “open source motivation” with some customers. This sends a message to commercial vendors that they may need to offer superior functionality, superior support or usability in order to remain competitive with open-source offerings.

LX2

Commercial developers can’t rest on their laurels, and are constantly motivated to innovate and improve their product. Otherwise, an open source product will come along that eats their lunch – as long as it is providing a comparable level of quality, usability and support.

On the other hand, smaller existing commercial hardware or software offerings may not be able to compete with a product that is available for free, and some may argue that open source competition can create a situation to anticompetitive “dumping” – dumping a whole bunch of product on the market at low or no cost in an effort to drive prices down, potentially forcing competitors out of business.

Thus when considering the use of open-source technologies for your next product design or iteration – there are many perspectives to take into account. Do you keep your product “open” and take advantage of the cost savings – but risk higher levels of competition? Or do you work with a closed or existing commercially-available ecosystem?

There’s much to consider, and if you’re not sure which way to turn – the first step is to discuss your needs with our team of experienced engineers that can help you in all steps of product design, from the idea to the finished product.

To get started, 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 AwaisThoughts on Open-source Product Development

JSON, or JavaScript Object Notation, is a lightweight open standard format that uses human-readable text to transmit data objects in the form of pairs of attributes and values. It is used primarily to transmit data between a server and a web application as an alternative to formats and languages such as XML for lightweight, flexible formatting of data for Internet communication in a way that is both machine-readable and human-readable.

Let’s look briefly at how JSON can be used, how it compares to XML (Extensible Markup Language), and the role JSON can play as a lightweight format for information transport in Internet of Things and embedded applications. In an Internet-of-Things application, every “Thing” connected to the network should have an API that allows access to key data elements.

This data needs to be streamed at an appropriate rate over the Internet to a server directly, or to a gateway or other device in the local network. Near-real-time access to sensor data at the gateway or at the server allows contextual information derived from that data to be served up in a timely manner, so minimising network overheads is clearly valuable.

JSON

Although originally derived from the JavaScript scripting language, JSON is a language-independent data format and code for parsing and generating JSON data is readily available in a large range of programming languages, making it easy to get up and running with the language of your choice. JSON objects are human readable – they are basically freeform text documents. Whilst JSON objects contain rich information and are a highly flexible way to represent data, they are easy for programmers and database administrators to use.

XML is well established as a language of choice to describe structured data and to serialise objects, and various XML-based protocols exist to represent the same kind of data structures as JSON for the same kind of data interchange purposes. When data is encoded in XML, the result is typically larger than an equivalent encoding in JSON, mainly because of the presence of closing tags in XML.

While the API is a key consideration in implementing a RESTful solution for moving around and accessing your data, the format of the payload is also equally as important. XML is one traditionally popular language in these sorts of applications, but JSON is not as verbose as XML and does not contain detailed processing instructions. Being a more lightweight data interchange format, it is faster to use JSON to send bits of data, such as data from a sensor for example, around the Internet of Things.

JSON is promoted as a lower-overhead alternative to XML, providing similar data exchange capabilities with support for creation, reading and decoding of data in the real world with lower overhead. The increasing popularity of REST over SOAP in modern APIs also promotes greater use of and support for JSON as the preferred data exchange format, since you are no longer limited to only returning XML.

JSON-RPC is an RPC protocol built on JSON, as a replacement for XML-RPC or SOAP. It is a simple protocol that defines only a handful of data types and commands. JSON-RPC allows for notifications – information sent to the server that do not require a response – and for multiple calls to be sent to the server that may be answered out of order. This flexibility in choosing messaging options to get the data where it is needed with the priority that is needed in the most lightweight possible way is attractive in resource-constrained and bandwidth-constrained Internet-of-Things networks or embedded systems.

JSON1

Modern web browsers incorporate native JSON encoding and decoding, increasing performance due to the fact that functions no longer need to be parsed as well as eliminating potential security vulnerabilities where JSON is evaluated as Javascript. Native JSON is generally faster compared to the JavaScript libraries used in the past to parse JSON, as well as more secure.

As an example of JSON in use for an existing embedded Internet-of-Things solution, the “Razberry” platform. This adds the hardware required for the Z-wave wireless home automation protocol to the Raspberry Pi single-board computer, turning an inexpensive device into a Z-wave home automation gateway and exposing control of your home automation network via a JSON interface.

Furthermore Google BigQuery added support for JSON a few years ago, explicitly mentioning the potentially useful role of JSON in connecting data collected from sensor networks and the Internet of Things to BigQuery, bringing the power of Google’s Big Data manipulation expertise together with the Internet of Things and sensor networks as the sources for that Big Data.

JSON is one of many tools available in the Internet-of-things toolbox, and can easily be used with many applications. And here at the LX Group our engineers have an excellent understanding of the standards required for effective communciation between devices within Internet-of-things platforms, and are ready to integrate it with your new and existing products.

To get started, join us for a 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 AwaisJSON – the Open Data Object

When designing hardware to integrate with an Internet-of-Things solution, or an entire solution – it can be easy for the design team to focus on the software, server and control system due to the ease of prototyping and the availability of experienced people. It’s a common philosophy that once the software is “sorted out” – the hardware can be easily designed to work with the system. Thus it can be tempting for organisations who move towards IoT solutions to focus on the software more than the hardware as it may seem at the outset to be more complex and more difficult part of the system.

However hardware design cannot be overlooked or resources in that field minimised. There is much more to consider than just what “the hardware will do” – the consideration of which type of IoT system to work with needs to be executed – and in conjunction with that the choice of which hardware design path to take. 

After deciding on which IoT platform to design your hardware for, the choice of hardware design path is crucial to the success of your IoT implementation. Even if you’re developing for internal use, or offering hardware or turnkey systems to customers – the choice of hardware design can play a part in the long-term success or failure of the system.

When we say the “choice of hardware design” it is not the actual type of device (however that can also play a part in success or failure) or design tools used to create something – it is the choice between one of hardware design paths. That is, will you choose proprietary hardware interface designs from an existing supplier; create your own hardware and protect the intellectual property with copyright and possible patent protection; or open-source your design to some degree to allow input and contribution from internal and external customers? There are pros and cons to each method, so let’s examine them in some more detail.

Existing design – This is the easiest option for your design team, as the hardware interface to the required IoT system has been designed, tested and ready for integration into your hardware. To resell your own devices based on an external system can require licence or royalty payments to the system provider, however this will often be returned “in kind” with marketing support, referrals and leads from the system provider. However you’re at the mercy of the success or failure of the host system – which could leave you with outdated and useless hardware that can be at least difficulty to modify or at worst a total write-off.

Internal, protected design – With this option you have access to the required interface design from the IoT system provider that allows you to create your own hardware instead of buying or licensing technology from the provider. It gives you total control over the hardware design – including possible modularity between the IoT interface hardware and the product itself, in case of system failure (as mentioned previously). Furthermore you have complete control of the design, maintain all IP, and can market your designs as an exclusive product that’s compatible with the system. However all design, support and revisions will happen in-house.  

Open-source – After a few minutes searching on the Internet it may seem that almost everyone is open-sourcing their designs to allow all and sundry to review, modify, critique and sometimes re-manufacture their products. This method is preferable if you are offering paid access to the server-side infrastructure or you are happy to allow others to create devices that compete with your own hardware to quickly allow customer take-up of your IoT system. Furthermore you can build a community around users of your system, which can reduce the support load and generate good-will.  However taking this path in essence abandons revenue from hardware sales and any intellectual property your team have created. Finally, larger customers may see this product as insecure (even if it offers encrypted data transmission) due the openness of the designs.

Here at the LX Group we can discuss and understand your requirements and goals – then help you navigate the various hardware and other options available to help solve your problems. We can create or tailor just about anything from a wireless temperature sensor to a complete Internet-enabled system for you. For more information or a 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 AwaisLX Group discusses Hardware design directions for IoT integration

As the pace of product design and development always seems to be increasing due to market forces and technological innovation, the one factor that can often affect the speed is the budget available for research and design. More engineers are being tasked to achieve more with less, and although that may be possible with hardware, the financial cost of doing so may not be possible.

Due to these time, financial and other pressures there is one method that has become increasingly popular – the use of manufacturers’ development boards, open-source hobbyist platforms and similar products in the design stage. This is perfectly acceptable and often an inexpensive way to test unfamiliar microcontrollers in an inexpensive manner – some boards can be acquired for less than ten dollars, less than the cost of the MCU itself.

However in doing so, the design team can quite easily fall into a trap – and one that can be very difficult and expensive to extract the organisation out of. This is using the actual development board in the final, manufactured product design. However like many things in life, it may have “seemed like a great idea at the time” – but there are several potent reasons why this is a bad idea. Let’s run through them now.

Volume – can you get the required number of development boards for manufacturing? When a new microcontroller is released, it may be followed with a few thousand inexpensive boards – that can vanish from retail channels six months later, never to be seen again. If your product becomes popular you will need to redesign to allow for a new microcontroller board.

Reliability – it’s all very well to bolt in a development board and have the assembly team either insert interface wires or solder into the connectors, however this adds another layer of complexity and another area that will not be resistant to vibration, harshness or corrosion. Furthermore you will need to keep stock of replacement boards for servicing – for the lifetime of the product. And as mentioned earlier, boards may not be available over the long term. So you need to stock up in advance, which is a calculated gamble of your operating capital.

Intellectual Property – naturally you can incorporate a microcontroller into your design and own the IP over that design. However if you incorporate the manufacturers’ development board, the copyright over the total product design and thus your intellectual property rights can be weakened or removed by the terms and conditions of the development board use. Furthermore, by using the development board in final designs, it is easier for your competitors to analyse the design in terms of build cost and general design.

Is it Open Source? – some development boards are released under a variety of licenses such as Creative Commons or full Open Source hardware-software. By using these products you are then morally required to release your product built on this hardware using the same (or more open) licensing as the original development platform. In the hobby or kit market this may seem like a good idea, but not for commercial products. Releasing designs for your product just helps the competition.

Reputation – What would your customers think of your design if they realised it was based around a development board? It looks cheap, shoddy, and can often prompt people to think that “if it’s that easy, we could do it ourselves!” – even though you realise it is not. Furthermore this could create difficulty with the development board manufacturer and weaken the relationship – as the purpose of development boards is to allow inexpensive prototyping and encourage the purchase of their products at a commercial rate.

Thus there are many reasons not to cut corners and use these development boards in your design. However this will not solve the problem of getting your design to market on budget and on time. In situations where time and money is critical, it can be much easier to outsource any or all stages of hardware design to manufacturing to an experienced, trustworthy partner with agreements on final deadlines and expenses – such as here at the LX Group.

We have large engineering team with a wide variety of experience in all stages of design for various markets – including the domestic, commercial, industrial and military arenas. We can take your design ideas and product the required customised solution for your team, or even follow through to final completion, including documentation, standards compliance and revisions.

To move forward with your design requirements on time and on budget, simply contact us for a 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. https://lx-group.com.au

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 AwaisPitfalls of Development Boards in your Final Product