WSL and DxlAPRS in Windows 10                                                                    

                                                                                                               
DxlAPRS is a free open source radiosonde decoder for Linux often used on Raspberry Pi´s because it requires little system load and is therefore ideal for receiving radiosondes.
Together with an RTL-SDR it is possible to receive radiosonde signals, and decode them using DxlAPRS and WSL in Windows.



This tutorial explains howto install WSL and DxlAPRS in Windows.
Because WSL does not support USB devices (SDR), this example (Windows 10 1909 VirtualBox WSL Debian) uses a connection through RTL_TCP from a local PC or remote Connection.
Prerequisite for Linux support is a 64-bit version of Windows 10 as of build 1709 for WSL.

Contents

Enable WSL


Enable Windows subsystem for Linux:



In Control Panel, under Programs => Windows Features, enable the Select Windows subsystem for Linux component.
For this action to take effect, you have to restart the computer.

Or press the key combination Windows + R.
In the Execute dialog type in OptionalFeatures and confirm with Enter.
Put a check mark in the small window for Windows Subsystem for Linux and click on OK and then on Restart Now.

Or enable thru PowerShell:



Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

Dxl Install


Download Debian_Dxl


Extract to C:/
Double click debian.exe in C:/Debian folder and Debian (install.tar.gz) will be installed.
 
Enter new UNIX username: w10
Enter new UNIX password: dxl
Retype new UNIX password: dxl
passwd: password updated successfully
Installation successful!

In terminal:
cd /mnt/c/Debian
sudo chmod 755 install
./install

- Debian (this image is orginal from the MS Store) will be updated to current with apt update && sudo apt upgrade.
- Dependencies will be installed for RTL-SDR-Driver (rtl_tcp), Mousepad (text editor),  xfce4-terminal, dialog and Pcmanfm Filemanager.
- DxlAPRS Install.

Close terminal, goto C:/Debian folder.

Copy folder rtl_tcp to host computer if no sdr is available in Virtual Machines.
Edit rtl_tcp.bat and change 127.0.0.1 to current in use ip adres of host with sdr device.
E.g. rtl_tcp -a 192.168.1.100 -d0 -g 49.6 -P 0



Run rtl_tcp.bat file, so the rtl_TCP Server is accessible for connections.

Click Edit-UserInfo.bat in Debian folder.
This will open pcmanfm FileManager in Debian with a x-server in DxlAPRS/Config Folder.

Edit user_info.txt and station_beacon.txt the Lat/Lon of your position.
Fill in the ip-adres from host pc with rtl_tcp.
Change your call, location ppm and gain value's.
Save and exit

Dxl Setup                                         


Start DxlAPRS with DxlAPRS Shortcut.
Give it Windows firewall Access, needed for local connections in Dxl.



Ignore this window with errors but do not close it!



Menu:



1: Enter a Frequency or choose a Wx-Station Frequency.



Or 3 edit SDR frequency List to custom (Remove # to make active):


4 Change rtl_tcp ip adres.



Dxl will start:
In running operational mode the first tab shows the DxlAPRS SDR-Config menu with a few options:



rtl_tcp Connected.



SDR-Config Tab:



Option 9: View Frequency Config.
During reception it's possible switching to another single or multiple Frequency or Custom Frequency list (Remove # to make active) without restarting.



View Userconfig.



Web-Interface accessible on 127.0.0.1:14501



APRS-Map


APRS-Map displays the current Radiosonde Position and your own position (off course a GPS-Mouse is required) in Maps.



Fill in a callsign with optional SSID and QTH Location from the Online Menu.
Zoom to your QTH as far as you can 100% identify your home (zoom level <16).

Then open ONLINE - MY POSITION and point to your home.
While push and hold the SHIFT key click on your home.
The coordinates will be copied into the MY POSITION field, Just click OK to save them.

Change start view:

Set the target area on the map.
Then click Zoom and with the Shift key pressed, left-click on this button:



The button is then called as the level (here: 11) and is used as a view at program start.
This view can also be called up with the "1" key.

In the same way, the three buttons on the right work next to it.
With Shift and click on the respective button the current view is saved, only the click (or the digit) calls up this view.

In response to these actions, there are brief messages at the top left. "View stored!" after saving and "Show One Symbol Off" after invoking a saved view.



Its possible to use other map sources, open and edit home/w10/dxlAPRS/bin/aprsmap/maplist insert:

tiles_osm           zxy     png        http://tile.openstreetmap.org OSM Carto (Standard)
tiles_topo          zxy      png        http://tile.opentopomap.org  OpenTopoMap
tiles_topo2        zxy      png        http://tile.memomaps.de/tilegen OpenTopoMap2
tiles_topplus      zyx      png        http://sgx.geodatenzentrum.de/wmts_topplus_open/tile/1.0.0/web/default/WEBMERCATOR TopPlusOpen
tiles_esrisat       zyx      jpg         http://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile  ArcGIS ESRI Satellite World Imagery
tiles_transport   zxy      png        http://tile.thunderforest.com/transport ?apikey=123  Thunderforest Transport (requires API key)
tiles_landscape zxy      png        http://tile.thunderforest.com/landscape ?apikey=123 Thunderforest Landscape (requires API key)
tiles_outdoors   zxy      png        http://tile.thunderforest.com/outdoors ?apikey=123 Thunderforest Outdoors (requires API key)
tiles_transport   zxy      png        http://tile.thunderforest.com/transport ?apikey=123 Thunderforest transport (requires API key)
tiles_mobile zxy png http://tile.thunderforest.com/mobile-atlas ?apikey=123 Thunderforest mobile (requires API key)
tiles_transport-dark zxy png http://tile.thunderforest.com/transport-dark ?apikey=123 Thunderforest transport-dark (requires API key)

This must be changed in home/w10/dxlAPRS/bin/aprsmap/aprsmap.cfg also:

Map Names|1|tiles_topo2 0.25 78
Map Names|1|tiles_mobile 0.25 73
Map Names|1|tiles_osm 0.25 65
Map Names|1|tiles_topo 0.25 71
Map Names|1|tiles_topplus 0.25 61
Map Names|1|tiles_esrisat 0.25 98
Map Names|1|tiles_landscape 0.25 69
Map Names|1|tiles_transport 0.25 62
Map Names|1|tiles_outdoors 0.25 75
Map Names|1|tiles_transport-dark 0.25 94

The Map listed on top will be the first one to show up.

For Thunderforest maps sign up free at their website to get api-key and insert it into the links above.
 

Maps can be selected in Tools / Choose Maps, and some adjustment options in Config / Brightness.

All Maps Tiles can be saved for Offline usage.


Note's:
Aprsmap has a setting that should not be used. Config, Map Parameter, Trackfilter - Leave it unchecked.!

More about the regular functions and options from APRS-Map read the Wiki:

http://wiki.oevsv.at/index.php?title=DXL_-_APRSmap_englisch


Refer for News, Tips and tricks about DXL-Toolchain Installation to:

https://sites.google.com/view/oe3jtb/tipps-und-tricks

https://sites.google.com/view/oe3jtb/aktuelles

GPS2APRS


Setup GPS:

Goto Debian\gps2aprs folder.

Edit GPS.bat

Make sure you have the right Port number and Baudrate which the GPS is connected to:
And replace this by the com4:4800 example.

gps2aprs.exe -t com4:4800 -I CAR -i /k -D -0 30 -b 2 -v -r 127.0.0.1:9002



Start GPS.bat and NMEA data from your local GPS-Mouse should roll in:

Goto APRS-Map Config / Rf-Ports Tab:



Check RF-Port 1 and make sure its UDP1(ip:send:listen)|1|127.0.0.1:9001:9002



The Car position should be Visible and every 30 Seconds updated in the map.

gps2aprs -h

 -t <tty>:<baud>            (com1:4800)
 -I <mycall>                   Mycall with SSID like NOCALL-15
 -D                                DAO Extension on for 20cm Resolution
 -b <s>                          Driving Beacon Time in Seconds (15)
 -r <x.x.x.x:destport>      Use AXUDP (to Soundmodem)
 -v                                  Verbous-Mode
 -i                                  Ballon /O, Car /> -i /k

ADB Android GPS USB with Virtual COM Ports


Download Com0Com x64 Program.

Install:



Make sure you have a virtual com port, otherwise change the number.



If everything is okay you have 2 new virtual COM ports in Windows Control Panel.



Download ADB Android SDK.

Ensure the USB drivers for your mobile are installed on the PC.
Ensure that USB debugging is enabled on the mobile device.

Download ShareGPSPlaystore or APK4FUN

In Share GPS, create a new connection for NMEA USB.
With port 7777.
Connect your phone to a computer with the USB data cable.

Goto folder Debian\gps2aprs.
Copy adb.bat into Downloaded ADB Android SDK.

Double click adb.bat
Ensure ADB detects the mobile.



The mobile may need to authorize access.
Check the phone screen.
You can close the adb screen.

Start the connection in Share GPS.



You should see USB listening in the status.

Download NmeaRouter

Install and select Configure/Profile/New
Name Profile Android USB
Configure/Connection/New



Ok.



Port: 7777 Like in ShareGPS.

Again Configure/Connection/New



Ok.



Select First Virtual Com Port, check Windows - Control Panel Devices.



Now we see this, but there is not Route between our local ip and the com port..

Select Configure/Route/New



Enable and Ok.



Click Start, You also see on the phone in ShareGPS, USB Connected.
GPS NMEA Data Rolling in :)

Repeat Steps overhere but make sure to select second virtual com port for GPS Output!

Start GPS.bat and DxlAPRS.



You should see your position after 30 seconds in APRS-Map.

Whenever done sending NMEA data, long press the connection in Share GPS and select Disconnect.
Kill ADB.exe in taskmanager, Stop Nmea-Router, Exit DxlAPRS in SDRcfg/Exit.

Android GPS WiFi with Virtual COM Ports


Download Com0Com x64 Program.

Install:



Make sure you have a virtual com port, otherwise change the number.



If everything is okay you have 2 new virtual COM ports in Windows Control Panel



Download Windows 7 GPS Sharing:  Playstore or APKPure



In Windows 7 GPS Sharing, Tap on Listing port change to port 7777.

Download NmeaRouter

Install and select Configure/Profile/New



Name Profile Android WiFi
Configure/Connection/New



Ok.



Port: 7777 and Ip adres of the Phone.

Again Configure/Connection/New



Ok.



Select First Virtual Com Port, check Windows - Control Panel Devices.

We need a route between the ip and com connection.
Select Configure/Route/New



Enable and Ok.



Click Start, You also see on the phone Client Connected.
GPS NMEA Data Rolling in :)

Repeat Steps overhere but make sure to select second virtual com port for GPS Output!

Start GPS.bat and DxlAPRS.



You should see your position after 30 seconds in APRS-Map.

Upgrade WSL Debian Stretch to Buster


Upgrade Windows 10 WSL Debian installation from Stretch to Buster.

sudo apt update && sudo apt upgrade -y

Upgrade the “master” sources.list:

sudo cp -a /etc/apt/sources.list /etc/apt/sources.list.stretch
sudo sed -i -e 's/stretch/buster/g' /etc/apt/sources.list

Upgrade the current packages, to prepare the system for the distribution upgrade:

sudo apt update && sudo apt upgrade -y

Upgrade the remaining packages to finish up the migration to Buster:

sudo apt dist-upgrade -y

Get rid of the unneeded packages:

sudo apt-get autoremove && sudo apt-get autoclean -y

You can then check the result with the following command:

cat /etc/debian_version

 

WSL Stuff


WSL Manager.



WSL Manager is a highly customizable Windows Subsystem for Linux distro manager for Windows 10 (at least 19H1).


wsl -l
List Installed Distro

wsl --unregister Debian
Unregisters the distribution from WSL so it can be reinstalled or cleaned up.

Export:
wsl --export Debian C:\Debian.tar

Import:

wsl --import <DistributionName> <InstallLocation> <FileName>.
wsl --import Debian C:\Debian C:\Debian.tar

Install Desktop


Install XFCE4 Desktop:



sudo apt install xfce4

Recommended is creating a batch file so that X410 and Xfce are automatically launched.
Here’s an example batch file, save in C:/Debian


REM ### Start X410 in Desktop Mode /wm window
start /B C:\Debian\X410\X410.exe /desktop
REM ### Start Linux GUI desktop
start C:\Debian\debian.exe run "if [ -z \"$(pidof xfce4-session)\" ]; then export DISPLAY=127.0.0.1:0.0; xfce4-session; pkill '(gpg|ssh)-agent'; taskkill.exe /IM x410.exe; fi;"

X410 is Automatically Closed after logging out.

DISPLAY environment variable
export DISPLAY=127.0.0.1:0.0

Allready set in .bashrc

Remove / Disable Screensaver
Xfce assumes it's running on a real machine hence it tries to enable power saving features such as screensaver those features interfere with the functions in Windows.
You can completely remove the screensaver by executing the following command:

sudo apt purge xscreensaver gnome-screensaver