When considering methods of adding Internet-of-things connectivity to existing or new ideas, being able to integrate open-source hardware can help reduce hardware target costs, however support and development advice can be lacking due to the distributed nature of open hardware development.
However with the openPicus ecosystem, we have found an inexpensive hardware choice that is also fully supported by the manufacturer and also allows for integration into final, closed products. The openPicus ecosystem provides user-friendly Internet connectivity for the relatively easy development of Internet-of-Things applications.
openPicus is based around the openPicus Flyport family of low-power, network-connected microcontroller modules, which are available in three different versions, with either Wi-Fi, GPRS or Ethernet connectivity but with the same microcontroller and an otherwise equivalent module pinout.
Each Flyport module is pinout-compatible, allowing the same underlying hardware design to be assembled with different Flyport modules to meet changing connectivity needs that your customer may have. All Flyport modules are based around the same Microchip PIC24FJ256 16-bit PIC microcontroller, making firmware development easily portable across the different modules.
openPicus provides an IDE, comprehensive documentation, tutorials and a consumer discussion forum for its products, aimed at enabling developers of cloud services and mobile apps to use the system to prototype and develop Internet-connected hardware solutions relatively easily with minimal electronic engineering expertise.
Flyport is an open platform, providing an embedded webserver (for the Wi-Fi and Ethernet-connected modules), support for both infrastructure and ad-hoc Wi-Fi network modes (for the Wi-Fi version of the module) and sleep and hibernate modes for efficient power use when operating from batteries.
Each of the Flyport modules provide up to 18 digital I/O pins for interfacing to external hardware, four 10-bit ADC input pins, 4 UARTs, SPI and I2C interfaces. The Ethernet and Wi-Fi versions of the Flyport modules include two megabytes of external flash memory on board, and all versions include an internal real-time clock in the microcontroller.
The Flyport modules are all powered by the openPicus framework, which is itself based on the FreeRTOS real-time operating system. An IDE is provided, free, to make it easy to develop your own applications running on top of Flyport technology. Flyport modules are programmed using a C or C++ like programming language, with Flyport making development easy by managing all the required network interfacing, Internet communications protocols and the webserver internally for you.
The API allows management and programming of all the available functionality of the entire family of Flyport hardware modules, allowing the developer to import web pages, create applications, compile and download code to Flyport modules. Unfortunately, the IDE is only available for Windows at this time, although it can be run inside a virtual machine (with Windows installed) on OSX or Linux PCs.
Most of the underlying technology of the openPicus / Flyport system is released as open source software and open hardware, but with licensing choices such that you are not forced to release all your own code under an open-source license if you choose not to when integrating openPicus technology into your own commercial designs.
The openPicus Flyport IDE has its source code released under the GPLv3 license, and the schematics for the Flyport hardware are released under the CC-BY 3.0 Creative Commons license. Using the openPicus core, libraries and code samples in the firmware of your commercial product does not require you to release the source code of your firmware, provided that the core and libraries are used without modification.
If you tweak or modify the openPicus core or libraries then you are required to release the modified code under the LGPL v3.0 license.openPicus provides their code samples, applications, example projects and libraries for open use under the Apache 2.0 license, and the openPicus Framework (including the TCP/IP stack, email and FTP support) under an LGPL v3.0 license.
A number of pre-designed carrier boards for Flyport modules are available, allowing development with easy-to-use hardware “building blocks” with little or no expertise in custom electronic hardware design and construction required.
For example, the Music Nest is a carrier board for Flyport modules which can be used to develop Internet-connected audio applications. A VLSI1053 stereo audio codec IC is onboard, interfaced back to the Flyport module over SPI, along with an SD card for the storage of audio files.
Another example is the “Grove Nest” carrier board is a simple carrier board for Flyport modules that provides 10 ports for sensors and other peripheral modules which are compatible with Seeed Studio’s “Grove” connector standard. openPicus provides example libraries for a large range of sensor and actuator devices from Seeed’s “Grove” family of development modules, allowing the development of Internet-connected, Internet-of-Things devices in an easy “plug and play” fashion with minimal hardware expertise.
As is typical of Arduino and most similar development boards, these Flyport carrier boards can be powered either via an external power supply or via the same USB connector which is used to download firmware to the Flyport module. The Ethernet Flyport module is a programmable system-on-module based around the 16-bit PIC microcontroller common to all Flyport hardware, combined with a fully integrated 10/100 ethernet interface with integrated MAC and physical layer and a unique MAC address pre-configured for each module.
By default the Ethernet Flyport module includes an RJ-45 ethernet jack, but you can also route the Ethernet signals off the module to an RJ-45 jack on the carrier board, providing flexibility in terms of where the bulky RJ-45 connector is located on your board. Using the Flyport Ethernet module provides the embedded system with a powerful “Internet engine” with a small footprint, low power consumption and low cost, allowing real-time control and display of data on a dynamic webpage accessible from a standard web browser, from a PC, tablet or smartphone.
Thanks to the embedded webserver built into Wi-Fi and Ethernet Flyport modules – they can host HTML pages directly, allowing easy access to information such as sensor readings (or a user interface for control of hardware devices) using an internal webpage. Display of dynamic webpage content in the form of Javascript and Ajax is also supported.
Finally the TCP/IP stack and the application layer run on the main microcontroller of the Ethernet and Wi-Fi Flyport modules, meaning that you have full control of the connectivity and the application.
This means you can, for example, process data coming in from sensor hardware and display this data on a webpage served up from the Flyport module, or send the data to a remote location via email or FTP. You can also shut down the Wi-Fi or Ethernet connectivity to reduce power consumption when connectivity is not actively required.
The openPicus system provides a well-documented and easy method of integrating IoT connectivity into existing and new products, and thus helps decrease the time to market for your new and existing products.
With our experience in embedded hardware, IoT-connectivity and complete product design – we can partner with you for every stage of product development to meet your needs. As we say – “LX can take you from the whiteboard to the white box”. So 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.