Category Archives: Tutorials

Tutorial and How-to posts.

Flmsg Forms Rendered as Web Pages

You can spice up your Flmsg forms and make them look like web pages!  The option in Fldigi to open a received form in the web browser is an option frequently enabled.  It allows the entire form to be displayed or printed from the browser.  In order for the browser to render the form, HTML code is generated.

Many don’t realize that ANY web coding language included in the form is rendered by the browser: HTML, CSS, JavaScript.  This means background colors can be changed, hyperlinks included, images displayed, audio or video files played, redirected to websites or YouTube videos, etc.

Standard disclaimer, this is not a good idea during a real NBEMS event for many of the reasons mentioned below.

Things to keep in mind:

  • The message sender has to be knowledgeable in programming or use W3Schools to learn web programming languages.
  • For the HTML to be rendered, receiving stations must have the “Open in browser” set in Fldigi (as described here in NBEMS settings).  The Flmsg window on the receiving end will look like gibberish (code).
  • Website contents, audio or video file contents are not being sent over or using Flmsg.  They are being linked to over the Internet.   This means any links or URLs included but be accessible on the public Internet (not a private internal intranet where receiving stations may not be on the same network).
  • Not every receiving station may be connected to the Internet.  They could be in a location without Internet access or because they’re in a temporary/portable situation.

I’m not going to even begin to scratch the surface on everything that can be included so use W3Schools for ideas.   A couple simple examples:

Turn the page background light-blue:

<style>
body {
background: #3399ff; /* light blue */
}
</style>

Include a link to my website:

<a href="http://www.k8jtk.org/">Link to K8JTK.org, a totally awesome website with lots of Ham Radio tutorials!</a>

Include my mug (picture):

<img src="https://www.jeffreykopcak.com/wp-content/uploads/2015/09/DSCF5081-K8JTK-300x284.jpg" width="300" height="284" />

To view or test code as a receiving station might see it, in Flmsg click File.

Select View.

Click Html delivery.

One of my favorites is the redirect to a web page.  When received, the web browser will direct their web browser to load a website.

I say this is my favorite because there is a story behind it.  Every sound card digital training class I present or article I write, I preach DO NOT SET YOUR SOUND INTERFACE TO YOUR RADIO AS DEFAULT!!! as instructed.  One reason is noted in that post.  One day, I decided to see who followed instructions.  I sent an Flmsg with a redirect to a YouTube trailer video.  Once the video loaded, one ham (who will remain nameless) started transmitting the trailer video over the air (which included music).  Don’t be that guy.

<meta http-equiv="refresh" content="0;url=http://wcarc.bgsu.edu/" />

To wait a specified number of sections, change 0 to that number of seconds.  0 means immediately load the included URL.

Web site loaded in the browser.

Recovering a Partially Received Flmsg Message

We’ve all been there.  Part of a Flmsg message was missed because the receiving station was off frequency, in the wrong mode, or not paying attention.  The issue is corrected and most of the message is received.  However, Fldigi doesn’t know what to do with the form because most of the headers are missing – meaning it won’t open in the browser or Flmsg.

I will demonstrate how I recover Flmsg messages that I’ve partially missed.  How much of the message can be decoded depends on how long it took to rectify the situation while the other station was transmitting.  The sooner, the better.

The key is to start decoding the message before the form/message type is transmitted.  This is transmitted fairly early on.

NOTE: re-transmitting incomplete forms in a real event is NOT acceptable!  That is, this (or similar) procedure is used to recover a message, then that message is transmitted in a real event.  Ask for a re-transmit, if possible.

Check out my other Fldigi and Flmsg posts.

Example message

Example plaintext form message used for this tutorial:

The entirety of the message as transmitted through Fldigi:

... start
[WRAP:beg][WRAP:lf][WRAP:fn K8JTK_Recovering_a_partially_missed_Flmsg.p2s]<flmsg>4.0.1
:hdr_fm:21
K8JTK 20172603194239
:hdr_ed:21
K8JTK 20172603172413
<plaintext>
:tt:19 Flmsg recovery demo
:to:24 Digital Net Participants
:fm:5 K8JTK
:dt:10 2017-03-25
:tm:5 1612L
:sb:35 Recovering a partially missed Flmsg
:mg:491 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed tempor mi lectus, at ultrices leo suscipit et. In
aliquet semper pulvinar. Phasellus consequat nisi at orci feugiat euismod ac vitae magna. Proin a nisl est. Sed dignissim
faucibus sagittis. Proin a ornare mauris. Maecenas efficitur ante eu mauris tempus congue. Pellentesque at nulla purus.
Morbi nec pharetra nulla, at bibendum lorem. Donec et libero non ex ultricies porta. Aliquam quis mauris aliquet mi
efficitur ullamcorper.
[WRAP:chksum 780E][WRAP:end]
... end

In this message the form type is <plaintext>.  Everything before that tag could be missed and the message will still open in Flmsg using this process.

Recovering the form

In the Fldigi receive pane, part of the message was lost.  Note that <plaintext> form type is still received.

When the transmission is complete, Fldigi won’t open Flmsg or open the message in the web browser because not all headers were received.

Right-click in the receive pane.

Click Select All.  This will highlight the entire contents of the receive pane.

Right-click again and click Copy.  This will copy the entire contents of the receive pane to the clipboard.

Open a plaintext text editor like Notepad, Notepad++, Vim, or Nano.  Do not use Microsoft Word or LibreOffice Writer.

Right-click in the text document and select Paste.

Remove any other unnecessary text or other messages that are not part of the intended message.  In this case, the lines about ‘reading macros’ are removed.

Save the message someplace easy to remember like the Documents folder or Desktop.  I’ll put them in the same directory as messages extracted from Fldigi: C:\Users\USERNAME\NBEMS.files\WRAP\recv.

Enter a File name.

Leave the extension as “.txt

Click Save.

Open Flmsg.

Click File.

Click Open.

Navigate to the location where the file was saved from the text editor.

Next to the file name box, select All Files.

Click the file name.

Click Open.

The recovered message is open in Flmsg!

If the form type was missed, a message will indicate an error in the data file (see Failed to Receive Form Type below).

To open the Flmsg form in the browser, in Flmsg click File.

Select View.

Click Html delivery.

Failed to Receive Form Type

If the message type was not received, there are still ways to recover the message but the form type must be obtained.  This usually means asking the transmitting station for the form type they sent.

Using our previous message example, paste and clean up the text in the editor as described above.

Notice that <plaintext> tag is not seen.

Above the first line, insert the form type tag for the message.  In this case <plaintext>.  Other common form types:
<blankform>
<csvform>
<ics213>
<plaintext>
<radiogram>



Save the message and open in Flmsg as described above.

Notes:

  • Missing data shows up as blank fields in the Flmsg form – including those parts of the form where the field prefixes are missing (“fm,” “tm,” “sb,” or “mg,” etc.).  In the Plaintext form, if the message prefix is missing, since it’s one of the last prefixes transmitted the entire form will appear blank.
  • If the wrong form type is inserted (<plaintext> when it should have been <radiogram>), the file will open in Flmsg but the fields will not be populated.  The field prefixes are generally not the same from form-to-form.

APRS RX IGate with RTL-SDR and Raspberry Pi

For sometime I wanted to experiment with an APRS IGate. Coverage was spotty at best in my area. There is an IGate in my city but it doesn’t receive so well. Recently there have been more IGates blanketing the area.

APRS stands for Automatic Packet Reporting System and has been developed since the late 1980s by Bob Bruninga – WB4APR. It’s a digital communication mode amateur radio operators use to primarily broadcast location information, though this wasn’t the intended use. It handles text messages, alerts, announcements, bulletins, and information of interest like weather station reports. APRS operates typically on a single frequency.  A system of relay stations and digipeaters repeat messages over a wide area. APRS Internet System (APRS-IS) are Internet connected receivers (IGates).

Any ham can add an icon or information to the APRS map.  The information is available on the Internet or to users on the local RF network.  Data is automatically tracked over time. APRS is frequently used to track mobile stations in a public service event or volunteers in a search and rescue event to visualize locations and track progress.

This project will utilize the Raspberry Pi and RTL-SDR dongle. The Raspberry Pi is a credit-card sized micro-computer intended for teaching computer science to students but became popular with the makers. RTL-SDR dongles are DVB-T (European standard) TV tuner dongles. It was found the signal data could be accessed directly which allowed them to be converted into wide band software defined radio receivers. The Pi costs about $35 and RTL-SDR about $20.

Since the RTL-SDR dongles are meant to receive high power wide bandwidth TV signals, they are not as a sensitive or frequency stable as a ham radio or scanner. Receiver performance will be a little less than an equivalent radio performing the same task but depends on the usual variables: amount of APRS activity, antenna height, antenna gain, propagation, etc, etc. With my antenna about 15 feet high, I get about 5+ miles of coverage. With band openings I’ve heard stations on the opposite side of town and across Lake Erie into Canada.

Even though this IGate will be non-transmitting (cannot relay packets from the Internet), packets are forwarded to APRS-IS. The higher profile – higher power Digitpeaters in the area will relay packets received by your IGate to the local RF network.

Assumptions

This guide is step-by-step in nature, meant for beginners, with brief explanations of the steps. It will help to have an understanding of Linux commands and scripting. Capitalization is important in Linux!

My setup is on my home LAN. The IGate could be installed at a remote site using a shared Internet connection. Be aware that firewalls that might block connection to the APRS-IS network on a shared connection. You may want to request or have port 22 open on your router for SSH to establish a remote connection.

If all wired options fall through, look for a cellular hotspot device such as a MiFi to install along with the Pi. Use the built in WiFi on the Pi 3 or approved WiFi dongles for earlier Pi devices. Associate the MiFi with your Pi (turning on WPA2 so no one else piggybacks on your connection). Test the setup before installing it. Don’t find out after leaving the site that the MiFi times out after a few hours.

Program versions

Applications and versions used in this writeup:

  • Windows 10 64 bit
  • Raspbian Jessie 2016-05-27
  • Win32 Disk Imager 0.9.5
  • PuTTY 0.67
  • SDR Sharp 1.0.0.1444
  • RTL-SDR 0.5.3
  • Multimon-NG ?
  • Pymultimonaprs 1.3.0

Parts list

Listed below are all the parts needed to get this project working. It is noted when items can be left out or substituted.

That’s all the parts needed for this project. Check out the AdaFruit Raspberry Pi page for other hardware that might be useful, like the USB to PS/2 adapter for example. Many of these parts are included in the Raspberry Pi Starter Pack.

Use Soundcard Oscilloscope to understand DSP features of an HF radio

As I continue to use Soundcard Oscilloscope in the shack, I find new uses for it.  In a previous post, I showed how to use it to calibrate receive levels for Ham Radio digital modes.  I’ve used Soundcard Oscilloscope to understand DSP (Digital Signal Processing) features of my radio.  I have an ICOM IC-7000 which doesn’t have any of the features the newer/larger radios: waterfall display, frequency display, or oscilloscope.  As a substitute, I’ll fire up Soundcard Oscilloscope to set filters eliminating loud adjacent stations or set a manual notch filter for annoying stations that tune up on frequency.

Soundcard Oscilloscope is a program that emulates an oscilloscope from signal data received from a sound card. It also has a frequency graph which will be used for this tutorial.

Station setup

  • HF Radio and antenna.
  • SignaLink USB and correct cable for your radio (pictures).  Any audio interface will work or even 1/8″ male-to-male audio cable between the audio out of the radio and Line-in on any regular sound card.
  • PC computer where the radio interface is connected.

Program versions

  • Windows 7 – 64 bit
  • Soundcard Oscilloscope 1.46

Download and Installation

This will install Soundcard Oscilloscope on your PC.

hf_dsp_features-01_install-01_soundcard_oscilloscope_website

Go to https://www.zeitnitz.eu/scope_en.

Click the link to “Download the latest version.” Save it in your Downloads folder.

hf_dsp_features-01_install-02_installer-01

Launch the installer.

Click Yes.

hf_dsp_features-01_install-03_installer-02

Click Next.

hf_dsp_features-01_install-04_installer-03

Click Next.

hf_dsp_features-01_install-05_installer-04

Click Next.

hf_dsp_features-01_install-06_installer-05

Installation will begin.

hf_dsp_features-01_install-07_installer-06

Click OK.

hf_dsp_features-01_install-08_installer-07

Click Finish.

Soundcard Oscilloscope is now installed.

Configuration

This will setup Soundcard Oscilloscope to capture audio coming from your audio interface device.

hf_dsp_features-02_configuration-01_language

Start Soundcard Oscilloscope by clicking the Start orb.

Click All Programs.

Click Scope.

Click Scope.

The first time the program is run, you’ll be prompted to select a language. Select your language and click Continue.

hf_dsp_features-02_configuration-02_license

The program is not free and will ask for a License key. Not entering a license will display this screen each time the program is started. The program is less than $12.50 US. Please support the developers by purchasing a license. This is made at the download site by clicking the “private donation license” link.

Click Continue if you don’t have a license.

hf_dsp_features-02_configuration-03_audio_interface_selection

Click the Settings tab.

Under Windows Sound Parameters, Audio Devices, Input is where you select the audio interface device. For SignaLink USB, this would be Microphone USB Audio Codec. Other interfaces: Line In, or Mic In would be selected appropriately and known from my audio interface setup tutorial.

Soundcard Oscilloscope is now configured.

Loud adjacent station

An example using notch functions and filters to remove a loud and stronger adjacent station.

hf_dsp_features-ration-03_loud_adjacent_station-01_settings

Click the Frequency tab.

These settings will need to be reset after restarting the program. At this point, my radio is off but it doesn’t matter.

Along the bottom is the Frequency graph, click about 1500 Hz (1.5 kHz) on the graph.

Slide the Zoom control over about 5 ticks so that the frequency graph now shows 3000 Hz (3 kHz) near the right edge.

I unchecked Auto-scale.  This is not required and only keeps the vertical graph at the same scale for this tutorial.

Turn on the radio if it is not already.

hf_dsp_features-ration-03_loud_adjacent_station-02_loud_station_2500-3200

Between 2500 Hz and 3200 Hz is a strong adjacent station to the frequency I’m trying to work.  The station is really coming in between 2100 Hz and 3200 Hz as we’ll see in a moment.

hf_dsp_features-ration-03_loud_adjacent_station-03_manual_notch_function

I try a Notch Filter (Manual Notch Function – MNF) to notch out the signal.  The wide setting it not enough to get rid of the signal.  The signal is still peaking between 1750 Hz and 3200 Hz.  You can see the notch between 2750 Hz and 2900 Hz.  I tried adding in the 2nd notch filter and it didn’t fully notch out the entire signal.

hf_dsp_features-ration-03_loud_adjacent_station-04_manual_notch_function_radio

Notch filter settings on the 7000 radio.

hf_dsp_features-ration-03_loud_adjacent_station-05_filter

I am able to knock out the loud adjacent station by choosing a narrower filter and using pass band tuning to shift the filter.

hf_dsp_features-ration-03_loud_adjacent_station-06_filter_radio

Turn off the Notch Function.  Selected a filter bandwidth of 1.8 kHz (FIL) (SSB-3 default on the 7000 is 1.8 kHz).  I used pass band tuning (PBT) to shift both edges of the filter to the left (on screen).  In this case the Shift Frequency was -650 narrowing the bandwidth to 1.7 kHz.  The filter shape was SHARP.

These settings eliminated the adjacent station as shown in the previous image.  Everything higher than 2000 Hz is completely gone.

Calibrate Receive Audio for Ham Radio Soundcard Digital Modes

This tutorial will show to determine an optimal Receive Volume (RX) level on your audio interface for operating (or only receiving) digital modes.  My tutorial showing how to setup your audio interface in Windows is the starting point for this tutorial.  Please review it, specifically the “Recording” settings as this tutorial builds upon it including having an existing audio interface setup.

The audio level from the radio into the audio interface is typically a fixed level.  Once the audio enters the audio interface, the level sent to the computer is adjustable by the RX or Receive Level controls.  This tutorial will help determine the optimal setting for the RX level.

Soundcard Oscilloscope is a program that emulates an oscilloscope from signal data received from a sound card.  The radio will need to monitor active digital transmissions.  Tuning to HF frequencies where PSK31 (7.070/14.070), JT65 (7.076/14.076), or RTTY (7.080-7.125/14.080-14.100) transmissions can be observed are great places.  The 40 and 20 meter frequencies for those are listed as those bands are more active.

This tutorial can help set the transmit level of another station by observing or monitoring their transmissions.  Do this only after you’ve calibrated your receive audio and spent a good amount of time operating with no audio issues of your own.  Use a quiet simplex frequency both can hear the other station.  This way adjustments will not be effected by other stations on the same sideband frequency.  FM won’t matter because only one station can occupy the frequency at a time.

A similar tutorial appeared in QST recently.  They beat me to it, lol!

Program versions

  • Windows 7 – 64 bit
  • Soundcard Oscilloscope 1.46

Download and Installation

This will install Soundcard Oscilloscope on your PC.

receive_level_calibration-01_install-01_soundcard_oscilloscope_website

Go to https://www.zeitnitz.eu/scope_en.

Click the link to “Download the latest version.”  Save it in your Downloads folder.

receive_level_calibration-01_install-02_installer-01

Launch the installer.

Click Yes.

receive_level_calibration-01_install-03_installer-02

Click Next.

receive_level_calibration-01_install-04_installer-03

Click Next.

receive_level_calibration-01_install-05_installer-04

Click Next.

receive_level_calibration-01_install-06_installer-05

Installation will begin.

receive_level_calibration-01_install-07_installer-06

Click OK.

receive_level_calibration-01_install-08_installer-07

Click Finish.

Soundcard Oscilloscope is now installed.

Configuration

This will setup Soundcard Oscilloscope to capture audio coming from your audio interface device.

receive_level_calibration-02_configuration-01_language

Start Soundcard Oscilloscope by clicking the Start orb.

Click All Programs.

Click Scope.

Click Scope.

The first time the program is run, you’ll be prompted to select a language.  Select your language and click Continue.

receive_level_calibration-02_configuration-02_license

The program is not free and will ask for a License key.  Not entering a license will display this screen each time the program is started.  The program is less than $12.50 US.  Please support the developers by purchasing a license.  This is made at the download site by clicking the “private donation license” link.

Click Continue if you don’t have a license.

receive_level_calibration-02_configuration-03_audio_interface_selection

Click the Settings tab.

Under Windows Sound Parameters, Audio Devices, Input is where you select the audio interface device.  For SignaLink USB, this would be Microphone USB Audio Codec.  Other interfaces: Line In, or Mic In would be selected appropriately and known from my audio interface setup tutorial.

Soundcard Oscilloscope is now configured.

Setting receive level audio

These screenshots will help determine optimal audio RX setting for receive audio.  It is important to leave the audio level settings alone in Windows.  These settings were shown in my audio interface setup tutorial.  Adjust the settings in Windows ONLY when where is not enough audio when RX level is at the maximum setting or there is too much audio with RX set to the lowest setting.

receive_level_calibration-03_calibration-01_settings

Click the Oscilloscope tab if you are not there already.

These settings will need to be reset after restarting the program.  At this point, my radio is off but it doesn’t matter.

Set the Amplitude to 250mv.

Set Time to 10ms or less.

Turn on the radio if it is not already.

Examples

Adjust the RX level until there are no peaks with flat-tops on the oscilloscope.  Flat-tops indicate the audio level is too high and digital programs will have a hard time decoding the signal.  These examples were taking monitoring PSK31 on 20 meters.

receive_level_calibration-03_calibration-02_best_example

This is the best example.  No flat-top peaks.  Peaks appear about two divisions from the center line.  There is plenty of headroom for louder signals.  My RX setting was about the 10 o’clock tick-mark on my SignaLink.

Anything lower than two divisions will still work.  There maybe issues pulling out weaker stations.

receive_level_calibration-03_calibration-03_ok_example

Here is a good example but I would not be comfortable with this audio level.  The peaks do not have flat-tops which is good.  However, the peaks are reaching well into the third division.  My RX setting was about the 11 o’clock tick-mark on my SignaLink.

receive_level_calibration-03_calibration-04_bad_example

This is an example of what the scope should not look like.  Peaks have flat-tops at the fourth division.  The audio level is too high into the computer and RX volume needs to be dialed back.  My RX setting was about the 1 o’clock tick-mark on my SignaLink.

When optimal level is reached, the audio interface receive audio level is calibrated!

Bridge a Remote Site Network with OpenVPN Access Server

Having access to your devices over the Internet is a requirement for any admin deploying a project. Instead of running to a remote site to administer devices (making changes, applying updates and patches), it’s easier to connect remotely and make changes. Remote access poses many issues and concerns.

Security

First and foremost is security. You always, always, ALWAYS want devices connected to the Internet behind a router with a built-in firewall (NAT router). A firewall filters traffic between two networks (your ISP and home for example) and will block attempts to connect to your internal (private) network.

Device manufacturers take security for granted. Little testing and auditing takes place because the analysis is expensive for throw-away devices. This is noted in many stories including Bug Exposes IP Cameras, Baby Monitors where simply clicking “OK” on the login dialog allowed access to the Internet connected video camera. It is trivial to find these devices on the Internet because of Shodan. Shodan is dubbed the “Internet of Things Search Engine.” If you’re not familiar, think of it as the Google for devices connected directly to the internet. These could be: web servers, printers, cameras, industrial machines, bitcoin mining… Putting devices behind a firewall minimizes the risk because anything trying to peer into the network would be blocked by the firewall.

This holds true for networks you don’t control (granted access on someone else’s network). Put your stuff behind a router/firewall so they can’t see your devices and you can’t be exploited by devices on the other network.

Port Forwarding is a popular technique to only allow traffic on a specific port to a device you specify in your firewall (router). This provides little security as it still allows a potentially vulnerable service to accept incoming connections from the Internet.

Choose a good router

Couple of tips for a good router:

  • You get what you pay for. Don’t opt for cheap.
  • Opt for ones that support third-party firmware like DD-WRT and Tomato or setup a dedicated computer running pfsense or Untangle. These have proven to be more secure than stock firmware in addition to offering a more complete feature set.
  • Stick with popular models as found on Amazon, Newegg, or other tech store. They’re more likely to be reliable, well updated models.
  • Look for ones that accept USB cellular modem dongles for installations that have no accessible network connection like a remote site.

Virtual Private Network

The preferred way to connect to a remote network is to use a VPN. A VPN connects to a private network securely over the Internet. It allows the user to exchange data, use services, and connect to devices as if they were directly connected to that network. An open-source project that implements VPN technologies security is OpenVPN. OpenVPN is an application that allows for secure point-to-point communication. There are many implementations of OpenVPN including using it in many third-party router firmware (mentioned above). OpenVPN Access Server is one of the many implementations and the one used for this project.

This project was inspired by Hak5 1921 – Access Internal Networks with Reverse VPN Connections. As an Amateur Radio operator into the newer computer and digital technologies, more devices are located at remote sites.

This setup consists of:

  1. A remote network behind a firewall where devices exist you want to access. This will be a Linux server on the remote network that will act as the gateway and persistently connected to the bridge. This could be a full desktop computer purposed for something else or Raspberry Pi. Also on the same network will be a Windows machine.
  2. An unsecure/unknown network, AKA the Internet.
  3. A private server that will act as the bridge between the remote network and a device you choose.
  4. A device in a separate location that will connect to the cloud server and will be able to access the remote network. I will use a Windows machine to act as a ‘home’ computer.

This setup works in nearly all cases because the only device receiving incoming connections is the bridge server in the cloud. Firewalls block incoming connections by default. Very few block connections originating inside the network out to the Internet (egress). If a device along the way filters by content, connection attempts will be blocked. Many corporate networks are doing this kind of filtering. Otherwise the traffic looks the same as secure web traffic on port 443. No port forwarding is used.

Hosting

I recommend using an infrastructure hosting provider for the bridge server. This can cost anywhere from $5-$15 per month. The device can be anywhere on the public Internet. It must accept multiple connections on different ports but only by a couple users at a time are needed. Minimal configuration is more than sufficient. Bandwidth, latency, and up-time of all points in this setup effect reliability. My personal recommendations for infrastructure hosting providers are: Rackspace and DigitalOcean.

IP addressing

All remote networks and the home user networks cannot overlap in address space. That is they need to be differently numbered. For example, typically home networks have addressing as 192.168.1.x. The remote site(s) can’t have the same numbering (192.168.1.x). It must be different. I suggest making the remote site different enough to not cause conflict with any home users’ networks. Remote sites as 192.168.25.x, 192.168.26.x, and 192.168.27.x would work fine when the home users’ networks is addressed 192.168.0.x, 192.168.1.x, 192.168.2.x, and so on (except 25-27). Similarly addressed networks create routing conflicts and the packets will not reach the correct network.

Downsides

Cost.

In addition to hosting, a downside to using OpenVPN Access Server is licensing. While OpenVPN is Open-Source Software and OpenVPN Access Server is free, the license allows for only two concurrent tunnel connections at any one time. This means the remote site counts as one connection and the home device the second. If a second person (third device) needed access to the remote network, they would get a message saying ‘Access Server has reached its concurrent connections limit.’ The first person would need to disconnect first before the second could connect otherwise current connections will begin to be booted. Additionally, connecting two or more remote sites and a home user is not possible without purchasing licenses or running an additional bridge server. Additional licenses can be purchased for “$9.60 License Fee Per Client Connection Per Year. Support & Updates included. 10 Client minimum purchase.” $96 per year.

An alternative to OpenVPN Access Server is to setup your own (roll your own) OpenVPN server which is free. I hope to do an OVPN server setup at some point in the future.

Assumptions

This guide is step-by-step in nature, meant for beginners, with brief explanations of the steps. It will help to have an understanding of Linux commands and scripting. Capitalization is important in Linux! Understanding of basic networking concepts including determining network prefixes and CIDR notation is also required.

Program versions

I used a Windows 7 64 bit PC for configuration (and Home PC). Applications and versions used in this writeup:

  • OpenVPN Access Server 2.0.24
  • Putty 0.67
  • Ubuntu 14.04 x64 (bridge and remote servers)
  • Filezilla 3.16.0

NBEMS/FLDIGI Sound Card Calibration

For a number of years, I recommended the checksr.exe program and pointed users to the pa-sitrep (dot) com website. Recently that site disappeared. Since I had a copy of both the program and the text, I am re-posting both. It is an excellent utility and has great value. Unfortunately it only is available for Windows.

I do not take any credit for the program or instructions. I updated the instructions with screenshots.

Check the Fldigi tag for my posts running it on the Raspberry Pi or how to use Fldigi.

If you’re concerned about downloading the exe, it was analyzed by VirusTotal and showed 0 detections. The hashes are below and the SHA256 can be compared against the VirusTotal link.

SHA1

396A6ADB43BC76CB48E72A532B2E2E8FE9834551

396a6adb43bc76cb48e72a532b2e2e8fe9834551

SHA256

EE8BA2B907CBCF2551899808ECF717BE61CA76971499CD9EF63F53413114F494

ee8ba2b907cbcf2551899808ecf717be61ca76971499cd9ef63f53413114f494


1) Download and save CheckSR.exe to your desktop. This is a small, standalone, application that consist of a single exe file. When you double click on it, once it’s saved to your desktop, it provides the capability of analyzing your sound card offsets and gives you the corrections in parts per million (ppm):

http://www.k8jtk.org/drive/ham_radio/digital_modes/checksr/CheckSR.exe

checksr-01-fldigi_audio_devices

2) Open NBEMS/FLDIGI, go to configure, defaults, sound card, audio devices tab and make sure you have the sound card you use for your interface properly selected from the capture and playback drop down choices. Then click the audio settings tab.

checksr-02-fldigi_audio_settings_native

3) Under the audio settings tab, you should see a sample rate drop down box for capture and playback. Under each drop down box, select the sample rate that has (native) listed after it and take note of this figure. Click save config, then click save. Close FLDIGI.

Note: the ‘capture’ sample rate is the only one that seems to have the ‘native’ designation. The playback and capture should be the same.

checksr-04-checksr_input_output_sample_rate

4) Going back to CheckSR, open the application (if it’s not already open, double click on the desktop icon now) and from the drop down boxes for sound card settings, Input and Output, choose the sound card you are using with FLDIGI. Next, select the sample rate from the drop down box in CheckSR for the sample rate that FLDIGI showed as “Native” then click start.

checksr-05-checksr_stop

5) Let the application run for about 15-20 minutes. You will notice that the numbers will progressively stabilize. After about 15-20 minutes, click stop then write down the resulting figures on input and output for the measurements in Hz and PPM. Keep this record.

checksr-06-fldigi_audio_devices_corrections

6) Open FLDIGI, go to configure, defaults, sound card and click on the audio settings tab. Enter the PPM figures for RX ppm (CheckSR ppm Input figure) and TX ppm (CheckSR ppm Output figure). If you had a figure that resulted in a minus from CheckSR, enter the PPM setting with the minus symbol followed directly by the figure with no space. Then click save config, then close.

Although this procedure does not seem to be necessary for MT63 2k long on FM, it is advisable that anyone using FLDIGI, regardless of modes used, should perform this procedure immediately following setup. Once these calibrations are applied to the software, no changes should ever have to be made again, unless you change your software to radio interface sound card.

Running Fldigi Flmsg and Flwrap on the Raspberry Pi 2

With the popularity of the Raspberry Pi and the growing need of NBEMS, I wondered if it was possible to run NBEMS programs on the Pi. This maybe of interest to those who want to make a Go Kit (box) with digital or a club wants to replace older computers in their operations center with more efficient devices.

Fldigi is the program used and developed for Narrow Band Emergency Messaging System, but it does so much more. It’s also the standard for many Ham Radio operators because of the number of modes the software will operate.

Fldigi stands for Fast Light Digital modem application created by W1HKJ (David Freese, Jr.) and associates. Flmsg is a forms manager with standardized forms like MARS, plaintext messages, Radiograms, Red Cross, and Weather report forms. Flwrap is a file encapsulation and compression tool allowing for reception of a file exactly like the original.

The Fldigi application is open source, public license software meaning it’s free and available for auditing. With the source code available for Linux, I wondered if it was possible to compile the application on the Raspberry Pi.

At first I had some problems with the project. After (wasting) alot of time on it, I had given up. Only to find out the power supply I had been using was the cause of the issues.

Requirements

Work with my SignaLink USB. As a standard with my projects, the Pi can administered through SSH and VNC if needed. On Windows, I use PuTTY and TightVNC.

Assumptions

This guide is step-by-step in nature, meant for beginners, with brief explanations of the steps. It will help to have an understanding of Linux commands and scripting. Capitalization is important in Linux!

Check my other posts for setup guides on using your radio interface (though written for Windows) and Fldigi, Flmsg, and Flwrap.

Program versions

Applications and versions used in this writeup:

  • Windows 7 64 bit
  • Raspbian Jessie 2015-09-24
  • Win32DiskImager 0.9.5
  • PuTTY 0.65
  • TightVNC 2.7.10 64 bit
  • Fldigi 3.23.04
  • Flmsg 2.0.12
  • Flwrap 1.3.4

Build times

I did a face off for build times between the later model Pi versions: B+, 2, and 3. Later iterations will be faster. The results are in the format of the Linux command time, which contrary to it’s name does not set the time. It gives statistics about this program run. They consist of the elapsed real time between invocation and termination, the user CPU time, and the system CPU time. Later versions than listed above were used in this face off: Raspbian Jessie 2016-05-27, Fldigi 3.23.10, Flmsg 3.0.0, Flwrap is the same at 1.3.4.

Raspberry Pi B+

Failed. Apparently there is an issue running the Make command for Fldigi with versions later than the ones I originally used in this writeup. By the error messages this is an internal g++ compiler error. Make does not fail on the Pi 2 and 3 which probably means it’s a hardware issue (out of memory).

The error is “Warning: partial line at end of file ignored” for dialogs/fldigi-confdialog.o.

Raspberry Pi 2

real 21m49.783s
user 72m9.970s
sys 2m39.290s

Raspberry Pi 3

real 12m50.129s
user 42m8.980s
sys 1m19.160s

Parts list

Listed below are all the parts needed to get this project working. It is noted when items can be left out or substituted.

That’s all the parts needed for this project. Check out the AdaFruit Raspberry Pi page for other hardware that might be useful, like the USB to PS/2 adapter for example. Many of these parts are included in the Raspberry Pi Starter Pack.

If the Pi is setup where there may not be Internet, want to consider purchasing a Real Time Clock (RTC) addon. The Pi will keep time after power has been removed. Of course the time would just have to be set each time.

Flmsg custom forms

In order for custom forms to be used in Flmsg, version 2.0.17 or later must be used. There was a bug in previous versions that didn’t allow the forms to be parsed correctly. In addition, another browser needs to be installed as the default is unable to connect to the webserver created by Flmsg. Thanks to Ken – W0KAH for determining this issue and getting it resolved with the program author.

Linux package installer

The version available from the package manager could be installed but that version is several revisions behind which won’t have the latest enhancements. Some repositories don’t have Flmsg and Flwrap which makes it hard for NBEMS operation.

sudo apt-get -y install fldigi

sudo apt-get -y install flmsg flwrap
If it doesn’t work, you’ll get a message like:

E: Unable to locate package flmsg

Getting Started with MMSSTV

Table of Contents

Introduction – page 1

Download and installation – page 2

Configuration – page 3

RX – page 4
-Logging

History – page 5
-Saving images

TX – page 6
-Modes
-Loading images
-Picture clipper
-Transmitting an image from s.pix
-Transmit loaded image

Template editing- page 7

Introduction

This document will demonstrate installation, setup, and basic use of MMSSTV. MMSSTV stands for Makoto Mori (JE3HHT, creator) Slow Scan TV. It has been the defacto standard SSTV application for many years.

This is written with the beginner in mind and many concepts outlined step-by-step. It will provide direction for further experimentation on your own or on the net and direction for troubleshooting.  For SignaLink and audio setup, visit the Radio Interface Setup post.

Prepared for The Lake Erie Amateur Radio Association’s Digital Net (http://www.leara.org/).

Program versions

Program versions used in this document.

Windows 7 – 64 bit
MMSSTV 1.13A – only available on the Windows platform.

Resources

http://en.wikipedia.org/wiki/Slow-scan_television – Wikipedia, history and current systems.

http://hamsoft.ca/pages/mmsstv.php – MMSSTV homepage, sample audio files (to route through the Windows audio system), and help files.

http://www.wb9kmw.com/WB9KMW/sstv_files/tutorial/SSTV_tutorial.pdf – SSTV for beginners. WB9KMW answered some questions with MMSSTV. I’ll plug his introduction. His website has a collection of HF SSTV receivers that can be used to check reception and propagation.

Calibration

Sound card calibration is important in SSTV.  See the “Sound card clock calibration” section in the “Radio Interface Setup – For getting started with Ham Radio Sound Card digital modes” document.  MMSSTV methods: http://www.wb9kmw.com/WB9KMW/sstv_files/tutorial/That_Pesky_Slant.pdf. I prefer this method: http://www.wb9kmw.com/WB9KMW/sstv_files/tutorial/That_Pesky_Slant_WWV_Alternative.pdf.

Getting Started with Fldigi – Including Flmsg and Flwrap

Updated: 03/26/2017

Table of Contents

Introduction – page 1

Download and installation – page 2
-All 3 programs

Configuration – page 3
-Fldigi
-Flmsg

Receiving
-Fldigi – page 4
-Flmsg – page 5
-Fmwrap – page 6

Transmitting
-Fldigi – page 7
-Flmsg – page 8
-Flwrap – page 9

Introduction

This document will show installation, setup, and basic use of Fldigi, Flmsg, and Flwrap. Fldigi stands for Fast Light Digital modem application created by W1HKJ (David Freese, Jr.) and associates. Flmsg is a forms manager with standardized forms like MARS, plaintext messages, Radiograms, Red Cross, and Weather report forms. Flwrap is a file encapsulation and compression tool allowing for reception of a file exactly like the original.

The Fldigi suite has many applications and can operate many, many different modes. For the list of modes, click the “Op Mode” menu in Fldigi. A quick description of the Fldigi suite from W1HKJ:

Fldigi – Digital modem program.
Flarq – AutomaticReQuest file transfer program (works with Fldigi).
Flamp – Amateur Multicast Protocol file transfer program.
Flwrap – File encapsulation for error free transfers over amateur radio.
Flmsg – Formatted message manager – 25 forms including Radiogram.
Flrig – Transceiver control program.
Flwkey – Winkeyer control program.
Fllog – Logbook program – works with Fldigi, Flwkey etal.
Flnet – Net management and database program.

The Digital Net typically operates Fldigi using NBEMS standard methods for VHF and UHF communication. NBEMS stands for Narrow Band Emergency Messaging System (or Software) (http://www.arrl.org/nbems). NBEMS VHF/UHF operating mode is MT63-2KL and Olivia 8/500 or 16/500 for HF operation. HF digital operation is considerably different than VHF/UHF FM digital. HF station operating tips are not covered however application usage is similar.

Flwrap is no longer considered part of NBEMS but is a useful program to send small files.  If only operating NBEMS, Flwrap can be omitted and ignored.

This is written with the beginner in mind and many concepts outlined step-by-step. It will provide direction for further experimentation on your own or on the net and direction for troubleshooting.  For SignaLink and audio setup, visit the Radio Interface Setup post.

Prepared for The Lake Erie Amateur Radio Association’s Digital Net (http://www.leara.org/).

Program versions

Program versions used in this document.

Windows 7 – 64 bit

Fldigi 3.23.21

Flmsg 4.0.1

Flwrap 1.3.4

Resources

http://www.w1hkj.com/beginners.html – Beginners guide to Fldigi.

http://www.w1hkj.com/FldigiHelp/index.html – Fldigi help.

http://www.w1hkj.com/flmsg-help/index.html – Flmsg help.

http://www.w1hkj.com/Flwrap/index.html – Flwrap help.

Calibration

Sound card calibration for some modes Fldigi supports is important; it is recommended regardless of mode. See the “Sound card clock calibration” section in the “Radio Interface Setup – For getting started with Ham Radio Sound Card digital modes” document. Fldigi method: http://www.k8jtk.org/2015/10/19/nbemsfldigi-sound-card-calibration/.