Neptune SDR P210 Overview

The premise

Intrigued by the world of under-documented, box-of-pandora hardware from China, I acquired a Neptune SDR P210. To my pleasant surprise it just motly worked out of the box. I did not yet succeed to make the secon RX/TX channel work though. This post summarizes my findings, while providing an overview.

The Package

The cardboard box that ended up on my doormat includes:

The PCB was contained in an ESD-safe bag which itself was wrapped with bubble wrap, stuffed together with the rest into a cardboard box – decent protection for shipping.

The Hardware

The board is well fabricated, solder joints look good. The main components found on the board are:

The board features various electromechanical interfaces:

Front of the beautiful PCB. Note the FPGA DONE, who doesn’t hate a medium-rare gate array?

The USB-C 2.0 port next to the Ethernet is used both to provide power and data to the board. When connected, it presents itself with the under VID:PID 0456:b673 with the name Analog Devices, Inc. LibIIO based AD9363 Software Defined Radio [ADALM-PLUTO]. Behind this USB device multiple endpoints present, among other things:

The other USB-C 2.0 port next to the DIP switches presents itself as a ch341-uart under VID:PID 1a86:7523. Both the ch341-uart and the cdc_acm endpoint from the former USB port operate on separate UART channels of the Zynq, i. e. they can both be used at the same time without interference. However, only the former USB port (next to the Ethernet plug) is capable of powering the board, and no USB device is present on the latter USB port without power on the board. This is valuable for a stand-alone setup, where one only supplies power to the former USB port, while occasionally hooking up with the latter, e.g. to debug network failure using the local serial console.

Back of bespoke PCB, the black line seems to be from a sharpie, maybe hopefully a QC indicator

Booting both from the internal QSPI Flash or an external SD-Card is supported, and the boot source is selected via the DIP switches.

Software Support

The device just works like a Pluto SDR, through the Industrial IO (IIO) API. Access to the radio is provided via USB, Serial, IP or locally using /dev/iio*. Software like GNU Radio has built-in support for IIO. In addition, the SoapyPlutoSDR plugin enables a wide array of applications such as GQRX, SigDigger or SDRangel to interface with the Neptune SDR. The board works fine when booted from the QSPI flash, so I did not bother tinkering with the firmware on the Micro-SD.

The End

The device boringly fulfills its promises. Obviously, the firmware is mostly identical to the Pluto SDR’s firmware, with some minor adjustments. Next up, an investigation of the firmware is due. In particular, the differences to a stock Pluto SDR strike my interest. So far, some build-scripts Neptune SDR compatible software can be found on my Neptune-SDR-nix-utils repo.