KiwiSDR: Wide-band SDR + GPS cape for the BeagleBone Black

KiwiSDR is manufactured and distributed by:

KiwiSDR regional distributors:

Recommended accessories:
Projects using KiwiSDR:

Latest news and information:

Latest news and information


It has been some time since we've given an update here. A tremendous number of software improvements are under development. But progress has been slow given everything else that is going on (mostly answering hundreds of emails and forum posts). If you are not already you might consider following the KiwiSDR forum, Github issues list and source code commit log. There you will get some idea of the progress being made.

New features
As you've probably noticed a number of new features have been added since our last update:
Under development
We are working very hard on a number of issues:
Placement program status
We have a program to send free Kiwis to people in interesting and underrepresented parts of the world if they agree to make them publicly available. Unfortunately the program has not been a complete success. We've had problems with poor receive performance, lost shipments, people receiving Kiwis and never completing the installation and even one individual who put their free Kiwi up for sale! So this has been a bit discouraging.
Big thanks to the Kiwi owners outside the placement program who have gone to the time, trouble and cost of making their SDRs publicly available. Especially these new and/or interesting places: Novosibirsk Russia, Shenzhen China, Japan (3x) and Hawaii (2x). No matter where you are making your Kiwi public is important. As you probably know reception quality of the public Kiwis varies greatly. And there are more and more people listening daily. So we need new SDRs with new connection channels available. Thank you!

Seeed enclosure prototype. Click images for full size.


Lots and lots going on behind the scenes.

Seeed has boards & kits in stock again and has made a major comittment to manufacturing capacity. The regional distributors have stock again as well.

We have decided to skip the idea of voting by the Kickstarter "Listener" category backers for a few free-placement Kiwis. Instead, we are committing a significant share of the project profits to funding more than twenty placements. About 15 are in some stage of development: either under discussion, awaiting delivery, awaiting installation or running. Our first two are Coimbatore, India hosted by Selva and the UR4PWJ club station in Lutsk, Ukraine hosted by Roman. Some of the new locations are really fantastic. Of course all will be listed on

Although we haven't had a chance to try them yet, we've identified new sources of 5V, transformer-based, linear power supplies (120 and 240 VAC) from AliExpress and Ebay. Thanks to Jesse, BD7LLY, from Seeed for finding these.

New features
The 2m RFI problem is still under investigation. A metal enclosure is being prototyped.


Public/private channels
Starting with the v1.32 release, on the admin security tab you will find a setting allowing you to disable the password prompt for a subset of the 4 channels (none, 1, 2 or 3) when an overall user password has been set. This allows you to divide the 4 channels into two sets: a publicly-available set requiring no password and a private set requiring a password.

Owners of the more popular Kiwis have long complained that the channels are always full and they, or their friends, can never get in without restarting the server and dumping everyone off. This scheme was fairly easy to implement but obviously not ideal. It is hoped this change may persuade some owners of completely closed Kiwis in desirable locations to make some of their channels public.

Placement program
We've received a dozen or so proposals from individuals and radio clubs for the exotic-location free placement program. Some of the locations are so interesting that we've immediately shipped hardware to them. We are still in need of more locations in greater Asia. See below for a description of the placement program.

Admin log
On the admin page the log tab now shows the Kiwi server log messages that previously could only be viewed by logging into the Beagle and running a command. Currently 256 messages of the log are shown in a scrollable list: the first 128 and then most recent 128 messages.

Seeed build
Seeed is in the middle of building more units. They are currently sold-out on their website and showing backorder until the first week in January. Some of the regional distributors have units.


As mentioned on this Kickstarter update we are now accepting proposals for free KiwiSDR placement of publicly-accessible KiwiSDRs in unique and useful locations around the world. As you can see from the map on we are in need of KiwiSDRs in Asia, the Russian Far East, Siberia, the Middle East, North Africa, Central America, Alaska and the Pacific Islands. Not only for better reception of stations heard locally to those areas but for possible future direction-finding experiments.

Please a short description of your location, antenna, Internet connectivity and reasons why you should be sponsored. Proposals can be from individuals or groups (radio clubs, etc.)


The final Kickstarter update has been posted and all future updates and information will be found right here.

There have been many software improvements made, bugs fixed and your questions answered recently. Please see the KiwiSDR forum, Github issues page, source code commits list and master bug/wish list.

An S-meter graph extension has been added. On the admin page config tab are settings for S-meter and waterfall/spectrum calibration. These are so you can adjust the accuracy of the S-meter and waterfall to match the specific gain characteristics of your antenna system. The default values have been set by using an accurate signal generator (hp 8657D) as the antenna input source.

The top right of the S-meter now shows a red "OV" indicator when ADC overflow is detected. Tests with the signal generator show the ADC overflows when a single-tone exceeding -15 dBm (almost S9+60) appears on the antenna terminals. Or when real received signals are near, or over, -20 dBm (about S9+53).

The admin page network tab now allows a Beagle static IP address to be set in place of automatic assignment via DHCP.

We know there needs to be a different user interface for mobile devices. But some stopgap improvements for such devices were made. The software detects if your browser is running on iOS / Android and does a few things differently: panels default closed, they don't animate, the iOS audio start button is larger etc. We purchased a cheap, low-performance Android tablet to experiment with. The forum thread detailing this is here.


Our manufacturing partner SeeedStudio is now distributing both the kit and board version of KiwiSDR. This is a very positive development as it frees us to spend the majority of our time improving the product software rather than worrying about manufacturing and shipping issues.


If you're not already, please follow our updates on Kickstarter.

Virtually all of the Kickstarter rewards and pre-orders have been shipped. If you haven't received a tracking link email from us please and let us know!

We have boards and kits available for general order. Please for more information.


Seeed has finished production of the Kickstarter reward and pre-order units. Almost 500 boards and kits have been manufactured. We hope to begin shipping very soon.

For information about preparing your setup for the arrival of your Kiwi (e.g. antenna, power supply etc.) please see here. This page also contains a FAQ and configuration information.


Did you miss the KiwiSDR Kickstarter ? You can now pre-order.
Please and we will send you instructions for paying with Paypal.
The prices are the same as the Kickstarter: either USD $199 for the board-only reward or $299 for the "kit" reward.


The KiwiSDR Kickstarter has launched.

Very pleased to announce our partnership with Valent F(x), makers of the well-known LOGI-Bone FPGA development board for the BeagleBone. They have essential manufacturing and Kickstarter experience.


Lots going on. Business, manufacturing and shipping partners have all been engaged. Ten more prototypes are being fabricated which should be the same final design as the Kickstarter (KS) rewards. These ten will be distributed as more beta test sites. Hopefully KS backers will get a chance to try an online KiwiSDR before deciding to back. The KS campaign is almost finished. The KS financial analysis needed to validate reward prices is done. Now just a lot of pondering before pulling the switch..


Our second Beta test KiwiSDR is now at the SK3W contest station, Fernebo, Sweden, courtesy of Gunnar Widell, SM3SGP. This KiwiSDR is also part of the network.


Very pleased to report our first Beta test KiwiSDR installation at the Dept. of Electrical and Computer Engineering, University of Victoria, B.C., Canada, courtesy of Michael Cavallin, VE7XMC. Also, check out their QS1R-based WebSDR. This KiwiSDR is also part of the network.


Our prototype SDRs are now part of the network courtesy of Andras Retzler, HA7ILM, developer of the OpenWebRX project.

The latest source code, Verilog and KiCAD PCB files have been updated on Github.


The project name has been changed to "KiwiSDR" in recognition of the time we spend in New Zealand. There were obvious trademark problems with the previous name (WRX, "web receiver"), although I must say I was the happy owner of two Subarus during my time living in the snows of Colorado ski country. The "Kiwi with headphones" logo is courtesy of Hayes Roberts at Thanks Hayes!

The performance problems mentioned below have been largely solved. So at this point I don't see any potential problems that would prevent this project from being manufactured and sold. Very soon there is going to be a decision point of how to proceed. Kickstart? Self-funded organic growth? Partner with another company? Kickstarter is very interesting, not only from a fund raising aspect but because it can provide a good gauge of the market interest. I really don't know how many people might want to buy this device. If I self-fund I need to build a reasonable quantity to lower manufacturing costs but then I run the risk of having unsold items if I miscalculate demand.

In some sense the fun part of this project is over and now the real work begins.

Prototype PCBs Working

The prototype boards seem to work fine. There were a few components installed in the wrong places by the assembly house. This was partly my fault because of an ambiguous parts placement silkscreen.

After some effort the Verilog worked on the Artix 7 FPGA which is new on this board compared to the Spartan 6 used on the hand-wired prototype. With this larger FPGA a full four SDR channels, with independent waterfall DDCs, and 12 GPS receiver channels fit, with a fair amount of logic and DSP blocks left over. All but a few BRAMs (memory blocks) are used however.

A new scheme for speeding up the waterfall at higher zoom levels has been implemented. It essentially involves calculating the FFT on overlapping samples when the samples are being generated by the waterfall DDC at a rate slower than the desired display rate.

The highly-accurate timing from GPS location fixes now compensates the SDR frequency to cancel the temperature drift of the main 66.6 MHz oscillator. Since the Soft-GPS was going to be on the board anyway it made some sense to use an inexpensive XO (instead of a TCXO) to help keep the BOM cost low and let the GPS do the calibration and temperature compensation. Although an XO with relatively good phase noise performance had to be chosen to keep the ADC happy.

The big problem now is getting acceptable performance with all four SDR channels running simultaneously along with the GPS (since the waterfall DCC is tunable independently from the audio DDC it's really an 8 channel SDR). I've made a lot of optimizations but the waterfall update rate is still too slow when more than two channels are in use. Fortunately between the FPGA logic, embedded FPGA CPU, Beagle and Javascript on the users' browser there are plenty of different ways of distributing the tasks, buffering and latency. I'm having fun figuring out how to measure where the bottlenecks are and designing better solutions.

Click images for full size.

View of entire 0-30 MHz range:

Moderate zoom of medium-wave broadcast band with spectrum display on top enabled:

Over-the-horizon-radar (OTHR) from Cyprus showing short-term ionospheric fluctuations:

VLF/LF reception in New Zealand:
kHz Station Location Signal
14.88 Alpha Khabarovsk & Novosibirsk Russia Navigation system
17.0 VTX2 India MSK comms
19.8 NWC Australia MSK comms
21.4 NPM Hawaii MSK comms
22.2 NDT/JJIJapan MSK comms
24.1 (UNID) Korea, per David L Wilson FSK comms
40.0 JJY Japan Time signal
45.9 NSY Italy MSK comms
54.0 NDI Japan MSK comms
60.0 JJY/WWVBJapan, USA Time signals
68.5 BPC China Time signal

Many others heard during different times and conditions.


I have received three prototype boards manufactured and assembled by a company I use in Shenzhen. Debugging will start shortly. Most of your suggestions from the design review made it into this prototype, although there is already a newer PCB layout with a few changes. Yes, despite what I thought was clear documentation, the Beagle headers are indeed installed on the wrong side of the board. There are a couple of ways to get around the problem.

Click image for full size:

Design Review Underway


Many thanks for the feedback and comments I have received. And for the many listeners world-wide that have tried the SDR. I can see from the logs that not all connection attempts are successful. Although I have fixed a number of bugs there are still problems with some, possibly older, browsers. If you've had problems in the past please try connecting again. I have added much debugging code to try and understand the issues. If possible, try and use the most recent versions of Safari, Firefox, Chrome or Opera that support HTML5. Thank you.


When it's available, take a listen to the prototype receiver. You'll need a modern browser that supports HTML5.

Now a favor. I really need your help. Before committing the funds to building a prototype I would really appreciate your comments on the design review document. Yes, it's 60 pages. But if you only read one section or paragraph, and send one comment, you will be helping me tremendously.

I need advice about every aspect you can think of. Maybe you're an EMC/EMI expert who can tell me a better way of keeping digital noise out of the RF front-end. Or why my PCB ground plane choice won't work. Perhaps you know of a VCXO part that would be a better choice (cheaper, more available). You may spot a flaw in my implementation of the DDC architecture. Or know a way to improve my design-for-manufacturing strategy that will reduce production costs.

I don't claim to be an expert at any of this. But you probably are. Sincere thanks in advance.


Project update. Full routing of a prototype board has been completed. It is a little longer than a standard Beagle cape because I wanted to be conservative the first time around and not create a routing nightmare, or a board that would be difficult to manufacture as a one-off proto. The other advantage is that if this board turns out to have a good RF noise floor, and a future shrunk board doesn't, at least I know the design isn't fundamentally flawed. It will also be easier to probe and rework a larger board (the smallest components used are 0402 and 0.5mm pitch).

It's 6 layers mostly because of the difficulty in providing all the required power planes to the FPGA BGA in a 4 layer design. Yes, only part of the cape connectors are used (this is allowed by the Beagle spec). It saves board space and significant cost. The internal layers, and top and bottom flood ground planes, are not shown in this rendering. There are some virtual traces too. The thin traces used to connect the edge ground plane stitching is just to keep KiCAD happy about all those otherwise floating vias. The traces gets absorbed into the flood plane.

Click image for full size:

Work also continues on the design review document. It's up to about 40 pages. I decided to try a full PCB routing before soliciting your feedback with the design review because the routing process has uncovered some issues I need advice about.


An update. Work is continuing in all areas: FPGA firmware, user interface and PCB schematic, layout and bill-of-materials. There have been some big design changes which are detailed below.

User Interface
I was pleasantly surprised in December to receive an email from Andras Retzler, HA7ILM, describing his OpenWebRX project. An open-source, multi-user SDR with a web interface. I have adapted it to work with KiwiSDR. Both audio and the waterfall display are working. There are still many UI features to add but most are not complicated. Thanks Andras!

I have replaced the Spartan-6 LX25 FPGA with an Artix-7 A35 after I noticed that the A35 is the same price as the LX25 but contains 40% more logic blocks, 100% more block RAM and 40% more DSP slices. This is no doubt a result of the Spartan-6 to Artix-7 process shrink from 45 to 28 nm. I need all the FPGA resources possible to maximize the number of simultaneous receiver channels while keeping the project cost low. Being a relatively new part the A35 will be less available than the LX25 but hopefully this will not be a problem by the time I need to purchase in quantity for production.

Another issue is that the A35 requires the use of the Xilinx Vivado design tools (as opposed to ISE for the LX25). So I had to take a few days to install and learn the new tool-chain. A task always filled with grief. But I wrote it all down and will include design tool instructions in the project documentation. The Verilog firmware now compiles for both Vivado and ISE. There had to be some conditional code due to differences in generated IP blocks by the tools.

Active Antenna
The current plan is to include PCBs for an active antenna and associated power injector as part of the project. The incremental BOM cost is less than 10% (about the same as the SD-GPS). The idea is to offer an SDR that is mostly self-contained and easy to setup. You'd have to supply an enclosure for the antenna PCB, a length of coax and a 12VAC plug-in AC adapter. The design is based on the PA0RDT Mini-Whip from Roelof Bakker, PA0RDT. But the board also has pads and traces to support two Complementary Push-Pull Amplifier designs from Chris Trask, N7ZWY of Sonoran Radio Research. The second of which offers improved performance by using even-order distortion negative feedback. You'd just have to buy the SMD parts and solder them on (a few resistors/caps have to be changed/removed from the Mini-Whip design).

The injector purposely requires 12VAC (not DC) so there is a chance of applying proper filtering to the input and bridge rectifier diodes. And also to prevent the temptation of you using one of those extremely noisy DC switching power supplies. This is all optional of course and you may attach any antenna you wish to the input of the main board.

I'm using KiCAD and full schematic, layout and library files will be made available. The board is 6 layers because a proper power, ground and signal plane stack-up is essential to minimizing noise. Very important with a 14-bit ADC and GPS front-end on the board. All the schematic symbols and part footprints are in the included local library instead of relying on public library files. This may seem odd but I wanted to make the eventual distribution self-contained. Also, many of the tiny SMD footprints weren't available in any of the web libraries that I could find.

Design Review
Despite what it may look like, I am not an expert in most of these techniques. Particularly not RF design and certainly not EMC/EMI/noise control & compliance or SMD PCB manufacturing. I'm familiar with them all, but the design is largely "cookbook" based on open-source/hardware projects and ideas from the web. Also I want to write a design paper detailing the the choices I made and my (possibly flawed) underlying assumptions and then solicit your feedback. This will be done before committing to full routing of the PCB.

Click image for full size: