ADVANCED SDR DEVELOPMENT BOARD
Dual-band SDR platform with GNSS receiver for professional IoT and wireless protocol development
Watch iotSDR in action: Hardware overview and deployment scenarios
Real-time GNSS signal recording and processing
Watch how iotSDR transforms Jupyter notebooks into real-time interactive web applications with Voilà and Plotly for live waveform visualization and IoT dashboards
iotSDR support package provides ready-to-use transmitter and receiver modules for instant bidirectional data streaming with dual AT86RF215 transceivers through GNU Radio's graphical interface
iotSDR is an advanced Software Defined Radio development board designed for professional IoT and wireless protocol development. Featuring dual RF transceivers covering multiple global bands and an integrated GNSS receiver, it provides a comprehensive platform for wireless system design, testing, and deployment across various frequency spectrums.
Connectivity solutions for factory automation, remote monitoring, and industrial control systems across multiple frequency bands.
Real-time location tracking with integrated GNSS and wireless communication for supply chain management.
Wireless sensor networks for environmental monitoring, smart lighting, and urban infrastructure management.
Development and testing of custom wireless protocols for proprietary IoT communication systems.
Encrypted wireless communication systems for sensitive data transmission in defense and enterprise applications.
Wireless network performance testing, spectrum analysis, and protocol validation across global frequency bands.
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.
Modulation Schemes:
Supported PHYs:
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.
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, 6LoWPAN 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 wpan-tools, running on the ZYNQ processor, to handle the creation and configuration of the 6LoWPAN network.
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.
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.
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.
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 info@embedinn.com or through our discord channel: https://discord.gg/HCZM6msqS6.
Contact us for more information about iotSDR and how it can meet your requirements.