For embedded development engineers, embarking on a new IoT design requires strict attention to multiple factors such as power consumption, sensing capabilities, and wireless connectivity.
IoT development kits offer a viable and convenient prototyping platform on which to base a design. However, the capabilities of IoT development kits vary considerably, so careful attention to the application requirements, the kit's features, and abilities is needed.
There is no doubting that we are in the online era with connected devices all around us; the advent of the Industrial Internet of Things (IIoT) and even our cars experiencing radical changes.
But while the benefits of the IoT/IIoT are considerable, from an electronic engineering perspective, many challenges are associated with developing an IoT device.
IoT applications vary considerably, but a core set of functional requirements typically remain the same, whether you are designing a pressure sensor for an industrial process or a room occupancy sensor in an office.
The initial fact-finding exercise to establish the outline engineering specification for a new IoT device should consider each aspect highlighted below since that will shape its functional architecture and design.
Sensing: Sensors sense the world around us, everything from temperature to air pressure to people's movements. Several technical decisions depend on what is being detected and how frequently. Sensor cost, size, and complexity are other considerations. A thermistor used to measure temperature will require additional components for the analogue domain and some software processing before conversion into a digital form. Another factor is how many sensors are needed and how frequently they should be polled.
Connectivity: How will the IoT device interact with a host control system? Is reliable wireless communication available in every use case scenario, or is wired communication preferred? The type of sensor also dictates how much data needs to be transferred and how often. Wireless mesh technology might offer a more robust communication link in a large deployment but requires all IoT devices to operate in this way. For wireless communication, decisions include creating a discrete design or opting for a type-approved module.
Power source: What might be your IoT device's likely power consumption profile? Some applications, communication frequencies, and wireless protocols represent a substantial power load that exceeds the capacity of a small battery. For some deployment scenarios, might a mains(line) supply be available? A recent IoT sensor trend uses energy harvesting technologies to remove the battery altogether. Instead, energy is harvested from ambient energy sources such as solar, vibration, and heat to charge a supercapacitor.
User interface: Will the IoT device require any user interaction? What about during installation and connecting to the host system if not in operation? Is a display or any other form of indication or status LEDs required?
Cloud analysis and control applications: The nature of the IoT is that devices connect to a controlling host system. The connectivity method and protocols will determine the software requirements of the sensor and how it interacts with the host. Is a constant data link required to stream data, or can it be sent at regular intervals as a batch?
Dev Kit Selection Hints and Tips
Development kits provide embedded engineers with a convenient and quick way of prototyping a design. But what are the factors engineers should consider when selecting a suitable kit?
Power supply:
- How is the board powered? USB from a host workstation? Battery? Can it be powered from the intended power source, and does it have a PMIC you could access to try other power sources?
- Is it possible to place a current probe inline to measure real-time power consumption for profiling purposes? If so, does it include everything on the board and any additional modules, sensors etc.?
Sensors:
- Is the board equipped with the sensor types your application will use?
- Is it possible to add additional sensors? Either using a peripheral connection or an industry-standard add-on format such as mikroBUS Click?
- What peripheral interfaces are available to access? I2C, UART, SPI, GPIO?
- Does the board or microcontroller have an ADC that you could use, and are any additional signal conditioning components required?
Connectivity:
- What wired/wireless connectivity options does the board have? Ethernet, Wi-Fi, LoRa, BLE, ISM etc.
- If no connectivity is on-board, can it be easily added? Does the manufacturer recommend and support a suitable wireless module or is a 3rd party interface (mikroBUS Click. etc.) option present?
- Does the board's firmware capable of implementing firmware over-the-air updates?
Compute resources:
- Does the board feature the microcontroller that you intend to use? Have you used it before, and do you already have suitable development toolchains?
- Are the board's compute resources adequate enough to run the IoT application, host protocols, and any connectivity protocol stacks?
- If the microcontroller has an integrated wireless transceiver, can you independently control their sleep modes for power-saving purposes?
- What built-in security features does the MCU have and are they suitable for use with your application?
User controls:
- Is the board equipped with any user buttons, touch-sensing sliders, or other user control hardware features?
- Is a display available? Is it necessary in the end application?
- Are any user LEDs accessible from your code? Are sufficient available, or can you quickly add them using a spare GPIO port?
Software support:
- What is the recommended development toolchain for this board? Do you already have it?
- Is a comprehensive board support (BSP) package included?
- What additional drivers, libraries and firmware are required, and are they royalty-free?
- Check firmware and middleware licensing requirements with the board manufacturer.
- Is the board supplied with a preloaded demo that showcases the board's features? Does it include communication to popular service providers such as Microsoft Azure or Amazon AWS?
- Are other demo and code examples available for the board? Does an ecosystem of library and development partners exist?
IoT Development Boards – some examples
The Microchip WFI32, part reference EV36W50A, is a comprehensive, fully-integrated, standalone IoT development board, that integrates a Microchip WFI32E01PC Wi-Fi 802.11 wireless module based on the PIC family of microcontrollers. On-board sensors include a Microchip digital I2C temperature IC and a digital ambient light IC. Developers can connect additional sensors or peripherals via a mikroBUS socket.
The wireless MCU module is also equipped with an integrated antenna. The board can be powered via a workstation host or a LiPo battery. An onboard PMIC provides battery charging capabilities via the USB host.
The board is preloaded with an out-of-the-box (OOB) demo image that reads the on-board sensors and sends the data to the Amazon AWS cloud. The demo code and full instructions are available from a GitHub repository.
STMicroelectronics STEVAL ASTRA1B multi-connectivity asset tracking reference design is specifically for prototyping and evaluating asset tracking applications, it integrates two wireless connectivity modules. An STM32WB5MMG low-power short-range 2.4 GHz wireless BLE/ZigBee microcontroller module and a long-range sub-GHz STM32WL55JC wireless MCU module for LPWAN communication such as LoRa.
The STEVAL ASTRA1B includes a comprehensive set of sensors capable of measuring multiple environmental and motion parameters. A GNSS module provides outdoor location positioning data. Other board features include a STSAFE secure element, a 480 mAh battery, and an OOB demo consisting of an asset tracking dashboard and smartphone app.
The Silicon Labs xG24-RB4188A is a plug-in antenna diversity module for prototyping 2.4 GHz wireless applications. It plugs into the Silicon Labs BRD4001 wireless starter board. The module hosts a Silicon Labs EFR32 Wireless Gecko system-on-chip, an RF switch, matching network, and two SMA antenna connectors. RF output from the EFR32 is +20 dBm.
For prototyping LoRa LPWAN applications based on the SEMTECH LR1120 wireless microcontroller, SEMTECH offers a range of LR1120 development kits. These are available in regional variants according to the industrial, scientific, and medical (ISM) sub-GHz spectrum. The LR1120 suits multi-regional asset location, inventory management, and theft prevention applications.
Highlighted earlier, the ability to add additional sensors or peripherals to a development board can be essential. The mikroBUS, developed by Mikroe, has quickly become an industry standard adopted by many semiconductor vendors for their development and evaluation boards. mikroBUS brings serial connectivity of SPI, UART, and I2C together with power, analogue, and PWM signals to a compact socket format. Mikroe has developed hundreds of Click boards that use this convenient form factor.
An example is the Mikroe Ultra-Low Press Click. Designed for low-pressure pneumatic measurements, it hosts a TE Connectivity SM8436 pressure sensor that communicates using the I2C interface.
Moving Forward
Prototyping an IoT application is made significantly easier thanks to the availability of development boards. This article has highlighted some questions embedded engineers should review when selecting a suitable development board.
In addition to the topics mentioned, there will be those specific to the application required that need consideration.
Author details: Mark Patrick is a technical author at Mouser Electronics