An Intel powered Wireless Multi-tool for the IoT: Part 1Follow article
Design and initial build of a flexible software-defined radio (SDR) platform.
We were challenged by RS Components and Intel to see how we could put Intel technologies to use in underpinning the delivery of the Internet of Things. Of course, there are so many different technologies that we could have selected from and those that immediately spring to mind include the Edison and Galileo boards, that provide a fast on-ramp to developing IoT applications.
However, it occurred to us just how fundamental to the future of the IoT wireless communications is, whether that be at the level of a Personal Area Network (PAN) — based on, for example, Bluetooth Low Energy or IEEE802.15.4 — a low power WAN or cellular. Connected devices need, well, connectivity. And to deliver the IoT at scale will take sustained innovation in this area.
Software-defined radio, where radio communication system components such as filters and mixers that would have been implement in hardware are instead implemented in software, is allowing ever more advanced systems to be created and accelerating their development. However, you don't get anything for nothing and digital signal processing (DSP) applications can be particularly demanding, with computationally intensive algorithms and blisteringly high data rates employed.
With the above in mind this led us towards using the capable Intel NUC Core i5 at the heart of a self-contained SDR appliance, packaged in a robust and familiar benchtop test equipment form factor. This will run Linux and applications based upon open source SDR frameworks, enabling it to be put to use in an vast array of wireless test, measurement and prototyping scenarios.
The NUC Core i5 is a incredibly compact single-board computer that boasts a 2.9GHz dual-core i5-5300U processor with Streaming SIMD Extensions that are supported via OpenCL, making it great for demanding DSP applications. In addition to which it has four USB 3.0 ports — enabling use with high throughput peripherals — along with integrated graphics, Gigabit Ethernet and more.
One of the great features of the NUC is that it has an M.2 SSD connector, meaning that high performance storage can be tightly integrated while taking up next to no additional space. We decided to fit a 120GB Intel SSD 535 Series module, which will provide more than ample capacity.
Now that we have a high performance processing system and storage, we need to bridge the RF and digital domains, which will be achieved using the bladeRF x40 SDR board. This has a USB 3.0 host interface and features an Altera Cyclone IV FPGA with 40,000 logic elements, which amongst other things is used to interface the RF transceiver and carry out certain particularly computationally tasks — such as digital up/down conversion — in hardware and closer to the antenna.
The transceiver employed by the bladeRF (hidden under the metal screening can) is the Lime Microsystems LMS6002D Field-Programmable RF (FPRF). This integrates digital converters, mixers, filters, amplifiers and more into a single chip that is programmed via SPI, with a digital baseband interface that with the bladeRF is in turn integrated with an Altera FPGA. The two devices very nicely complementing each other and providing a great deal of power and flexibility at the head end of our radio system. The LMS6002D transceiver features 12-bit resolution and can be tuned all the way from 300MHz to 3.8GHz, with programmable bandwidths of 1.5-28MHz.
For those new to SDR this may sound a little confusing, but what this essentially gives us is a high performance transceiver that can handle large chunks of radio spectrum, with the option to carry out some processing in an FPGA, which is in turn connected via USB 3.0 to the host computer. The Intel NUC is responsible for loading the FPGA, programming the FPRF and running the actual application, from layer 1 (the physical interface) upwards. This could be IEEE802.15.4, Bluetooth, GSM, LTE or almost any wireless system — this is defined in software.
Enclosure and supporting components
Since we wanted to have a professional test equipment form factor we selected a premium equipment case from the RS catalogue, the Takachi MS177-26-28G. In the above photo my colleague, Stuart, can be seen taking component measurements, before modelling the front and back panels — with appropriate cut-outs profiled — in DesignSpark Mechanical.
Custom front and rear panels were first laser cut in MDF and tested for their fit, before being profiled from 2mm aluminium sheet using a CNC plasma cutter.
A 24V 80W SMPS is mounted on the inside of the rear panel, providing power to the NUC via a 20mm fuse and 4-pin Molex Micro-Fit connector. Mains is supplied to this via a fused and switched IEC socket, also mounted on the rear panel. Alongside which is an ebm-papst 24VDC 60mm fan.
At this point it should be noted that we decided to use commonly available components and in the interests of expediency to avoid making up custom USB and display etc. cables. However, in the second post we will explore a number of improvements that could be made to reduce the volumetric space required and make the most of additional NUC features, such as eDP support.
A generic 3rd party HDMI touch screen with a 1024x600 resolution was selected for mounting on the front panel. Below this are two USB 2.0 ports and push button for power. To the side there are 4x panel mount SMA connectors with coax pigtails.
The NUC is attached to an optional enclosure chassis plate. Secured above this on hex spacers we have a laser cut acrylic plate to which the bladeRF board is fastened. As can be seen, there is a quite a bit of free space and the size of the enclosure is mostly dictated by the size of components affixed to the front and rear panels. In our case much of the free space being taken up by the odd cable which is needlessly long, but which in any case will suffice for our purposes.
If you're looking for great device support on Linux, stability, up-to-date packages and ease of install, Ubuntu is pretty much the obvious choice and the 64-bit build of release 14.04 was installed. Since we want to take advantage of the Core i5-5300U's SIMD extensions for OpenCL accelerated DSP code, the Intel OpenCL SDK was installed. This is packaged for RPM-based Linux systems, but the packages can be easily converted for use on DEB-based systems by using Alien.
The GNU Radio SDR toolkit, along with the bladeRF driver and software to integrate this with GNU Radio, were installed using the excellent PyBOMBS install management system. To put the hardware through its paces we also installed gr-fosphor, a GNU Radio-based real-time spectrum analyser (RTSA) application that uses OpenCL kernels for accelerated FFT and display components. OpenGL graphics for display output is also required, which the NUC provides.
In testing the NUC had no problem at all with running the gr-fosphor application at respectably high sample rates and RF bandwidths. In the video below it can be seen with the transceiver front-end first tuned to 2.4GHz and then 868MHz, providing a great visualisation of spectrum activity.
At this point we already have a tool that has real value for use in IoT applications such as site survey, testing wireless sensor nodes and base stations etc. Which if bought off-the-shelf would cost many times what the project bill of materials cost came to. With the ability to not only view real-time activity, but to record captures to the SSD and transfer via Gigabit Ethernet or to an external USB 3.0 storage device. Note that an external monitor can also be attached via the rear panel.
However, this is just the tip when it comes to what is possible with the combination of a powerful 64-bit processor with SIMD extensions plus an FPGA and FPRF, together with SDR frameworks.
Over the coming weeks we plan to make some refinements to the design and in the follow-up post we'll take a look at these, along with additional applications, before considering other improvements that could be made in order to really make the most of the Core i5 NUC capabilities.
Read - Part Two