Before installing and using the OL-Master software, please read carefully:
The main purpose of this guide is to help you configuring for the first time your Olliter OL-Master software and the basic operations.
This guide may not fully cover every feature available on the software and it will be updated frequently.
An SDR transceiver requires a control device to work, the hardware of the transceiver is used to convert analog RF signals to an IQ stream that is sent to a software installed on the control device, where it is processed to extract an audio signal. When transmitting, the process is reversed. The hardware and software need to work together to receive and transmit signals using the SDR transceiver.
Some I/O are available on-board to interface with external accessories like microphones, headphones and Morse key or paddle.
A simplified schematic representation of the SDR device is shown below.
As any SDR device, one of the main components is the PC that is used to control the device, the same PC is also used to decode and process the raw digital stream of data to usable audio stream. This decode process requires some minimum software and hardware requirements that should be met.
The OL-Master application was developed for Microsoft Windows 10 or later. Virtualization of such operating systems is also supported, if the host machine is capable enough.
Note
Compatibility with Microsoft Windows 8.1 or previous versions of Microsoft Windows cannot be ensured due to lack of support for the latest .NET modules which was used to develop the application.
The operating system should be updated to the latest version and the .NET8 must be installed on the machine (latest update of the .NET8 can be downloaded from the Microsoft).
Depending on the system configuration, both the .NET8 SDK and .NET8 Runtime might be needed.
Some components of the software were written using highly optimized C++ code, this requires the latest version of the Microsoft Visual C++ Redistributable package to be installed and updated. The latest version of this package can be downloaded from the following URL:
As per the moment this manual was written, the latest available version is 14.40.33810.0.
Warning
OL-Master requires AVX2 instruction set which was introduced with the Haswell series of Intel® CPUs (4th generation Intel® Core i series), any CPU older than Intel® Core i5 4th generation cannot be used. For optimal performances, we highly recommend an Intel® Core i5 7th generation or later.
Recommended hardware setup is an 7th generation Intel® Core i5 or later, with at least 16GB of RAM and 2GB of available storage space
Tip
The disk and RAM usage may vary depending on additional features like recordings, cluster, EIBI, receiver bandwidth, number of receivers, and more.
Ethernet interface at 1Gbps on the control PC is mandatory if using more than one receiver window. Ethernet interface at 1Gbps is mandatory to configure the IP address of the device if connected directly to the control PC.
Warning
The transceiver does not accept any link speed slower than 1Gbps. Network devices running at 10/100Mbps are not supported and will not work.
An ethernet interface capable of 1Gbps is mandatory for the transceiver to communicate with the control device (PC), a properly configured ethernet switch with interfaces at 1Gbps is suggested to be used in between the SDR and the PC.
Please note, the transceiver does not support negotiating any speed lower than 1Gbps with the control device or the switch/router that is plugged into.
An ethernet cable CAT5 or superior is highly recommended to interface the SDR to the switch/router and the PC.
To ensure best performances, use high quality switch or router and cables, make sure the whole network from the SDR to the master PC is capable of continuously communicate at 1Gbps.
An internet connection is not required if not using external services (like clusters or EIBI).
The network connection diagram is available in the transceiver manual.
After buying an Olliter SDR, you should receive the setup file for OL-Master, this is the main application that controls the SDR and must be installed on the PC.
The OL-Master software is distributed in two separate files, one for the first installation and one for the update. The two files are:
OL-Master_First_Setup_[version].exe
: This is the main setup file that must be used to install the software for the first time. It will install all the required components and dependencies in additions to the basic configuration files (like band plans, memories, default settings, etc).
OL-Master_Update_[version].exe
: This is the update file that can be used to update the software to the latest version. It will only update the existing installation and will not install any additional components or dependencies.
The first install or update procedures are almost identical, the only difference is that the first install will install all the required components and dependencies, while the update will only update the existing installation.
Double click the executable to start the installer, administrative privileges are mandatory to install the software. Follow the on-screen instructions to proceed with the installation.
Please accept all software license agreements to proceed with the installation.
Optionally, tick the option to create a desktop shortcut for the software, this will create a shortcut on the desktop to quickly access the software. A start menu shortcut will be created automatically.
Once the setup is completed, users can choose to start the software immediately or to close the installer. The software can be started later from the start menu or from the desktop shortcut if created.
Setup or update procedure is now completed, before starting the software, please read carefully the next chapters.
There is currently no mechanism to automatically check for updates, the user must manually check for updates by visiting the Olliter website or by contacting the customer care team.
We are actively working to implement an automatic update check mechanism in the future. We apologize for the inconvenience and we appreciate your understanding.
Network communication to the device is performed using UDP protocol, a security system exception must be created for the software to work reliably.
Open the Windows firewall settings.
Select "Inbound connection rules" on the left menu.
Click on "New rule" on the right menu.
Select "Program" and click "next".
Click on "Browse" and navigate to C:/Program Files/Olliter/Ol-master.exe
Click on "Next"
Select "Allow connections" and click "Next".
Now select the kind of network that you are using, by default it should be "Private", if you are using a different kind of network, please select the option that best fits your configuration.
Insert any name you like and then click on "Complete".
All the following settings are accessed using the Setup menu of the OL-Master application, in OL-Master, click the Setup menu, then follow the subsequent instructions.
Settings are persisted using the Save or the Save and Close buttons.
In General > HW Config make sure the "Use static IP Address" option is enabled, then insert the IP address of the Olliter SDR that was configured.
This address is 192.168.1.111 by default, if it was manually changed following the above procedure, please input the new IP address that was configured.
Once the IP address has been configured and selected (using the radio button on the right), click Save and close the dialog box.
In General > Options, set the callsign and grid locator of the station.
If the user wants to enable the audio to be routed to the master PC, the following procedure is needed.
In Audio > Audio & Common VAC configure the Driver to MME, select the desired Input and Output devices, then select "Enable PC Speaker via common VAC".
The onboard speakers can be deactivated using the "Local speaker disable" option.
If a microphone is connected to the radio, the RX Only option can be checked to exclude audio transmission from the PC
The SDR is capable of receiving and displaying a wide area of the RF spectrum, the receiver span can be configured in General > HW Config > Sample Rate.
Warning
As the sample rate is increased, more system and network resources will be required by the software, please adjust the settings accordingly
The spectrum span that is rendered is roughly the 80% of the sample rate set in the settings menu, for example if 192000 samples per second are selected, the displayed spectrum will be roughly 180KHz.
Tip
The recommended sample rate is 192000 samples per second.
The refresh rate of the receivers windows can be adjusted in Display > General. The suggested value is between 10 and 20 frames per second.
Warning
Increasing the refresh rate can significantly impact the system load, if the system starts lagging or the UI starts behaving, reduce the "Main Display FPS" value
Once the device settings were configured by the user, the device can now be started using the PWR button, the spectrum should animate, and audio will start.
This chapter will cover the main settings of the OL-Master software, such as changing band, changing mode or interacting with the spectrum.
The transceiver can operate on all amateur bands of HF plus the 50MHz (6mt) band. The received band can be selected using the dedicated buttons.
There are multiple ways to tune the received frequency, the main ones are by panning the receiver spectrum or by selecting the frequency using the dedicated numeric input.
Different viewing modes can be selected for the receivers, each band will save the view setting that is restored every time the band is recalled.
The receiver spectrum can be interacted using the spectrum controls, these allows zooming, panning and setting the tune step.
The spectrum can be rendered to display the average or the peak mode.
All main operative modes are supported by the transceiver, this can be selected using the dedicated buttons.
Then, for each operating mode, the bandwidth can be adjusted as needed.
RX1 is located in the main window of the software, additional receivers can be enabled using the RX2, RX3 and RX4 buttons in the main window.
Warning
Using additional receivers may significantly impact the system load, if the system starts to lag, reduce the number of receivers, or reduce the sample rate.
The main and sub volumes, per each receiver can be configured using the Volume controls group.
Multiple software-based filters can be added to any receiver mode, these can significantly improve the reception of a given signal. Some filters are tuned to improve the voice quality, others to remove clicking, background noise or unwanted whistles. Filters can be enabled using the dedicated buttons.
Warning
Although the Olliter SDR has a recovery mode that can be enabled in case of major firmware failures, the firmware upgrade is a delicate process that requires some attention. Please read this chapter carefully before starting the procedure.
Upgrade of the firmware is performed using the OL-Master application with a dedicated menu.
Warning
Make sure to close all background apps and to have a reliable power source for both the PC and the transceiver before attempting a firmware upgrade.
Extract the ZIP file containing the firmware anywhere on the local PC to get the .hex file which contains the new firmware.
Warning
Extract the file on the local hard drive, do not use USB sticks, network drive or other unreliable locations that may create latency or issues.
Once the file is extracted you should see something like this:
Make sure the transceiver is ON and reachable on the local network, then open OL-Master and select the FW Maintenance menu. The SDR should be detected automatically by the software.
Using the Select button, navigate to the .hex file that was just extracted and select it.
Once the file is selected, click the Program button to start the upgrade procedure.
Warning
The upgrade procedure will take about a minute, please be patient.
At first, the software will erase the content of the FPGA, this is a monolithic task, so the software may look like it's frozen, please be patient and just wait for the process to complete. Once the erase task is completed, you should see the progress bar moving, and when it reaches 100%, the transceiver should be restarted automatically.
Warning
If the process hangs after some minutes, or if any error occurs, please contact our customer assistance to get further assistance.
Wait for the upgrade window to close automatically after a couple of seconds, then the process is complete, and the transceiver can be used as normal.
The OL-Master software can be configured to use external services like clusters or EIBI, these services require an internet connection to work.
The EIBI service is a database of shortwave broadcast stations, it can be used to tune the receiver to a specific station, or to display the station name and frequency on the receiver window.
Note
This chapter is a work in progress
The cluster service is a database of amateur radio stations, it can be used to tune the receiver to a specific station, or to display the station name and frequency on the receiver window.
Note
This chapter is a work in progress
The OL-Master software can be configured to send telemetry data to an MQTT broker, this data can be used to monitor the transceiver remotely, or to integrate the transceiver with other software.
Note
This chapter is a work in progress
MQTT settings are available in the Setup > COM > MQTT
menu of the OL-Master software.
The telemetry data that is sent to the MQTT broker is a JSON object that contains the following fields:
The telemetry data is sent to the MQTT broker at each interval as configured in the Setup menu of the OL-Master software.
The telemetry topic is receivers/get/[x]
where [x]
is the receiver number, starting from 1.
The telemetry data is read-only and cannot be used to control the transceiver.
{
"software_id": "SomeRandomSoftwareId",
"txpower": "0",
"monitor_vol": "0",
"band": "B10M",
"swr": "1",
"master_vol": "0.5",
"temperature": "29.4",
"current": "0.0",
"receiver_a": {
"active": "False",
"frequency": "28.500000",
"mode": "USB",
"filterlow": "300",
"filterhigh": "2700",
"volume": "0",
"squelch": "0",
"mox": "False",
"txvfo": "False",
"signal": "-109.2"
},
"receiver_b": {
"active": "False",
"frequency": "28.550000",
"mode": "USB",
"filterlow": "300",
"filterhigh": "2700",
"volume": "0",
"squelch": "0",
"mox": "False",
"txvfo": "False",
"signal": "-109.2"
}
}
The receiver commands are sent to the MQTT broker using the receivers/set/[x]
topic, where [x]
is the receiver number, starting from 1.
The JSON payload follows the same structure as the telemetry data, but some the fields are read-write and can be used to control the transceiver.
Topic: receivers/set/1
Payload:
{
"software_id": "AnyRandomSoftwareId",
"txpower": null,
"monitor_vol": null,
"band": "B30M",
"swr": null,
"master_vol": null,
"receiver_a": null,
"receiver_b": null
}
Topic: receivers/set/1
Payload:
{
"software_id": "AnyRandomSoftwareId",
"txpower": null,
"monitor_vol": null,
"band": "B30M",
"swr": null,
"master_vol": null,
"receiver_a": {
"active": "True",
"frequency": "10.100000",
"mode": "LSB",
"filterlow": "-2700",
"filterhigh": "-300",
"volume": "0",
"squelch": "0",
"mox": "False",
"txvfo": "False",
"signal": "-170.0"
},
"receiver_b": null
}
Frequency is in MHz.
The following commands can be sent to the MQTT broker to send quick commands to the transceiver.
The topic is receivers/command/[x]
where [x]
is the receiver number, starting from 1.
Supported commands:
enable
- Enable or disable the receivervolume
- Adjust the volume of the receivermox
- Toggle the MOXfrequency
- Adjust the frequency of the receivermode
- Adjust the mode of the receiverSupported actions:
toggle
- Toggle the command+
- Increase the value-
- Decrease the valueThe optional subreceiver
field can be set to true
to control the sub receiver.
The optional value
field can be set to the value to increase or decrease. If this parameter is empty, the default value for such command will be used (e.g: the tuning step of the frequency).
Topic: receivers/command/1
Payload:
{
"software_id": "AnyRandomSoftwareId",
"command": "enable",
"action": "toggle"
}
Topic: receivers/command/2
Payload:
{
"software_id": "AnyRandomSoftwareId",
"command": "volume",
"subreceiver": "false",
"action": "+",
"value": "15"
}
To increase the volume on the sub receiver, set the subreceiver
field to true
.
Topic: receivers/command/1
Payload:
{
"software_id": "AnyRandomSoftwareId",
"command": "mox",
"action": "toggle",
"subreceiver": "false"
}
Topic: receivers/command/1
Payload:
{
"software_id": "AnyRandomSoftwareId",
"command": "frequency",
"action": "+",
"value": "0.1",
"subreceiver": "true"
}
The frequency is in MHz, to decrease the frequency, set the action
field to -
.
Note
Requires OL-Master version 1.0.12.13 or later
Topic: receivers/command/3
Payload:
{
"software_id": "AnyRandomSoftwareId",
"command": "mode",
"action": "",
"value": "USB",
"subreceiver": ""
}
Allowed values: "LSB", "USB", "DSB", "CWL", "CWU", "AM", "SAM", "SAML", "SAMU", "DIGL", "DIGU", "FM5", "FM2", "FT"
Note
This chapter is a work in progress
The OL-Master software can be configured to send the audio and spectrum stream to a remote UDP server, this can be used to record the audio stream or to integrate the transceiver with other software.
Warning
The traffic is sent as unencrypted UDP packets, please make sure the network is secure before enabling this feature.
The spectrum stream is sent to the UDP server at each interval as configured in the Setup menu of the OL-Master software.
The following code is an example of how to receive the spectrum stream using a javascript application to render the spectrum on a canvas.
function initializePanadapterCanvas() {
window.addEventListener('resize', adjustCanvasSize);
adjustCanvasSize();
}
function adjustCanvasSize() {
const canvas = document.getElementById('panadapterCanvas');
if (canvas == null) {
return;
}
const width = window.innerWidth; // Set width to the width of the viewport
canvas.width = width; // Update the canvas width
// Optionally, you can set height dynamically or keep it fixed
canvas.height = 400; // Set height to a fixed value or adjust dynamically
}
window.drawPanadapter = (spectrumData, gridMin = -160, gridMax = 0) => {
const canvas = document.getElementById('panadapterCanvas');
if (canvas == null) {
return;
}
const ctx = canvas.getContext('2d');
const width = canvas.width;
const height = canvas.height;
const yRange = gridMax - gridMin;
ctx.clearRect(0, 0, width, height); // Clear canvas
const points = [];
const slope = spectrumData.length / width; // Adjust this as needed
for (let i = 0; i < width; i++) {
// Ensure dataIndex is within bounds
const dataIndex = Math.floor(i * slope);
const data = spectrumData[Math.min(dataIndex, spectrumData.length - 1)] || 0;
const yTemp = Math.ceil((gridMax - data) * height / yRange);
points.push({ x: i, y: Math.min(yTemp, height) });
}
// Draw fill polygon if needed
if (true) { // Adjust condition if necessary
ctx.fillStyle = 'rgba(185, 152, 106, 0.5)'; // Adjust color and opacity
points.push({ x: width, y: height }, { x: 0, y: height });
ctx.beginPath();
points.forEach((point, index) => {
if (index === 0) {
ctx.moveTo(point.x, point.y);
} else {
ctx.lineTo(point.x, point.y);
}
});
ctx.closePath();
ctx.fill();
}
// Draw the spectrum line
ctx.strokeStyle = '#FFFFFF'; // Line color
ctx.lineWidth = 2; // Line width
ctx.beginPath();
points.forEach((point, index) => {
if (index === 0) {
ctx.moveTo(point.x, point.y);
} else {
ctx.lineTo(point.x, point.y);
}
});
ctx.stroke();
ctx.strokeStyle = '#00000040';
ctx.rect(width / 2, 0, 1, height);
ctx.stroke();
};
The audio stream is sent to the UDP server as raw audio data, this can be used to record the audio stream or to integrate the transceiver with other software.
The following Python code is an example of how to receive the audio stream using the sounddevice
library.
import socket
import pyaudio
import numpy as np
# Configurazione UDP
UDP_IP = "127.0.0.1" # Ascolta su tutte le interfacce
UDP_PORT = 5000 # Porta UDP
BUFFER_SIZE = 1024 # Dimensione del pacchetto UDP
# Configurazione audio
FORMAT = pyaudio.paFloat32 # Supponendo che i dati siano float32
CHANNELS = 2 # Audio mono
RATE = 48000 # Frequenza di campionamento
# Configura PyAudio
p = pyaudio.PyAudio()
stream = p.open(format=FORMAT,
channels=CHANNELS,
rate=RATE,
output=True)
# Configura socket UDP
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.bind((UDP_IP, UDP_PORT))
print(f"Ricezione audio su {UDP_IP}:{UDP_PORT}...")
try:
while True:
data, addr = sock.recvfrom(BUFFER_SIZE)
# Decodifica i dati (supponendo double -> float)
audio_data = np.frombuffer(data, dtype=np.float64).astype(np.float32)
# Riproduci il buffer
stream.write(audio_data.tobytes())
except KeyboardInterrupt:
print("Terminato.")
finally:
stream.stop_stream()
stream.close()
p.terminate()
sock.close()
Please see: General recommendations
Please see: FAQ
Please see: Troubleshooting