The KiwiSDR is always accessed over a network connection using a browser running on another computer or mobile device. This can be from your local network or by anyone on the Internet if you have chosen to make your KiwiSDR publicly available. The user interface is not currently optimized for mobile devices and there are no mobile apps yet for Android or iOS. The software does not support attaching a monitor
or keyboard/mouse directly to the Kiwi BeagleBone.
Connect to the local network using an Ethernet cable between the Kiwi and your Ethernet switch, router, cable modem or firewall. An IP address for the Ethernet port is usually assigned by a DHCP server that is likely to already be running on your network. See the network configuration section for complete details.
Please consider making your Kiwi
to Internet users by listing it on
sdr.hu Particularly if your Kiwi is located in an interesting or under-represented part of the world. There are options for limiting public access to a subset of the four available channels.
If you purchased the "kit" version, installing the KiwiSDR / BeagleBone Green combo into the enclosure. Note that the software is pre-installed on the Beagle. The supplied micro-SD card is for backup only.
If you purchased the "board only" version, installing the KiwiSDR onto a BeagleBone that you supply. Then installing the software from the micro-SD card onto the Beagle. Please remove any USB or Ethernet connections from the Beagle when installing software from the micro-SD card.
For both versions, hooking up the required network, power and antenna connections. Procedure for connecting to the KiwiSDR using a browser.
A printed copy of this guide is included in every KiwiSDR shipping box.
The two cases of network configuration
In certain circumstances you may not have to do any network configuration at all. The Kiwi will just work out-of-the-box after you plug into the local network.
There are two cases.
You only want to use the Kiwi on your local network without allowing public access over the Internet.
Try connecting to the Kiwi using the link
But see below if this doesn't work.
In addition to the above if you want your Kiwi to be publicly available then port 8073 must usually be opened to the Internet by changing your router or firewall. But there is software on the Kiwi to help perform this task automatically.
First case, local only use:
It is likely your local network already has a DHCP server that will automatically assign an IP address to the Kiwi. This function is usually performed by your network firewall / router.
The kiwisdr.local hostname resolves to this IP address via software on the Kiwi and the host computer you're connecting from (the one running your browser).
But the kiwisdr.local hostname may not be recognised by all systems, particularly Windows. For a workaround to this problem, or if you need to specify the IP address manually (e.g.
192.168.1.10:8073), see below for how to
find your Kiwi's IP address.
Second case, public access:
For public access you face a couple of issues.
Opening port 8073 on your router so incoming connections can be made.
Specifying whether a domain name or IP address will be used to connect to your Kiwi.
Using advanced techniques to overcome problems encountered with the above
(e.g. UPnP port configuration, DDNS or reverse proxy)
Allowing public access on port 8073
For the public to connect, your KiwiSDR must answer on port 8073 at a fixed public IP address.
Although any port number, e.g. 80, can be configured (see below).
If you are on a residential network a single public IP address is sometimes shared by
multiple computers, usually via Network Address Translation (NAT).
You must modify the NAT configuration of your router, modem or firewall to
route connections to port 8073 of your public IP address to whatever local IP
address was assigned to your Beagle (port mapping). To do this you'll need the
network information provided using the methods described below.
The other issue is that port mapping requires the local IP address of your
KiwiSDR be unchanging over time. After all, you have to enter a fixed local IP
address when the port mapping entry is made. Your KiwiSDR was likely initially assigned a local
IP address with DHCP (dynamic host configuration protocol) from your router, modem or firewall.
DHCP does not guarantee that the same local IP address will be assigned each time the
KiwiSDR is booted. To solve this problem most routers have another table to assign
local IP addresses based on the unique MAC address associated with the Beagle.
The MAC address is provided using the methods described above. You must then pick
an unused local IP address that is outside the range of local IP addresses that
DHCP uses yet still part of your local IP address space.
For example, our local network uses the address block 192.168.1.1 - 192.168.1.254 and
is allocated as follows:
start of DHCP allocated space
end of DHCP allocated space
The port mapping and fixed IP tables are then setup in the router as follows:
NAT port mapping:
public IP address
private IP address
fixed IP assignment:
local IP address
Using UPnP to open the router port automatically
Beginning with release v1.65 of the Kiwi software your router can be contacted by the Kiwi using the Universal Plug-and-Play (UPnP) protocol and asked to open port 8073 automatically. Not all routers support this protocol, or have it enabled by default. This Kiwi feature is designed to save you from performing this task manually which can sometimes be difficult if you are not familiar with Network Address Translation (NAT) rules and the operation of your router.
For security reasons this feature is disabled on the Kiwi by default. To activate, go to the network tab on the admin page (e.g.
and set the button called
Auto add NAT rule on firewall / router? to "yes". Then click the server restart button when it appears. When you return to the network tab after the restart
a message should say: Automatic add of NAT rule on firewall / router: succeeded
If there is a different message in any other color the automatic add didn't work and you'll have to add an appropriate NAT rule for port 8073 (or another port you've configured) to your router manually.
If you are unsuccessful in opening the port due to factors beyond your control then it may still be possible to make your Kiwi publicly available using the
reverse proxy scheme. But there is a cost and performance penalty in doing so.
Finding the Ethernet IP address of the KiwiSDR
Figuring out the IP address assigned to your KiwiSDR is the first step in manual network configuration.
In most network setups a DHCP server on your router, modem or firewall will assign this IP address
to the Ethernet port on the Beagle of your KiwiSDR. The problem is figuring out what this address is.
Here are some suggestions:
Check your router's list of DHCP-assigned IP address (see below)
Use "kiwisdr.local:8073/admin" to connect to the admin page
The network information about your KiwiSDR is available on the "network" tab at
So if you can connect to the Kiwi this way the Kiwi itself can tell you its IP address for use in further network configuration.
But this method may not always work.
Most versions of Windows don't recognize the kiwisdr.local hostname.
Here is a workaround.
But do not use this workaround for Window 10 or later. There appears to be some sort of conflict and using kiwisdr.local will result in connections that have lots of audio overrun problems. Use one of the other methods listed here to find the IP address.
If you install Apple iTunes for Windows then
the Apple Bonjour mDNS-based location discovery software gets installed.
Now kiwisdr.local should be recognized. It is possible to uninstall iTunes but leave
Bonjour/mDNS working with the right Windows control-panel manipulation. We understand that future versions of Windows may include mDNS by default. So try using kiwisdr.local before using the workaround.
Read the IP address from the Beagle LEDs
Beginning with version v1.174 of the software, the four LEDs on the Beagle (lower board of the two board stack) will display an encoded status message. This message includes the IP address, either assigned by DHCP or set statically. See the section: Decoding the LED status message.
Run the Kiwi local network scanner at kiwisdr.com/scan
You can also try the auto-discovery scanner at
to find KiwiSDRs on your local network. The scanner requires your browser to
support the HTML5 WebRTC protocol. This only works with modern browsers.
Note that if you're in a university or corporate environment their network monitoring
software may interpret this scan as being malicious activity (this has actually happened, lol).
So please proceed with care.
Use the free Fing network scanner app for iOS/Android at www.fing.io
There are also free third-party network scanner apps. We use one called Fing for the iPhone / iPad.
After the scan, look for an entry where the Ethernet MAC address vendor has decoded to "Texas Instruments".
TI is the manufacturer of the processor chip on the BeagleBone where the Ethernet controller resides.
Check your router's list of DHCP-assigned IP address
Of course your router, or other device running DHCP, knows the IP address allocated to the Kiwi.
If you know how to access this device you might be able to determine the latest "new" device added to the DHCP list and hence the IP address.
Specifying the connection URL
This is the second issue to consider for the case of a Kiwi with public access.
The method used to establish a public connection to your Kiwi is specified in the connect tab on the admin page. This includes specifying your own domain name, using the detected public IP address of the Kiwi or specifying your own IP address. Also the advanced techniques, DUC and reverse proxy, described below.
Configuring the dynamic DNS update client (DUC)
An issue you must consider for public access is how the outside world will contact your Kiwi.
Do you already own a domain name (e.g. bob.com) and has your Internet provider assigned you
a static public IP address? Great, you're all set. All you have to do is create a sub-domain, say
kiwisdr.bob.com and point it to your public IP. Now your Kiwi will be reachable at kiwisdr.bob.com:8073/ assuming you're using the default port 8073.
But for many people this is not the case. They don't own a domain and their relatively inexpensive residential Internet service supplies them a dynamic IP address that changes every so often.
To overcome these issues what you want is something called "dynamic DNS (DDNS)" where a company like
noip.com allows you to use one of their generic domain names. And also gives you a program (dynamic update client, "DUC") to run on your local computer that tells them when your ISP has changed your dynamic IP so the generic domain name can be updated.
To simplify this process beginning with release v1.83 a DUC for noip.com has been built into the Kiwi software and can be configured on the connect tab of the admin webpage. You can use either the free DDNS noip.com service that requires a manual acknowledgement every 30 days or one of their paid plans without this restriction. Go to noip.com
and create a unique hostname for one of their generic domains (e.g. kiwi1234.ddns.net) and setup an account. Then on the connect tab of the Kiwi admin page select "DUC domain" on the menu.
Then enter the noip.com account information, host name
and hit the "click to (re)start DUC" button. In the status field below you should see the response
"DUC started successfully" or an error message if there is a problem. To start the DUC every time the Kiwi restarts change the "enable DUC at startup?" switch to "yes".
Configuring a reverse proxyNew
Reasons you may not ultimately be able to open a router port include:
ISP refuses to allow incoming connections, including people trying to connect to your Kiwi.
ISP does not give you access to the NAT configuration interface of your router.
ISP employs some weird addressing scheme to conserve public IP addresses that results in no incoming connections.
Some other router or network issue. Even though you can make outgoing network connections without problems. For example a 3G/4G Internet connection.
To address this issue we are offering a reverse proxy service. proxy.kiwisdr.com is used as a third-party server to overcome issues with NAT and ISP restrictions. When configured to use the reverse proxy your Kiwi will register with proxy.kiwisdr.com on startup. The URL to access your Kiwi then becomes hostname.proxy.kiwisdr.com:8073 where you choose the unique hostname. If you are listing your Kiwi on sdr.hu this URL will be used.
Because the proxy server sits in the middle of all data streamed between your Kiwi and the connecting client there is a performance penalty. It remains to be seen how significant this is. Additionally, there are costs involved for us to offer the service. So there will be a small subscription fee for using this service, probably on the order of USD $10 to $20 per year.We have decided not to charge for the proxy service at present. But at least this will finally be a solution for people who have been unable to list their Kiwis on sdr.hu
Initially there will be no charge to try the service and decide if it is beneficial to your situation. If your Kiwi is located in a unique/rare location (e.g. Asia/Pacific, South America, Africa), and you cannot afford the fee, KiwiSDR will consider giving you a free subscription if you agree to make your Kiwi publicly available on sdr.hu
your API key and we'll enter it in the proxy database.
Wait until you receive a confirmation email from us before proceeding.
On the connect tab of the Kiwi admin page select reverse proxy on the menu.
In the reverse proxy configuration section put your API key in the User key field.
Enter a name you choose in the Host name field. Valid characters are a-z, 0-9, -, _ (no upper case, no leading '-')
Press Click to (re)register button.
The status message should say "New account, registration successful".
You should now have access to your Kiwi at host-name.proxy.kiwisdr.com:8073 where host-name is the name you entered.
Note that port 8073 must always be used with proxy.kiwisdr.com and is not configurable.
If this works you can complete the sdr.hu tab on the admin page using your API key. As long as reverse proxy is selected on the menu a proxy connection will be established whenever your Kiwi server is (re)started. Making your Kiwi accessible on sdr.hu is optional of course and independent of using the proxy. But we hope you will consider participating.
Configuring an Ethernet static IP address
If you are unable if get your router to associate the Beagle Ethernet MAC to a fixed local IP then there is an alternative. It is now possible to configure the Kiwi to use a static local IP address rather than obtaining one via DHCP. You'll have to get initial access to the Kiwi using one of the methods above. But then you can go to the admin page (e.g. kiwisdr.local:8073/admin) and then the network tab and change from DHCP mode to a static IP appropriate for your local network. The Kiwi Beagle will use this IP address on the Ethernet interface when next booted.
Using a USB network connection for initial Beagle access
If your network is very limited and has no DHCP server at all you can get initial access to the Kiwi by using a USB cable between the Kiwi Beagle and another computer as the network connection (micro-USB for BeagleBone Green, mini-USB for BeagleBone Black). This is a standard feature of the Beagle and instructions are available here. Note that it requires the installation of a USB networking driver on your computer. Once logged into the Beagle root account using the SSH (Linux) or PuTTY (Windows) program setup a static address for the Ethernet interface by editing the file /etc/network/interfaces on the Beagle. Change the entry for eth0 from using DHCP to using a static address. Use the entry for usb0 a guide.
But note the Kiwi software itself does not support using USB networking. This method is only for gaining initial access to the Beagle in order to change the Ethernet configuration so the Ethernet can subsequently be used.
Using a serial connection
As a last resort it is possible to connect a serial cable between the Beagle and a host computer.
You'll need to purchase a USB-to-serial cable that is designed to connect to the Beagle serial port header. More information is here. Be certain to buy a cable that presents 3.3V to the Beagle and not 5V (the 5V cables are more common). You'll need to remove the Kiwi board in order to access the Beagle's serial header. Use a serial com program to login to the Beagle at 115.2k baud as the root user with no password. Then edit the file /etc/network/interfaces and change the configuration of the eth0 (Ethernet) interface from dhcp to static. Use the settings for usb0 at the end of the file as a guide.
Point-to-point Ethernet connection to a host computer
Some users simply want to install an Ethernet cable between the Kiwi and a laptop or PC and not involve other equipment like switches/routers/firewalls and not involve the Internet. This might be because they are traveling or only have a wireless connection between their PC and an Internet access device that has no Ethernet ports. We now have a solution for this case.
Starting with the v1.47 release the Kiwi software uses something called avahi-autoipd which takes over when the Kiwi is unable to locate a DHCP server to get an IP address for the Ethernet port. A random-but-unique link-local IP address in the 169.254.0.0/16 range is then assigned to the Ethernet. Similar software present on all modern Macs and PCs does the same thing. Now the PC and Kiwi should be able to talk to each other. Since you don't know what IP address has been assigned to the Kiwi you instead use the name kiwisdr.local. On PCs this currently requires the Bonjour/mDNS package to be installed with the workaround described here. Macs are already setup. So now you can connect to the Kiwi by using
Note that it takes
more than 60 seconds
after the Kiwi boots before it decides there is no DHCP and it should assign a link-local address. So please be patient before trying to connect from the PC.
A question remains however. If your PC only has a wireless connection to the Internet, and your new Kiwi was delivered with an installed software version prior to v1.47 (which is going to be true for quite a while) and you can only plug the Kiwi into the PC, then what can you do? The answer is to download a special version of the Kiwi software from the Internet onto your PC. Then copy it to a micro-SD card. And finally re-flash the Kiwi on-board filesystem from the sd card. Follow the instructions here.
KiwiSDR configuration from the admin webpage
Almost all configuration and administration of the KiwiSDR is done through the admin web interface at
kiwisdr.local:8073/admin (adjust hostname as required).
Each tab at the top of the page selects a group of related configuration parameters or status information. A restart button for the server will appear when certain parameters are changed. Use it when you have made all of your changes in all of the tabs.
Restart, reboot and power off
The status tab has restart, reboot and power off buttons. Restart can be used when the server is behaving oddly. Reboot of Debian can be done if the system has been running for many days or weeks and seems to have problems that might be Linux related. It is especially important to use the power off button before removing power from the Kiwi as this first halts Debian in a safe fashion that will prevent any possible filesystem corruption.
The Kick button can be used to close all active user connections (i.e. kick everyone off the SDR). This is useful when there are users who have been logged in for a very long period of time. The Inactivity timeout field described below can be used to limit connection times.
The sensitivity of your antenna will determine how the base waterfall colors will appear. We suggest changing the Initial waterfall min field to compensate. Here is an example of base waterfall colors that are "washed out" with too much green because the default value of WF min on the main control panel is too low at -110 dBFS: (click for larger)
Here is the same waterfall with WF min set to -80 dbFS: (click for larger)
Once you have found a good value of WF min set that value in the Initial waterfall min field on the Config tab of the admin webpage.
The Inactivity timeout field can be used to limit the amount of time a user can be connected when not actively changing the SDR controls (i.e. parked on a specific frequency for a long period of time). The timeout period is reset as soon as some adjustment to the controls is made. A value of zero disables any timeout checking. This is the default.
The Max receiver frequency menu allows the top reception frequency to be increased to 32 MHz. This is to accomodate some users who want to down-convert signals into the 30 - 32 MHz region. Note that due to the KiwiSDR ADC clock frequency (66.67 MHz) there will be increased aliasing and spurious responses above 30 MHz.
Configuration when using a down-converter
The Kiwi frequency scale and other places where the frequency appears and is entered can be adjusted to account for any VHF/UHF down-converter (transverter) you have installed ahead of the Kiwi antenna input. The Frequency scale offset (kHz) field is used for this purpose.
Enter the number of kHz necessary to bring the converted frequency to the correct position on the scale. For example to map 50-52 MHz to 28-30 MHz place 22000 kHz in the field (50000 - 22000 = 28000). To map 144-148 MHz to 28-32 MHz set the field to 116000 kHz (144000 - 116000 = 28000) and set the Max receiver frequency menu selection to 32 MHz to get the extended receiver coverage. Inverted tuning when the converter uses a high-side LO is not yet supported (common for 23 cm / 1296 MHz converters).
The Coverage frequency low/high fields on the sdr.hu tab help sdr.hu use the correct frequency icon if you have listed your Kiwi there. Enter the frequencies covered by your down-converted setup. For example setting 144000 and 148000 in the fields will make sdr.hu display the icon "2m". Similarly for 70cm and 23cm. For other frequencies, including 6m and 4m, sdr.hu will display a frequency range in MHz. So if you entered 50000 and 52000 sdr.hu will display "50MHz - 52MHz".
The coverage fields can be used even if you are not using a down-converter. Suppose you have a Kiwi specializing in the AM MWBC band with attenuation outside those frequencies. You could set the fields to 540000 and 1710000 and sdr.hu would display "0.5MHz - 1.7MHz".
Note: Consider specifying coordinates that don't reveal your exact location. You can get the "Google format" map reference by Googling the name of your location (town etc.), clicking on Google maps from the search result, then clicking on the "share or embed map" item from the Google maps menu at the top left. Place in the Map field the last part of the link that begins with "https://www.google.co.nz/maps/place/" You can use the check map button to verify.
Grid square field
If you are not familiar with grid squares just click on the check grid button. A webpage will appear where you can enter your location name and receive a 6 character grid square identifier to enter in the field.
You can replace the default startup background photo with your own. Scale a photo file (jpeg, png, etc.) to be 350 pixels high. Starting with the v1.17 release there is a "file chooser" dialog so you can download the file to the Kiwi directly using the admin page.
Although there is a Photo height field, changing it from 350 pixels currently doesn't work.
Change the Photo title and Photo description fields as appropriate for your new photo.
The Owner info field allows you to display a message, including HTML, in the middle part of the top bar. Add your own logo here, short message or maybe a Paypal donation button to help defray your Internet costs for a publicly-accessible Kiwi.
Note that the Title field can contain HTML, like a link, just like the Status field even though there is no preview shown.
The configuration on the connect tab is used to define the URL used to connect to your Kiwi from the local network and, optionally, from the public Internet. Here also is the configuration of the
DDNS DUC and reverse proxy as described in the network section of this document.
Note: Consider specifying coordinates that don't reveal your exact location,
although the map on sdr.hu adds some dither
to the location when zoomed-in as a privacy measure.
Also note that we at KiwiSDR do not run the sdr.hu website. It is administrated by our friends at the OpenWebRX project on whose software our user interface is based.
On the sdr.hu tab are the parameters for sdr.hu registration.
To obtain an API key go to
and fill-out the form. You will be emailed a key to be entered into the API key field.
Currently the form requires a ham radio callsign to be entered. But a lot of Kiwi customers will of course not be hams. We suggest creating a "pseudo" callsign following the conventions used by the WSPR extension. Namely using a callsign of "SWL" (abbreviation for shortwave listener) followed by your grid square, either 4 or 6 characters. We've tried this and it seems to work and, like a callsign, is useful in that it gives an indication of where you are in the world.
Change the other parameters and set the display? question to yes.
Then click the server restart button when ready.
Make sure your location on the sdr.hu/map shows the correct latitude and longitude.
A common mistake is not specifying a negative longitude for the Americas or a negative latitude for locations in the southern hemisphere (we've made this mistake).
You can use the check map button to verify.
Note that the latitude and longitude are entered as signed decimal degrees, surrounded by parenthesis, e.g. "(-37.631016, 176.172019)". Not hours-minutes-seconds, no "N S E W" notation, no "degree" symbols, etc.
If you zoom in on the map you'll notice that sdr.hu dithers the location a fair amount to help protect your privacy.
If the GPS is running, and has a fix, a blue button labeled set from GPS will appear. Use it to fill-out the location field automatically. The same is true for the grid square field.
If your Kiwi doesn't appear on sdr.hu after some time check the admin Log tab for an error message.
Duplicate entries on sdr.hu
There is currently a bug that can cause duplicate entries
to be listed for your KiwiSDR. Here's how it happens. If you first register with a numeric
IP address, e.g. server_url = "18.104.22.168" then later setup a DNS name that points to the
same IP address, e.g. server_url = "kiwisdr.mydomain.com" there is a problem. sdr.hu will list entries for both the numeric IP address and DNS name. The old numeric entry will never
timeout and be removed because the new DNS entry resolves to the same IP address.
So if you're going to use a DNS name try to set that up from the very beginning.
The problem can be worked around by using a different port number for the second entry, i.e.
if the numeric entry used port 8073 then by using port 8074 with the DNS entry sdr.hu
will treat them independently and the inactive numeric entry will be removed.
You'll note that this is how some sites support multiple independent SDRs. They use the same
DNS name or IP address but each SDR operates on a different port number.
Also note that you could still present port 8073 as the KiwiSDR port to the Internet.
Some NAT implementations allow the inside and outside port numbers to be different, i.e.
Internet port 8073 could be setup to map to port 8074 on your local network.
To use a port other than 8073 you must change the internal/external port field in the network tab and restart. A differing value in these two fields allows you to use different port numbers externally on the Internet versus internally on your local network. Of course the NAT rule in your router would have to reflect this situation.
sdr.hu security requirements
For security reasons sdr.hu requires that the domain name you use (if any) must resolve to the same source IP address as registration traffic coming from the Kiwi. This is usually the case. But a few users have encountered problems when unusual dynamic DNS or VPN configurations are used and the IP addresses are different. There is a
forum topic that has some details.
If you don't have a Ham radio callsign, but would like to contribute your Kiwi's WSPR
decodes to wsprnet.org, set the Reporter callsign field to something like "SWLRF82". Where "SWL" is the well-known abbreviation for "shortwave listener" and "RF82" is a 4-character grid square describing your Kiwi's general location available from this site. There are other conventions as well, e.g. "SWL/ZL" where "ZL" is a Ham radio callsign prefix for New Zealand.
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. It is hoped this feature may persuade some owners of completely closed Kiwis in desirable locations to make some of their channels public.
Controlling the server from a Beagle root login
Although most of the control and configuration of the server is accomplished via the
admin webpage, there are some shell commands that can be used. Login to the Beagle from another
computer as the root user. On another computer use the SSH program with Linux, or PuTTY on Windows.
Change to the Beagle_SDR_GPS directory. A shortcut for this is the cdp command alias
(change directory project). Once there a number of commands can be used to control the server:
ku (Kiwi up) Restart the server.
kd (Kiwi down) The SDR stops and returns a "down for development" message.
ms (make status) Reports server status and last log messages.
mu (make users) See who's been using your KiwiSDR.
ml (make log) Prints all the log files.
msl (make short log) Prints just the recent log file.
up (update) Forces a software update to the latest version on Github.
There are a number of others that are less useful. See /root/.bashrc
and the Makefile for more information.
Most of these features as also available on the admin webpage. For example the log
files can be viewed under the Log tab and the server can restarted with a button on the Control tab.
Special access-related configuration
There are several configuration options related to admin access of the Kiwi. For security reasons
these are specified by files in the /root/kiwi.config directory on the Kiwi rather than
directly in the web-based admin configuration. The file names and their contents are:
opt.admin_ip -- Limits admin connections to a single ipv4/ipv6 address (put ip address in the file). Multiple addresses and domain names are not currently supported.
opt.no_console -- Disables the console tab function on the admin page which effectively prevents root shell access from the web interface. Just create a file of this name. The file contents don't matter (e.g. file can be empty). This has no effect on any other security measures you may, or may not, have taken on the Kiwi (e.g. set a root password, changed sshd configuration). Therefore note you may still be able to login as root to the Kiwi using ssh/PuTTY.
Manual frequency calibration
If your GPS antenna is connected and receiving signals then the KiwiSDR clock frequency will be continuously calibrated automatically. If not you can perform a manual calibration. There are two sources of clock oscillator error. Inherent error due to manufacturing variations and error that changes with the ambient temperature. A manual calibration will correct the inherent error, and error due to the current temperature, but will not track error due to future temperature changes.
Follow these steps:
Tune to a station transmitting a carrier on a known, accurate frequency like a time station (WWV 15 MHz in this example). Use the highest frequency station possible as this will show the most offset (i.e. an HF station rather than LF/VLF). Zoom all the way in and select the exact center of the carrier line in the waterfall with the mouse. The yellow vertical bar of the passband should align with the waterfall carrier line. See image below. Note the WWV -/+100 and +600 Hz modulation shown in addition to the carrier (frequency scale ticks are 100 Hz).
Right-click to bring up the menu and select cal ADC clock (admin). You will be prompted for the admin password if necessary. On a laptop there are usually options for generating a right-click if your trackpad doesn't have left/right buttons (i.e. with a double-tap, control-tap, etc.)
A confirmation dialog will appear showing how far the clock must be adjusted to get to the nearest 1 kHz. In this case +81 Hz is needed to get the carrier on 15000 kHz. The normalized ADC clock adjustment in parts-per-million (ppm) is shown, 4.9 ppm in this case.
As soon as confirm is clicked the waterfall will shift to reflect the new calibration. This new calibration value will be remembered and applied on every Kiwi restart. It will be reset to zero when GPS corrections are occurring.
Optionally downloading the software
This procedure is normally not necessary since each KiwiSDR comes with a micro-SD card containing all the software. In addition, if your Kiwi includes a BeagleBone Green (BBG) the software is already pre-installed on the BBG. However there are cases where you might want to download the software: your micro-SD card doesn't work or you want to get a head-start on installing the software if you've ordered just the Kiwi board and are supplying your own Beagle.
In case you are unfamiliar with the process of installing software on a Beagle here's how it works. The micro-SD is what's known as a 'flasher'. Each time you boot your Beagle from the micro-SD card it will copy its contents to the on-board flash memory (eMMC) of your Beagle. In other words all the software previously installed on your Beagle will be
completely overwritten and lost
. So be very careful in using a flasher micro-SD. Remember, the copy operation will only occur when you boot from a micro-SD flasher. It is possible to insert a flasher micro-SD into a running system so that it may be read or re-written like any other card. But be certain to remove it immediately after you're done. Otherwise the next time you reboot the Beagle the flashing operation might begin (if the card is still a flasher). Even we make this mistake occasionally and it is very annoying to lose your work that is stored on the Beagle's on-board filesystem.
So now an image file from the Internet must be downloaded and copied to a micro-SD card to turn it into a flasher. This can be done on the Beagle itself running whatever version of Debian Linux happens to be installed†. It is also possible to use programs on Macs and PCs that write image files to micro-SD cards. Proceed as follows.
Obtain a micro-SD card at least 2 GB in size. It is best not to use the one delivered with your Kiwi as that should be saved as an emergency backup (unless you're repairing the delivered card.)
Mac & Windows:
Download this 235 MB .img.xz file to your Mac/PC
Run script: "bash ./kiwiSDR-download-KiwiSDR-create-micro-SD-flasher.sh"
Script will download 235 MB KiwiSDR software distribution file from Dropbox.
Script will show checksums. Make sure they match so you know download is good.
When script asks, insert a micro-SD card (2 GB or larger) into Beagle.
Script writes micro-SD card. This takes about 40 minutes. Depends on size and type of micro-SD card.
If you want the Beagle you are now using to be re-flashed with the KiwiSDR software then hit return key when asked to reboot. Remember: all previous Beagle software will be erased. Otherwise hit control-C to stop script.
After you have an SD card with the flasher image insert it into the Beagle and power-up.
When booted from the SD card the LEDs will display a "back-and-forth" pattern as the image is copied to the Beagle on-board filesystem.
The Beagle will power off when done (all LEDs will go dark). Takes about 5 minutes for a Class-10 SD card.
IMPORTANT: Remove the micro-SD card when finished.
Your Beagle now has the KiwiSDR version of Debian installed and a version of the KiwiSDR server software itself. When the KiwiSDR server is first run it will automatically update itself to the latest version by downloading from
Github since the download image is always a bit older than the most current version.
† Note that if you have an older Beagle running the Angstrom distribution, instead of the more recent Debian, this script won't work. Use the micro-SD delivered with your Beagle or follow the various guides on the Internet showing how to upgrade your Beagle to Debian first.
Viewing the source code change log
To see the comments from recent changes to the source code look at the Github
If any comment there is followed by an ellipsis box (...) click on it for more information about the change.
The Kiwi must be powered using the round connector DC jack on the Kiwi board (2.1mm ID, 5.5mm OD). Powering over the micro-USB connector of the BeagleBone Green doesn't work because it can't supply enough current. The power management chip of the BBG will not allow more than 500 mA to flow on this connection. The Kiwi plus BBG draws over 1A and peaks approaching 1.5A.
Also note that many power supply DC plugs are actually meant for 2.5 mm center pin jacks, not 2.1 mm the Kiwi uses. This means they will fit loosely in the Kiwi jack and may cause unexpected power downs as the Kiwi or cable are moved around.
Be careful when using precision bench supplies
Be sure to set the current limit high enough (>= 2A) to catch the peak current requirements of the Kiwi and Beagle. A precision supply will react much more quickly to over-current situations than an ordinary linear supply using a big output capacitor to ride through peak current demand. A bench supply will instantly drop the output voltage the moment the current limit is reached. We've had several users observe bizarre behavior using precision supplies (random Beagle shutdown, SD card write failures, repeatable server "freeze" during certain operations, etc.)
Under-voltage due to cable voltage drop
The power management controller chip (PMIC) on the Beagle will refuse to power up the Beagle and Kiwi if the 5V input is below about 4.75V. Worse, if a momentary increase in peak current draw causes the input to drop below 4.75V due to losses in the cable the Beagle will unexpectedly power down. This problem has been seen by several customers and even ourselves. It is caused by cables with insufficient wire gauge. See this
forum post. A 22 AWG USB-to-2.1mm adapter cable known to work is this one from Adafruit.
Using a quiet linear power supply to power the KiwiSDR / Beagle will significantly reduce received
noise, particularly on the LF/MF bands. This is because almost all of these small line-powered
units are switch-mode power supplies (SMPS) with inadequate filtering. The switching frequencies are typically in the 20 - 170 kHz range with harmonics sometimes extending well into the shortwave bands. Worse, the oscillators are almost always unregulated resulting in unstable carriers many kHz wide. Their emissions might meet regulatory requirements but that doesn't stop them from wrecking havoc when used to directly power an SDR. Check out this
comparing the emissions and safety of common 5V USB SMPS chargers.
Transformer-based, regulated linear supplies are now more difficult to find. Particularly the wall-mount (plug-pack) type. This is partly due to new energy conservation laws requiring higher standby-mode efficiency from power supplies. It's pretty easy to make an SMPS draw minimal current when plugged-in but not in use. But it's difficult for a transformer-based supply due to the unloaded losses present in the transformer even when there is no connection. There is also the issue of poor conversion efficiency compared to SMPS.
We have tested two classes of linear supplies with good results:
There is a group of people who care about quiet power supplies for their digital devices: the audiophile community. And for this purpose there are transformer-based, 5V linear supplies available on Ebay and AliExpress. We have evaluated one of these units and it worked great. All have IEC 60320 C14-style AC input connectors so you can use a mains cord specific to your region.
We are working to get Seeed to sell this type of supply on their website.
The one is a little expensive but the transformer can be strapped for 115 or 230 volts. It's an open-frame supply with all connections via solder lugs so you must add your own cables. Consider cutting off the cable with a 2.1mm circular connector from an old, crappy wall-mount supply you have lying around. For a line cord with a region-specific plug you can scavenge from old equipment or sacrifice a cheap extension cord (i.e. cut the receptacle end off and just use the plug and cable). Please add an inline fuse to your line cable (we did!) And insulate all line-voltage connections, particularly at the transformer. When dealing with line voltages please be careful, go slow, don't work alone and ask for help if you need it. We don't want any fatalities or injuries as a result of advice given here.
Many of the Kiwi beta sites use simple wire antennas (dipoles, verticals, etc.) with good results (although LF/VLF usually suffers unless an active antenna is used). As with noise reduction, experimentation with antennas is usually an incremental process.
If you are new to antenna building then start with a simple random wire. You will hear something. Then you can try a more complex antenna and see how much improvement there is.
There are many commercial sources for E-field (whip, probe) and H-field (loop) active antennas. Here are some in no particular order:
The top right of the S-meter shows a red "OV" indicator when ADC overflow/overload is detected. Tests with a signal generator show the ADC overflows when a single-tone exceeding -15 dBm (almost S9+60) appears on the antenna terminals.
If you're in Europe be careful about ADC overload in the early evening from the gigantic SWBC transmitters nearby. It can also occur from very strong local AM MW BCB signals. Use a smaller antenna or an inline attenuator if necessary. An attenuator can be as simple as a low-value potentiometer. Sure, the pot won't maintain a 50 ohm impedance like a proper Pi-network, but this is not critical. Adjust the pot until the overall waterfall noise floor drops to normal under high-signal conditions (roughly -100 to -130 dBFS shown on the spectrum display when fully zoomed in on a quiet frequency). Or until the "OV" indicator no longer shows.
One user cleverly notes that since the SMA and terminal block inputs are in parallel if you are connecting the antenna via the SMA connector you can place a swamping resistor or pot across the terminal block.
Martin, G8JNJ, has an excellent
on constructing simple series-tuned shunt filters to attenuate specific problem frequencies.
One user has found some very inexpensive inline SMA attenuators on Ebay. At those prices you can afford to buy a range of values and connect them in series to get the optimum attenuation.
There are several forum topics giving details about the
and MW band attenuation (
including excellent work by Jim, WA2ZKD.
The images below show severe overload from two extremely strong signals on 720 and 810 kHz (exceeding -20 dBm, S9+53) in the AM broadcast band from a Kiwi located in a major city.
Note the harmonics of the BCB extending into HF and the raised noise floor from all the reciprocal mixing. Zooming you'll find mixing products every 9 or 10 kHz up and down the band from VLF to 30 MHz (9/10 depends on regional BCB station spacing).
The existing antenna is necessary for adequate HF reception so some sort of BCB filtering will be necessary. Click on images for larger.
Noise reduction advice
Finding and reducing noise sources is an incremental process. We find it helpful to take a screenshot of the Kiwi waterfall before and after a particular noise reduction technique is tried. This will help you gauge how effective a fix is and even if a fix to one problem makes another worse.
E-field active antennas are compact and relatively easy to deploy, but are very sensitive to the local noise environment. Consider H-field loops and loopsticks as an alternative.
Experiment with different grounding configurations. At one location we found grounding the Kiwi to the apartment building CATV system coax outer braid made a huge improvement whereas grounding to the power mains safety ground was a disaster. At another location it was just the opposite. If possible try grounding to a dedicated ground rod.
Use a toroid choke for every cable connected to the Kiwi and Beagle. To get enough inductance, especially at LF/VLF, stack three toroids
(Fair-Rite 5977002701, 23mm ID, 77 material) and tape them together. Then wind as many turns as possible from each cable through the cores. Hopefully 8-10 turns although this will be limited by the size of the connector on the end of the cable (if any). As you pass more and more turns through the cores the connector body will eventually not fit even though more wire turns would.
We've also had reports that type 43 material toroids installed on the coax near the antenna offers good noise reduction.
Ethernet equipment and cabling is a known source of HF RFI.
In this blog post Geoff, G0LUJ, shows how using an Ethernet switch in a metal case and long,
shielded CAT6 cables reduced his Ethernet spurs on 20 meters by 20 dB:
Reducing Ethernet interference
Although they don't seem to advertise it,
in the USA has free international shipping to many countries for orders over USD $50. So if you buy a Bel power supply and a bunch of toroids from them it can be very cost effective. We get free delivery to New Zealand in only 3-4 days. It's the best thing since sliced bread!
We need to mention a possible problem when using the Element14 BeagleBone with your KiwiSDR.
When we first tried one about a year ago there was a very large increase (over +20 dB) in spurs
and noise from the BeagleBone compared to using the original BeagleBone Black manufactured by CircuitCo or the BeagleBone Green manufactured by Seeed. We have spoken to others who had experienced similar issues trying to pass FCC certification of their cape while using the Element14 Beagle.
We tried another one more recently and there was absolutely no problem. It was just as quiet as the others. So perhaps this was just an issue with the components used in a particular early build or something. So just keep this in mind if you plan on using an older E14 you've had lying around for a while. We would have no hesitation in using one more recently manufactured.
The vast majority of problems are caused by voltage drop on the power supply cable.
Please see Power supply advice.
Possible reduced sensitivity latch-up when a strong transmitter operating nearby. Requires a power cycle to clear (unconfirmed, only one instance reported).
Decoding the LED status messageNew
When the Kiwi software is running the four blue LEDs on the outer edge of the Beagle board (lower board of the two board stack) will display an encoded status message. Currently the message includes the IP address of the Beagle Ethernet interface and whether this address was set by a DHCP server or manually in the Kiwi configuration (network tab of the admin page).
The trick is to decode the message from the pattern displayed on the LEDs.
The structure of the message is as follows: cylon-3xtypecylon-2xcontentcylon-1x all-on-5-secs all-off-3-secs (repeat)
Type is a single digit:
'1' -- content is an IP address set by DHCP
'2' -- content is an IP address set statically
An IP address is displayed as follows: <3rd-digit>digit-sep<2nd-digit>digit-sep<1st-digit>num-sep
This is repeated four times to give a complete 12-digit IP address ABC.ABC.ABC.ABC,
where ABC are the 3rd, 2nd and 1st digits respectively, and digit-sep appears between each pair of digits and a num-sep appears where the dots ('.') are between the 3-digit numbers. IP numbers are always 3-digits and left padded with zeros if necessary, e.g. 192.168.1.23 is displayed as 192.168.001.023
Definition of LED patterns:
Digits are displayed in binary with the exception of zero which is displayed with all four LEDs on. In the following '*' means LED on, '-' means LED off.
I.e. the values of the LEDs are the usual binary 8-4-2-1 when read left-to-right with the left LED (value=8) toward the outside edge of the Beagle. Each digit is displayed for 3 seconds. If you are not good at sight-reading binary values this should give you time to write the LED pattern down.
The digit-sep (digit separator) is two quick flashes of all the LEDs.
The num-sep (number separator) is six quick flashes of all the LEDs.
A cylon is a pattern where one lit LED travels quickly from left-to-right, and back again, either three, two or one time.
At the end of the message, after the cylon-1x, all the LEDs are lit for 5 seconds then are dark for 3 seconds. Then the message repeats beginning with the cylon-3x pattern.
Kiwi user interface
Here are some aspects of the user interface that are not immediately obvious. In the descriptions below option/alt refers to the keyboard key usually marked "option" and/or "alt". Control refers to the key marked "ctrl" or "control". The "windows" key on Windows keyboards and the "command" key on Macs are not used. The "fn" (function) key is not used.
Clicking refers to left mouse button clicking. Right button or scroll-wheel clicking is specifically called out in the text to distinguish from ordinary clicking. We don't yet handle mice that have been configured for lefthand use where the button assignments are reversed (i.e. the right button functions as the left button normally would).
Touchscreen gestures (pinch-zoom, tap-to-zoom etc.) are not yet supported but are planned. There is no mobile device (small screen) interface yet.
All of these shortcut choices need to eventually be customizable by each user.
The passband is the yellow line drawn above the frequency scale. It represents the frequencies passed by audio filtering. It is most easily seen when fully zoomed-in. The yellow vertical line represents the carrier ("zero" Hz) point. You can click-drag various parts of the passband to adjust it. When the cursor is over different parts of the passband a tooltip will appear showing various parameters of the passband (see below).
Click-drag in the horizontal area of the passband to smoothly tune the received frequency. The center frequency of the passband is displayed.
High-cut / low-cut filter adjustment
Click-drag with the cursor over the sloped ends of the passband to individually adjust the filter high or low frequency cutoff. The cutoff frequency and filter bandwidth are displayed.
Filter width adjustment
Option/alt-click-drag with the cursor over the sloped ends of the passband to adjust the filter high or low frequency together, effectively adjusting the filter width about its current center frequency point.
Shift-click the zoom in/out icons (magnifying glasses) to also adjust the passband width around the center frequency. Each click widens or narrows the passband by 80% of its previous value.
Passband shift (aka passband tuning)
Shift-click-drag anywhere in the passband to shift its center frequency without changing its width. The carrier (BFO) point remains unchanged.
Shift-click-drag with the cursor over the vertical carrier line to change the BFO (carrier point) while leaving the passband unchanged. As a comparison note that regular tuning = passband shift and BFO tuning done simultaneously. The carrier frequency is displayed.
Passband parameters sticky across mode changes
Adjustments to the passband are unique to each mode and are remembered when the mode is changed. To restore the default passband settings for a mode hold a modifier key (e.g. shift, control or alt/option) before the mode button is pressed. A tooltip will appear reminding you the passband will be restored.
Keyboard & mouse shortcuts
Rounded frequency set (shift-click in waterfall or frequency scale)
Instead of being set to the waterfall frequency directly under the cursor, the frequency is set to the nearest rounded value that depends on the band and mode. In this way you only have to shift-click close by to the even frequency your signal is likely to be transmitting on. The value is 9 or 10 kHz in the LW or MW band depending on the setting of the 9/10 step button. 5 kHz in the SWBC bands and 1 kHz everywhere else.
SWBC database lookup (control-shift-click in waterfall)
The waterfall frequency under the cursor, rounded up or down to the nearest 5 kHz, is looked up on
and displayed in a new window/tab.
In the LW and MW bands the lookup is done using the
On the NDB band the
classaxe.com RWW database is used.
Utility database lookup (option/alt-shift-click in waterfall)
The waterfall frequency under the cursor, rounded down to the nearest 100 Hz, is looked up on
and displayed in a new window/tab.
Page down (control-click in waterfall or frequency scale)
Shifts the waterfall down in frequency. Same as control panel left-arrow icon.
Page up (option/alt-click in waterfall or frequency scale)
Shifts the waterfall up in frequency. Same as control panel right-arrow icon.
Mouse wheel zoom
The mouse wheel performs zooming.
Saved session parameters
The following parameters from the current session are saved in browser cookies and restored when you next connect:
9/10 kHz LW/MM band step button
Waterfall max/min sliders
Because browser cookies are stored independently for each website these parameters will be stored independently for each KiwiSDR you visit.
International Beacon Project (IBP) marker label updates
The labels displayed for the IBP signals on 14.100, 18.110, 21.150, 24.930 and 29.200 MHz automatically update every 10 seconds to show which world-wide beacon station is transmitting. The timing is taken from the KiwiSDR server and does not depend on the clock accuracy of your local computer that is running the browser. These beacon frequencies can be quickly selected under the beacon section of the select band menu. More information here about the
NCDXF/IARU IBP system.
DX/marker label editing
The DX/marker labels (whatever you want to call them) in the area above the frequency scale are editable by anyone who has admin access. Shift-clicking on a label will bring up a panel with the parameters you can edit. The admin password will be requested first if necessary. The Modify, Add and Delete buttons at the bottom make the changes. Using Add is how you can duplicate, starting with the information from an existing label, without changing the original label itself.
If you shift-click in a blank spot of the label area (i.e. not on top of a label) the panel is set with the current frequency and mode, type active but the other fields left blank for you to edit.
If you alt/option-shift-click on a label the type is toggled between active and watch-list. This shortcut is meant to be used to change a red label with type watch-list to active quickly as you confirm reception of a particular signal on this KiwiSDR.
URL tuning and other parameters
You can add parameters to the end of a Kiwi URL (web link). This is very handy especially with bookmarked URLs/links.
Use the "f=" parameter to tune to a specific frequency when connecting instead of the last value saved in browser cookies, e.g.
tune to 14200 kHz
7021.3 kHz and cw mode
19.2 kHz, cwn (narrow) and zoom (11)
1440 kHz, passband 12 kHz, am
4625 kHz, passband 300-3300 Hz, usb
pb 400 Hz center, current width
pb 400 Hz center, 100 Hz width
Passband is /width or /low,high,
or :pbc or :pbc,pbw all in Hz
Modes are: am, amn, lsb, usb, cw, cwn, nbfm, iq
Zoom is 0 (max-out) to 14 (max-in)
Use "ext=extension-name[,extension-parameters]" to start an extension immediately after connecting, e.g.
start WSPR extension on 40m band
The extension-name can be any unique part of the names shown in the extension menu on the main page, e.g. iq for iq_display.
The optional extension-parameters are specific to the extension.
For WSPR the possible values are the bands: lf, mf, 160m, 80m_JA, 80m, 60m, 60m_EU, 40m, 30m, 20m, 17m, 15m, 12m and 10m
Use mute to initially mute the audio when connected, e.g.
start WSPR extension with audio muted
To open multiple connections to multiple windows/tabs with a single link/bookmark use the
winN notation, e.g.
This opens 3 windows or tabs (depending on your browser configuration) with a muted 40m WSPR in the first, 10 MHz time station in the second and the S-meter extension running in the third using the last stored frequency/mode settings.
Frequency URL link
To the left of the six +/- frequency step buttons is a green URL link icon. The intent is to provide a link you can copy and, for example, email to someone. That will allow them to tune to the same frequency, mode and zoom as what you are currently listening to. While hovering over the link right-click to bring up a menu from your browser and then select Copy Link (depends on your browser).
How do I know what IP address my Beagle is using?
section above for complete information.
Why can't I attach an HDMI monitor and USB keyboard to the Beagle?
Two reasons. The HDMI port, with a cable attached, is a significant source of interference to the SDR due to the fast edge rates of the signals. Ever wonder why there are 47 pF caps on the (non-differential) data lines going to the HDMI framer chip on the Beagle? Edge rate control. No doubt for sufficient emissions margin.
Second, by leaving the window system software off the Debian distribution on the micro-SD card, it installs on the Beagle in two minutes instead of twenty. For ordinary use you shouldn't have to make a terminal connection to the Beagle via SSH. You can just use the web-based configuration interface.
How can I protect the input against nearby transmitters and lightning-induced voltages?
There is a forum post about the issue of
How do I discover what KiwiSDRs are available for listening?
Andras Retzler, HA7ILM, creator of OpenWebRX on which our user interface is based, has kindly allowed KiwiSDRs to register themselves on his
site. Be sure to visit the section showing all receivers on a world map. The KiwiSDR admin
allows you to specify all the receiver details shown on the site.
Is there a list of all known bugs and feature requests?
Yes, please see the master
How will KiwiSDRs participate in distributed applications?
The exact mechanism used by an application that gathers data from many KiwiSDRs via custom code or FPGA changes is an open question. At the very least the configuration interface will allow an "opt-in" to whatever experiments are currently in progress. Your ideas are most welcome. Plenty of security implications too.
Why does the Kiwi interfere with my 2 meter radio reception?
This is a known issue that is being investigated. There is a workaround. Please see this
Why does the Kiwi stop working at my remote location that gets above 40 deg C?
We've had a report of the Kiwi shutting down when running at a remote location location where the internal building temperature exceeded 40 deg C (104 deg F). The problem stopped when there was a modest airflow applied to the Kiwi even without lowering the temperature of the building. This might also be an issue if you place the Kiwi in your own enclosure (e.g. a metal one) without cooling holes. But we have not investigated this.
How do I use the Dream app to receive DRM broadcasts using the Kiwi?
Digital radio broadcasts on shortwave using the
Digital Radio Mondiale (DRM) transmission format can now be received beginning with the Kiwi v1.140 release and using the external
Dream application. The new IQ mode button to the right of the NBFM button is used. In this demodulation mode IQ format data is sent on the stereo audio output of the browser. A "virtual audio cable (VAC)" program can then be used on the host computer to route the browser audio to the input of the Dream program.
You can find DRM transmissions in several ways. There is a
although some of the stations listed do not appear to be active.
You can also simply look on each HF broadcast band. A DRM transmission is easily distinguished in the waterfall from a regular AM signal due to the "flat" amplitude spectrum (see below RFI left vs HCJB right).
Use the select band menu to step through each broadcast band looking for DRM signals. Of course different bands will be active depending on the time-of-day at the particular Kiwi you are listening to. Use the
Kiwi day/night map to check conditions.
How do I recover from a corrupted software build?
If you think you might have a corrupted build of the software on the Beagle proceed as follows. Login over the network to the Beagle using the root account (there is no password). From a Linux machine use the SSH program, i.e. "ssh email@example.com". From Windows try PuTTY or something similar. Then type these commands on the Beagle:
cdp (change directory project) This changes to the build directory.
up (update) This should fetch the latest software from
rebuild it, install it and restart the server.
Is there an automatic software update mechanism?
Yes, the software checks for new versions on
and pulls updates from there.
You can configure whether you want: no updates, update manually or update automatically in the background. Some users operate on networks with update policy restrictions.
How does access protection of the admin webpage work?
Access control to the admin webpage and the SDR itself are handled on the Security tab of the admin webpage.
By default there is no admin password set which causes attempted admin access from outside the local subnet (i.e. from the Internet) to be ignored. So by default you don't have to change anything, or assign a password, to be protected. If you don't want access by other users on your local subnet then set an admin password. But pick a good password because it can be used by anyone who has access to the Kiwi, including Internet users, to gain access to the admin webpage.
If you are setting a password because you want to be able to administer the Kiwi from the Internet while, say, traveling, but you don't want the annoyance of having to give the password from your local subnet, then set the "Admin auto-login from local net even if password set?" option to yes. When you login with a password it is saved in a browser cookie, so this minimizes the number of times you must enter it.
FAQ Publicly-accessible KiwiSDRs
Can I limit access to my KiwiSDR when connected to the Internet?
Yes. There is a user password, separate from the admin password, used to control access to the main SDR webpage in case you want to limit access from Internet connections. You can also choose not to list your Kiwi on
sdr.hu although we encourage you to do so.
How much Internet upload bandwidth is used?
Short answer: 40k bytes/second (320k bits/sec), all 4 channels active.
The compressed audio takes 4.8k bytes/sec and compressed waterfall 12k at the current maximum frame rate (about 23 Hz). For 4 channels you might expect the total to be 68k (total multiplied by four) but it is only 40k bytes/sec because the waterfall slows down under the load of four simultaneous users.
What's the worst case daily and monthly bandwidth consumed?
Short answer: 3.5 GB/day, 105 GB/month, all 4 channels active 24/7.
This is simply the observed rate for all four channels active (40k bytes/sec) multiplied out to a daily and monthly value.
There are plans to add a control mechanism to limit bandwidth consumption for users with capped Internet plans (e.g. 30GB/month). This would be done by throttling the waterfall update rate and/or maximum number of users evenly throughout the month, perhaps by having daily consumption targets.
Why are there only 4 channels? Can this be increased?
Short answer: The digital downconversion (DDC) architecture used in the Kiwi only allows 4 channels of audio and waterfall before using up the resources of the FPGA and processing power of the Beagle. It's really an 8 channel DDC design since the waterfall is tunable independently of the audio.
We've all been spoiled somewhat by WebSDR. We're used to the idea that modest SDR hardware (Sockrocks etc.) can support a dozen or more simultaneous connections. But the architecture and resources of those systems is very different from the Kiwi. The Kiwi is designed to be a completely self-contained, wideband (0-30 MHz), low-cost SDR not requiring any sort of external PC. In all cases with WebSDR a large part of a PC runs the FFT-based signal processing code. And the bandwidth covered by every WebSDR is relatively small: usually just a single band limited by soundcard bandwidth. The sole exception is the wideband
Twente WebSDR which covers the same 0-30 MHz bandwidth as the Kiwi. But that system requires a very powerful PC with a c.a. US$1000 GPU card to process the multi-million point FFT required. It doesn't use a $39 BeagleBone Green. Sure, that system can support an astonishing 400+ simultaneous users, but you have to look at the tradeoffs. In exchange for full 0-30 MHz bandwidth on the Kiwi, at a relatively low cost, you only get 4 (8 really) DDC channels.
That said, it is possible more clever Beagle software and FPGA firmware could allow additional channels. This remains an area for future experimentation.
Why didn't you use a stacking-style header (cape) connector to the Beagle?
Short answer: signal integrity, cost.
You can always place the KiwiSDR as the outer board on a cape stack. Not using a stacking connector is a combination of factors.
Signal integrity: The SPI runs at 48 MHz. A stacking connector potentially allows a "T" of signals lines to be constructed if the KiwiSDR is in the middle of the stack. Signal reflections due to the unknown termination characteristics of the outer board could cause problems.
Cost: There is some additional cost for a stacking connector. It may seem small but every cost has been carefully considered to keep the overall board price low. Every user will end up paying for the stacking capability that few will use. It is also more difficult for the manufacturer to solder a stacking connector.
Will there be a Raspberry Pi version of the board?
It's a possibility, but there are so many other things to get done first. So this would be a low priority for us. You're talking about two host devices of similar low cost for an SDR that will likely just sit on a shelf someplace running 24/7. So there seems to be little advantage in offering support for multiple hosts. A second version of the KiwiSDR with different capabilities seems more interesting.
A huge amount of work went into the BeagleBone port. The host processing required is substantial and it appears the R-Pi 3 should be powerful enough. But there is no way of knowing without doing the complete port and seeing what happens. Similarly with the performance of the I/O link between the two boards. Then there is always the risk of an unacceptable amount of self-interference (i.e. EMI/RFI) from the R-Pi to the KiwiSDR. It should be possible to prototype using the existing BeagleBone board before committing to the design of an R-Pi PCB.
Why did you put a software-defined GPS on the board?
This is a frequent question. The short answer is that it hardly cost anything to do so. It's was almost cheaper to add the GPS front-end than upgrade the ADC XO, requiring some source of frequency correction, to a more expensive VCTCXO.
Also, having constructed a
prototype of Andrew Holme's
Homemade GPS Receiver
and having so much fun learning about the fundamentals of GPS signal processing, we wanted to offer a device you could purchase capable of running Andrew's code. There was room in our existing FPGA for the design and we ended up using parts of the GPS Verilog for the SDR (embedded processor, SPI interface).
Will running the GPS reveal my exact location?
No. The only place the high-resolution coordinates computed by the SD-GPS are displayed is on the GPS status tab of the admin webpage. So if access to the admin webpage is properly protected the GPS location will not be available. The locations shown on the main SDR webpage and on
sdr.hu are from other purely text parameters configured on the admin webpage. So they can be completely arbitrary and set to not reveal your exact location. In addition, sdr.hu dithers the locations shown on their map slightly to guarantee privacy.
When a GPS solution has been computed a button will appear on the sdr.hu tab of the admin page allowing the location field to be filled-in as a convenience. You can subsequently edit this field to obscure the exact position. But the dithering described above done by
sdr.hu will essentially do this for you.
On the GPS tab of the admin page what do all those entries mean?
The page is divided into two sections. The top has one line for each of the 12 channels of the GPS receiver. The bottom has overall status information.
Top channel display:
acq Shows which channel the acquisition process is working with.
PRN Satellite identifier (from the transmitted pseudo-random number sequence)
SNR Signal-to-noise-ratio at acquisition. Minimum of 16 to begin tracking.
gain Negative if RSSI > about 1500 and software attenuation needs to be applied.
hold How many bits in the current frame, out of 300, have been decoded.
wdog Watchdog that will timeout and free tracking channel if bits are not being decoded. Different timeout values depending on channel state.
err U = tracking loop unlocked. P = parity error. Momentary errors are not necessarily a bad thing.
subframe Colored when GPS subframe correctly received. Blinks grey when updated. Subframes 1-3 required for position solution.
novfl Number of holding register overflows (a debugging aid).
RSSI Relative Signal Strength Indicator. Above 250-350 means sat actually present. Above 1000 is an excellent signal.
Bottom status display:
acq Acquisition state: "yes" if acquiring new sats, "paused" if active SDR connections prevent acquisition of new sats due to CPU resource constraints.
tracking Number of sats tracked and appearing in one of the 12 GPS channel slots.
good Of the sats tracked then number of those that are considered good enough to compute a solution from (min 4 for a solution).
fixes Total number of GPS position and time fixes computed.
run How long the GPS has been running (H:M:S).
TTFF Time-To-First-Fix: how long it took to get the very first solution after startup.
UTC offset Difference in seconds between GPS time (no leap seconds) and UTC.
ADC clock The GPS-measured true frequency of the ADC clock (nom 66.666600 MHz) In parens after are the number of computed corrections.
lat, lon GPS-computed latitude and longitude in decimal degrees.
alt GPS-computed altitude in meters. This value varies and is not accurate.
map Link to a map showning the GPS-computed location.
Why does the acquisition (acq) state sometimes say "paused"?
The GPS process of searching (acquiring) new satellites is stopped when there are active SDR connections on the Kiwi. Existing sats will continue to be tracked (and timing solutions calculated) until they eventually drift out-of-range. This is because the acquisition process uses an expensive FFT which cannot run simultaneously when there are multiple SDR connections. The Beagle doesn't have enough CPU to do all this work and still meet the realtime deadlines.
Why doesn't the GPS seem very sensitive?
To help meet the Kiwi price targets a very modest "puck"-style GPS active antenna with a short, but lossy, RG174 coax cable was used. The antenna works okay when placed outdoors with a clear view of the sky. But this is often difficult given the short 3 meter cable. Also, the open source software is not as sophisticated as modern commercial GPS receivers which have had years of software optimization to improve performance.
The Ethernet cable can be up to 100m long, so consider placing the Kiwi itself in a location where the 3m GPS cable will reach. Or see below for suggestions about how to extend the GPS cable.
I need to use a longer antenna cable. What to do?
Extending the GPS cable must be done carefully so as not to increase the cable losses and reduce sensitivity even further. Do not extend the supplied antenna with additional RG174 coax as it has -1.5 dB/m loss at the GPS frequency (-4.5 dB for an additional 3m!) Instead use a length of lower loss cable: a short length of RG58, RG8 or LMR400.
When the combination of the puck antenna and cable type/length restrictions doesn't give a sufficient signal at the Kiwi GPS input it may be necessary to use another antenna with better performance. See these excellent GPS antenna/cabling recommendations from FEL. An example of a better antenna (with N connector for RG8/LMR400) from Ebay.