iotSDR provides a platform that allows SDR developers and enthusiasts to design innovative algorithms and cutting-edge products. While wide-band SDRs are more versatile, narrow-band transceivers perform better for many IoT-related applications. Accordingly, iotSDR hosts two narrow-band Microchip AT86RF215 transceivers that provide their own base-band cores and have the ability to handle their own I/Q signal streaming. The result is an extremely powerful tool for anyone who is looking to simplify the task of developing, testing, and deploying high-complexity frameworks.
iotSDR’s Microchip transceivers are backed by a Zynq SoC—which provides an FPGA and a processing system in a single package—as well as a MAX2769 GNSS chip capable of streaming live signal records. That GNSS chip can be used for custom GPS, Galileo, BieDou, and GLONASS receiver development, and is perfect for projects in the location-based services (LBS) domain such as those related to navigation and surveying.
And if your work is further down the stack, don’t worry. iotSDR still has you covered. If you want to design and implement a physical layer IoT protocol, for example—a protocol like LoRa, SigFox, WightLess, Bluetooth, BLE, 802.15.4, ZigBee, or something of your own design—this board is for you. It’s also a great place to start if you want to build a custom IoT gateway along the lines of The Things Network, LPWAN, or Google’s Thread.
Radio has long been a pillar of modernization and technology, and this remains true in the era of software-defined radio. The Internet of Things, in particular, stands to benefit from the latest advancements in SDR technology. With iotSDR, you can be part of the community that makes that happen.
|iotSDR||USRP B2x0||XTRX Pro||LimeSDR||HackRF One||bladeRF||LimeSDR Mini|
|RF Chipset||AT86RF215, MAX2769||AD9364 or AD9361||LMS7002M||LMS7002M||MAX5864, MAX2837, RFFC5072||LMS6002M||LMS7002M|
|FPGA||ZYNQ XC7Z010 / XC7Z020||Xilinx Spartan 6 XC6SLX75||Xilinx Artix7 50T||Altera 40KLE Cyclone 4||64 Macrocell CPLD||Altera 40KLE/115KLE Cyclone 4||Altera MAX 10|
|Tuning Range||389.5-510, 779-1020, 2400-2483.5, and 1575.42 MHz||70 MHz to 6 GHz||30 MHz to 3.7 GHz||30 MHz to 3.8 GHz||1 MHz to 6 GHz||300 MHz to 3.8 GHz||10 MHz to 3.5 GHz|
|Bus/Interface||Gbit Ethernet and USB 2||USB 3||PCIe x2 and USB 3 adapter||USB 3||USB 2||USB 3||USB 3|
|Duplex||Dual-channel full duplex||Full MIMO||Full MIMO||Full MIMO||Half||Full SISO||Full SISO|
|Max Sampling Rate||4 MSPS (16.368 MSPS MAX2769)||61.44 MSPS||120 MSPS SISO, 90 MSPS MIMO||61.44 MSPS||20 MSPS||40 MSPS||30.72 MSPS|
|ADC/DAC Resolution||13-bit (2-bit MAX2769)||12-bit||12-bit||12-bit||8-bit||12-bit||12-bit|
|Max RF Bandwidth||4 MHz (8 MHz MAX2769)||56 MHz||120 MHz||61.44 MHz||20 MHz||28 MHz||30.72 MHz|
|Channels||2||1 (2 for B210)||2||2||1||1||1|
|Transmit Power||14 dBm+||10 dBm+||0 to 10 dBm (frequency dependent)||0 to 10 dBm (frequency dependent)||0 to 10 dBm, -10 dBm+ (15 dBm @ 2.4 GHz)||6 dBm||0 to 10 dBm (frequency dependent)|
|On-board Processor||Dual-core Arm Cortex A-9||No||No||No||LPC4320F||No||No|
|Frequency Stability||±2 ppm||±2 ppm||±0.1 ppm (<±0.01 ppm w/ GPS lock)||±2.5 ppm||±20 ppm||±1 ppm||±2.5 ppm|
|GPS Synchronization||Add-on (under $500)||Add-on ($636)||On-board||No||No||No||No|
|Dimensions||76 x 102 mm||97 x 155 mm||30 × 51 mm||60 x 100 mm||75 x 120 mm||87 x 131 mm||32 x 69 mm|
|IEEE-802.15.4 PHY cores||Two cores||No||No||No||No||No||No|
|GPIO||Yes (24 pins)||Yes||Yes||Yes||Expansion Headers||Yes||Yes|
|Multi-board Synchronization||Clock and data||Clock and timestamps||Clock and timestamps||Clock||Clock||Clock and timestamps||Clock|
|Price||$399 ($599 with XC7Z020)||$686 - $1,119||$490||$299||$299||$415||$139|
iotSDR hosts dual Microchip AT86RF215 transceiver chips, each of which supports separate, hard-coded baseband cores for the sub-1 GHz and 2.4 GHz bands, compliant with IEEE 802.15.4g-2012 and ETSI TS 102 887-1. An output power of 14 dBm and receiver sensitivities down to -123 dBm result in an outstanding link budget of up to 137 dB. The device offers a high flexibility by supporting a variety of data rates with three modulation schemes:
Simultaneous operation at sub-1 GHz and 2.4 GHz enables new capabilities and provides the right cost structure for smart metering, smart lighting, home energy gateways, and other industrial and automation equipment.
Supported PHYs (IEEE 802.15.4g-2012, IEEE 802.15.4- 2011, and proprietary modes)
We will provide and maintain a high-level Python interface to these baseband cores. That interface will support driver calls that allow you to select different modulation schemes (MR-FSK, MR-O-QPSK, and MR-OFDM) or build custom point-to-point or multi-point networks.
We are also working with these baseband cores to implement a
multi-network, IPv6-based, 6LoWAPN gateway, which we will make
available when it is ready. 6LoWPAN provides an upper-layer system for
use with low-power wireless communications for IoT and M2M. Originally
intended for 802.15.4, it is now used with many other wireless
standards. We will include the
linux-wpan stack and
running on the ZYNQ processor, to handle the creation and
configuration of the 6LoWPAN network.
The board also features a GNSS L1-band chip that can stream live L1 band signal records from all available constellations. That stream can be processed in the FPGA, streamed to popular open source GNSS-processing software, or recorded for later use. The MAX2769 chip that provides this functionality has displayed excellent front-end performance. Our open source iotSDR companion package includes libraries support the storage of I/Q data and the quick acquisition of data using a Jupyter notebook.
Having a stream of GNSS signals alongside iotSDR’s IoT transceivers opens up many possibilities, including high-precision positioning solutions—such as real-time kinematics or precise point positioning—and timing solutions like GPS-disciplined oscillators. With direct access to satellite signals, a large FPGA, dual-core processors, and the power of open source PYNQ libraries and Jupyter notebooks, iotSDR is ideal for GNSS researchers looking to test hypotheses in the field of timing, positioning, navigation, and localization.
The following accessories are available to order for use with your iotSDR. If you’d like to receive the full accessory kit that was offered during the crowdfunding campaign, order the following parts and quantities:
Python is one of today’s most popular languages for software development, and it stands to reason that you might want to leverage Python’s ease-of-use, efficiency, and modularity when developing IoT applications. With that in mind, we are happy to report that iotSDR is compatible with the PYNQ Framework.
PYNQ is an open source project from Xilinx that simplifies the process of developing capable, exciting IoT applications by allowing designers to use the Python language and libraries when working with the reconfigurable ZYNQ SoC at the heart of iotSDR. It allows Python-based applications to run in conjunction with the high-speed deterministic cores on the FPGA fabric.
PYNQ includes a number of hardware libraries, called overlays, that allow you to program the SoC’s FPGA logic. Overlays are open source logic designs which can be loaded as needed to provide acceleration in the execution of Python programs. And of course, if you need an overlay that does not yet exist, you can create your own and share it with the community.
In addition to overlays, Jupyter notebooks are another key element of the PYNQ framework. These interactive notebooks allow you to develop and run self-documenting Python applications and are extremely useful for researchers and educators who need to create, simulate, test, share, and publish theoretical concepts by running live code on actual hardware.
iotSDR also works with JupyterLab, which comes in handy when managing multiple projects. JupyterLab is a web-based interactive development environment (IDE) for Jupyter notebooks, code, and data. It is quite flexible and features a user interface that can be configured for a wide range of workflows in data science, scientific computing, and machine learning.
Voilà turns Jupyter notebooks into standalone web applications. Unlike the usual HTML-converted notebooks, each user connected to a Voilà tornado application gets a dedicated Jupyter kernel that can execute callbacks and update interactive widgets.
Combined with Plotly graphical widgets, this allows for the observation of real-time continuous waveforms, which we have found to be rather exciting. And once you have created an interactive IoT application, you can convert it to a standalone web application with the click of a button.
GNU Radio is the defacto SDR development framework and has been hugely influential in shaping the sector as it exists today. We did not feel that iotSDR was a complete platform until it became part of GNU Radio’s open source ecosystem.
You can set up a rapid application development environment by combining GNU Radio with the suite of remote-programming and streaming tools included in the iotSDR support package. Using both pieces of software together, you can quickly and easily build an iotSDR application stack with access to an extensive collection of DSPs and related blocks, as well as GUI environments that allow for all manner of applications and simulations, including Bluetooth, LoRa, and IEEE 802.11ah (Wi-Fi HaLow).
By way of example, the iotSDR support package includes modules that facilitate the instantiation, configuration, and operation of bidirectional data streams using iotSDR’s dual Microchip AT86RF215 transceivers. And, as shown in the video below, GNU Radio Companion can be used to provide a graphical programming interface:
The iotSDR support package was built to provide transciever functionality and includes both a transmitter module and a receiver module (which operate as a source block and as a sink block, respectively). They can be configured to either channel.
For the GNSS enthusiasts out there, the iotSDR support package contains the GNSS receiver block for GNU Radio, which is capable of performing realtime sampling to decode satellite PN codes buried in noise. The GNSS receiver block also makes it easy to log samples—either locally on an SD card or remotely on the GNU Radio host—for post-processing and analysis.
The ability to control your SDR board from a remote device is more than just a way to show off for your friends. It also facilitates development by giving you access to a familiar environment and to the resources of a host computer. iotSDR provides a more advanced implementation of this functionality than any other board in its class. Specifically, it leverages Google gRPC calls that allow you to develop on iotSDR itself or from a Linux, Windows, or Mac host environment. And the only difference is a single line of code: the "connect" call.
iotSDR also supports language-agnostic programming on the host. The freedom to choose between Go, C++, Java, Python, C#, Ruby, PHP, or something else entirely can be a huge advantage in terms of speed, modularity, and versatility.
iotSDR will be fully open-source. That includes the FPGA HDL code and design documents that you can use to carry out maintenance, make improvements, develop hardware and software features, or improve the applications you develop.
Our repo is now live and can be accessed at https://github.com/embedinn/iotSDR. It contains Jupyter Notebooks with sample code code for TX/RX, dual TX, and dual RX through the ATREB chips and also stream capturing of the GNSS front-end. The Getting Started section of the Readme is the best place to begin. We think you will appreciate the ease with which you can program iotSDR using Python and Jupyter Notebooks.
The repo has many other resources, as well, and we will be adding even more
(including GNU radio support!) soon. If you have any questions, we
encourage you to contact us at
email@example.com or through our discord
All iotSDR modules and accessories are shipped from Crowd Supply’s warehouse for final distribution to backers worldwide. Please see Crowd Supply’s guide on Ordering, Paying, Shipping: All the Details for more information about delivery, VAT payments, etc.