by embedINN

A versatile dev board with everything you need to design custom IoT protocols & gateways

$3,595 raised

of $10,000 goal

36% Funded

Pledge Now


Early Bird iotSDR 7010

Early Bird pricing! One iotSDR dev board with a Zynq XC7Z010 FPGA


Early Bird iotSDR 7020

Early Bird pricing! One iotSDR dev board with a Zynq XC7Z020 FPGA


iotSDR 7010

One iotSDR dev board with a Zynq XC7Z010 FPGA


iotSDR 7020

One iotSDR dev board with a Zynq XC7Z020 FPGA


iotSDR Accessories

Two 2.4 GHz antennas, two sub-GHz antennas, one USB Type A to Micro B cable (1 m), and one Ethernet cable (1 m)


Recent Updates

As Featured In

Hackster News

"A Xilinx FPGA and two Microchip transceivers at its heart, the ioTSDR is certainly feature-packed..."

Geeky Gadgets

"Developers, makers and enthusiasts looking to build their very own Internet of Things protocols and gateways may be interested in a new versatile development board called the iotSDR"

"iotSDR provides a platform that allows SDR developers and enthusiasts to develop cutting-edge solutions in the IoT radio and network domains"


"Ofreciendo soporte para un amplio conjunto de bandas acorde a las regulaciones internacionales, esta placa de desarrollo SDR para protocolos y gateways IoT facilita el desarrollo de protocolos personalizados."

CNXSoft - Embedded Systems News

"The main difference between iotSDR and other SDR that the former focuses specifically on ISM bands (sub-GHz and 2.4 GHz) for IoT applications... iotSDR is also the only board to run Linux from the list of boards in the comparison"

iotSDR is part of the Microchip Get Launched design program!

Embedding SDR in IoT

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.

A Powerful FPGA and a GNSS Chip to Round It Out

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.

Use Existing Software, Design a Protocol, or Build a Gateway

You can drive the hardware described above using a wide variety of popular open source software, including the Xilinx PYNQ Python framework, Jupyter Notebooks, and GNU Radio.

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.

Features & Specifications

  • RF Transceiver: 2x Microchip/Atmel AT86RF215
    • European band: 863-870 MHz / 870-876 MHz / 915-921 MHz
    • Chinese band: 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 supporting GPS, GLONASS, Galileo, and BieDou
  • SoC: Two options available
    • Xilinx ZYNQ XC7Z010-1CLG400C
      • Dual-core ARM Cortex-A9 MPCore
      • 256 kb on-chip memory
      • DDR3 support
      • 28,000 logic cells
      • 17,600 LUTs
      • 2.1 Mb block RAM
      • 80 DSP slices
      • 2x UART, 2x CAN 2.0 B, 2x I²C, 2x SPI, 4x 32-bit GPIO
      • FPGA configuration via JTAG
    • Xilinx ZYNQ XC7Z020-1CLG400C
      • Dual-core ARM Cortex-A9 MPCore
      • 256 kb on-chip memory
      • DDR3 support
      • 85,000 logic cells
      • 53,200 LUTs
      • 4.9 Mb block RAM
      • 220 DSP slices
      • 2x UART, 2x CAN 2.0 B, 2x I²C, 2x SPI, 4x 32-bit GPIO
      • FPGA configuration via JTAG
  • EEPROM Memory: 1x Microchip AT24MAC602 for 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
  • General User Inputs/Outputs:
    • 2x 8-bit PL (Programmable Logic) interfaces
    • 1x 8-bit PS (Programmable Subsystems) interface
  • Connectivity:
    • 1x Gigabit Ethernet
    • USB 2.0 High Speed (Microchip USB3310)
    • USB 2.0 Full Speed (Silicon Labs CP2104)
    • 2x SMA RF connector for Low Frequency IoT band
    • 2x SMA RF connector for 2.4 GHz band
    • 1x SMA connector for GNSS receiver
    • FPGA JTAG connector for external JTAG programmer/debugger
  • Clock System:
    • Single clock source for both RF frontends
    • Separate clock for GNSS receiver
  • Board Dimensions: 76.2 mm x 101.6 mm

Block Diagram

Comparison Table

iotSDRUSRP B2x0XTRX ProLimeSDRHackRF OnebladeRFLimeSDR 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
Boots Linux Yes -- -- -- No -- --
DuplexDual-channel full duplex Full MIMO Full MIMO Full MIMO Half Full SISO Full SISO
Max Sampling Rate4 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 Resolution13-bit (2-bit MAX2769) 12-bit 12-bit 12-bit 8-bit 12-bit 12-bit
Max RF Bandwidth4 MHz (8 MHz MAX2769) 56 MHz 120 MHz 61.44 MHz 20 MHz 28 MHz 30.72 MHz
Channels2 1 (2 for B210) 2 2 1 1 1
Transmit Power14 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 ProcessorDual-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 SynchronizationAdd-on (under $500) Add-on ($636) On-board No No No No
Dimensions76 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 coresTwo cores No No No No No No
GPS FEYes No Yes No No No No
GPIOYes (24 pins) Yes Yes Yes Expansion Headers Yes Yes
Multi-board SynchronizationClock 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

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. The device offers a high flexibility by supporting a variety of data rates with three 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).

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)

  • 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

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, 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 wpan-tools, 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.

Software Support

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.

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

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. All of the above will be available on our GitHub repository before iotSDR ships to backers. We will continually improve our project documentation, which will be published both on our website and in our GitHub repository. We will keep you apprised of our progress on the software stack as the campaign evolves.

When iotSDR ships, all backers will be entitled to free and exclusive technical support. Until such time as we have deployed a dedicated platform for that purpose, you will be able to reach out to us by email to receive support. We want to do everything we can to help you make the most of your iotSDR.

Meanwhile, if you have any questions, please contact us using the Ask a technical question form on our campaign page.

Manufacturing Plan

iotSDR will be fabricated and assembled by PCBWay in China. There, each board will be electrically tested before being sent to Crowd Supply for fulfillment. We have worked with PCBWay on various projects, including the iotSDR prototype, and are confident this production run will go smoothly.

The items in the iotSDR Accessories kit will be purchased from Mouser Electronics and bundled with iotSDR boards for fulfillment.

Fulfillment & Logistics

All iotSDR modules will be delivered to 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.

Risks & Challenges

We have been working on iotSDR for the past two years and are confident that we have eliminated most of the technical risk. We’ve done this by completing multiple prototypes and by soliciting feedback and advice from the electronic engineering community. Our most likely source of risk is an unforeseen delay with PCB assembly caused by part shortages or shipping complications related to the COVID-19 pandemic. We have worked to mitigate these risk as much as possible, however, and will let you know if anything arises that might affect our estimated ship dates.

Funding ends on Sep 10, 2020 at 04:59 PM PDT (11:59 PM UTC)



Embedding things in reality.

Abdul Malik Khan

Subscribe to the Crowd Supply newsletter, highlighting the latest creators and projects: