ADVANCED SDR DEVELOPMENT BOARD

iotSDR

Dual-band SDR platform with GNSS receiver for professional IoT and wireless protocol development

iotSDR Development Board - Main View
iotSDR Development Board - Side View
iotSDR with antenna

iotSDR Demo Video

Watch iotSDR in action: Hardware overview and deployment scenarios

iotSDR Block Diagram
iotSDR Block Diagram showing system architecture and components
IEEE 802.15.4 Baseband Architecture
IEEE 802.15.4 Baseband Architecture Diagram
PYNQ Framework Integration
PYNQ Framework Integration Diagram

GNSS Recording Demo

Real-time GNSS signal recording and processing

iotSDR Accessory Kit
iotSDR Accessory Kit

iotSDRPlayer plotly-voila

Watch how iotSDR transforms Jupyter notebooks into real-time interactive web applications with Voilà and Plotly for live waveform visualization and IoT dashboards

iotSDR gnuradio Video

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 Development Board

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.

RF & Wireless Specifications

RF Transceivers: 2x Microchip/Atmel AT86RF215
European Bands: 863-870 MHz / 870-876 MHz / 915-921 MHz
Chinese Bands: 470-510 MHz / 779-787 MHz
North American Band: 902-928 MHz
Korean Band: 917-923.5 MHz
Japanese Band: 920-928 MHz
World-wide ISM Band: 2400-2483.5 MHz
GNSS Receiver: Maxim MAX2769B (GPS, GLONASS, Galileo, BeiDou)
RF Connectors: 2x SMA for Low Frequency, 2x SMA for 2.4 GHz, 1x SMA for GNSS

Processing System Options

Choose Your Processing System

iotSDR is available with two ZYNQ processor options

Option 1

Xilinx ZYNQ XC7Z010-1CLG400C

Processor: Dual-core ARM Cortex-A9 MPCore
Memory: 256 KB on-chip memory, DDR3 support
FPGA Resources: 28,000 logic cells, 17,600 LUTs, 2.1 Mb block RAM, 80 DSP slices
Interfaces: 2x UART, 2x CAN 2.0 B, 2x I²C, 2x SPI, 4x 32-bit GPIO
Configuration: FPGA configuration via JTAG
Standard Version
Option 2

Xilinx ZYNQ XC7Z020-1CLG400C

Processor: Dual-core ARM Cortex-A9 MPCore
Memory: 256 KB on-chip memory, DDR3 support
FPGA Resources: 85,000 logic cells, 53,200 LUTs, 4.9 Mb block RAM, 220 DSP slices
Interfaces: 2x UART, 2x CAN 2.0 B, 2x I²C, 2x SPI, 4x 32-bit GPIO
Configuration: FPGA configuration via JTAG
Premium Version
Common Features:
  • Same ARM Cortex-A9 dual-core processor architecture
  • Identical peripheral interfaces and connectivity options
  • Same configuration method via JTAG
  • Compatible with all iotSDR RF and GNSS features

Memory & Storage

EEPROM Memory: 1x Microchip AT24MAC602 (RF transceiver MCU firmware and data)
Flash Memory: 1x QSPI 128 Mb flash memory for firmware
RAM: 512 MB DDR3
SD Card: Micro SD card slot

Connectivity & Interfaces

Ethernet: 1x Gigabit Ethernet
USB: USB 2.0 High Speed (Microchip USB3310) + USB 2.0 Full Speed (Silicon Labs CP2104)
User I/O: 2x 8-bit PL interfaces, 1x 8-bit PS interface
Debugging: FPGA JTAG connector for external programmer/debugger

Board Specifications

Clock System: Single clock for both RF frontends, Separate clock for GNSS receiver
Dimensions: 76.2 mm x 101.6 mm (3" x 4")
Operating Voltage: 3.3V and 5V power rails

Applications

Industrial IoT Systems

Connectivity solutions for factory automation, remote monitoring, and industrial control systems across multiple frequency bands.

Logistics & Asset Tracking

Real-time location tracking with integrated GNSS and wireless communication for supply chain management.

Smart City Infrastructure

Wireless sensor networks for environmental monitoring, smart lighting, and urban infrastructure management.

Wireless Protocol Development

Development and testing of custom wireless protocols for proprietary IoT communication systems.

Secure Communications

Encrypted wireless communication systems for sensitive data transmission in defense and enterprise applications.

Network Testing & Analysis

Wireless network performance testing, spectrum analysis, and protocol validation across global frequency bands.

Advanced Technical Features

IEEE 802.15.4 Baseband Cores

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:

  • Multi-rate and multi-regional frequency shift keying (MR-FSK)
  • Orthogonal frequency division multiplexing (MR-OFDM)
  • Offset quadrature phase-shift keying (MR-O-QPSK)

Supported PHYs:

MR-FSK: 50 - 400 kbit/s with optional forward error correction and interleaving
MR-OFDM: 50 - 2400 kbit/s
MR-O-QPSK: 6.25 - 1000 kbit/s, 100 - 2000 kchip/s
O-QPSK: 250 - 1000 kbit/s, 1000 and 2000 kchip/s

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.

Python Drivers

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.

The PYNQ Python Framework

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.

Perfect for GNSS-related Applications & Research

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.

Jupyter Notebooks

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à with Plotly

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 & the iotSDR Support Package

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).

Goodies for the IoT Transceivers

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.

Goodies for the GNSS Chip

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.

Remote APIs

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.

Support & Documentation

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.

iotSDR Software Repository

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.

READY TO GET STARTED

Contact us for more information about iotSDR and how it can meet your requirements.