HL2 Setup for remote operation

1,407 views
Skip to first unread message

Tom Moll

unread,
Jan 17, 2023, 2:23:23 PM1/17/23
to Hermes-Lite
Is there a step by step guide somewhere for setting up an HL2 for remote operation over WAN that a networking novice can understand?
Is some type of PC (Win or Rpi) required at the remote end, or can the HL2 connected to the remote router be directly accessed somehow?
What software is required / recommended?
I'd be happy initially to implement a receive only configuration, but eventually would like to operate in xcvr mode.
I assume some configuration of the remote router is required, so that detail would be most helpful.
TIA for any help that you can provide.
Tom

ron.ni...@gmail.com

unread,
Jan 17, 2023, 3:39:52 PM1/17/23
to Hermes-Lite
How to securely expose a network port to the public WAN would be very specific to your particular network access and provided router(s).
Since the HL2 can transmit, connecting it directly to a public WAN without a VPN or authenticating firewall is probably unsafe.
For receive-only use, I use a colocated Raspberry Pi running hl2_tcp (available on GitHub) to transcode the high bandwidth Protocol 1 UDP to a lower bandwidth TCP protocol.  hl2_tcp can be compiled to be usable for receive-only. So exposing a port to a receive-only build of hfp_tcp over the public internet might be considered safer.  Many people do this using rtl_tcp with their RTL-SDR and Airspy HF+ SDRs.  There multiple of SDR clients for RTL-SDR rtl_tcp. Any of those clients that can be configured with a sample rate compatible with the HL2 might be suitable for use with hl2_tcp.
73, Ron, n6ywu


"Christoph v. Wüllen"

unread,
Jan 18, 2023, 3:29:23 AM1/18/23
to Tom Moll, herme...@googlegroups.com
From what I have heard here, the most successful way for "remote" operation is to
have a computer directly at the radio, and use some sort of VNC sofware to get
that "screen" on your computer, and use some other software for audio transport
(but I may be wrong).

"Remote" means the radio is really remote, at the other end of the city or
even more.
> --
> You received this message because you are subscribed to the Google Groups "Hermes-Lite" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to hermes-lite...@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/hermes-lite/21e44977-0983-407a-accb-2c4dbb6e9e10n%40googlegroups.com.

Thomas Beiderwieden

unread,
Jan 18, 2023, 3:44:23 AM1/18/23
to Hermes-Lite
My setup is as Christoph has described. I am using SparkSDR on a Raspberry PI4 next to the HL2 (in the same LAN). Access from remote is via VNC, sound is done via Mumble. Works ok, however, do not expect to join the crowd in a cw pileup, the high latency has to be considered. Digi modes are perfect in this setup.

Access to the PI4 is via a VPN, so no ports exposed.

I have not managed to get SSB working. The sound arrives a the PI4, but for what reason ever, it can not be processed in SparkSDR.

Thomas, DL3EL

Niels Jalling

unread,
Jan 18, 2023, 4:53:34 AM1/18/23
to Hermes-Lite
My setup is: HL2 -> rpi4 (quisk_remote) -> lan -> lap-top (quisk_control)
Quisk runs on either windows or linux.
73 de oz9ny, niels

Karl Heinz Kremer

unread,
Jan 18, 2023, 7:03:07 AM1/18/23
to Niels Jalling, Hermes-Lite
That is exactly what I do. I use SparkSDR on my Mac, VNC to connect to the computer, a VPN on my router to connect securely into my home network and Mumble to transport audio back and forth. This does require some sort of “virtual audio cables” (I use Loopback on my Mac) to hook up Mumble to SparkSDR. I do have a NodeRed dashboard that allows be to monitor power and SWR after my HR50 amplifier and to control my antenna switch. But that is not a required component. VNC, VPN, virtual audio cables and Mumble should do the trick. 

Karl Heinz - K5KHK 

On Jan 18, 2023, at 4:53 AM, Niels Jalling <ni...@jalling.dk> wrote:



Charlie Rubenstein

unread,
Jan 18, 2023, 9:19:42 AM1/18/23
to Hermes-Lite
I compiled HL2_TCP, and when I connect to the pi, in the terminal window I can see it connects and receives the frequency commands from the SDR software, but the panadapter never comes alive, and nothing is received. I tried it on SDR Console v3, SDR++, and SDR#.  Any idea what I'm doing wrong?

Charlie KB8CR

ron.ni...@gmail.com

unread,
Jan 18, 2023, 10:58:16 AM1/18/23
to Hermes-Lite
What sample rate settings did you try?  When using hl2_tcp, the SDR client needs to be capable of being configured with a sample rate compatible with an HL2.  
Another possibility is that these clients expect to see "RTL0" instead of "HL20" in the first 4 bytes sent before starting to display data.  This magic value is configured somewhere around line 540 in hl2_tcp.c .  if changing this magic value to better emulate an RTL-SDR fixes the issue, I'll add a command line option to hl2_tcp to configure the header value.

73, Ron, n6ywu

Josh Logan

unread,
Jan 19, 2023, 3:54:43 PM1/19/23
to Karl Heinz Kremer, Niels Jalling, Hermes-Lite

I have wanted to setup something similar in NodeRed to monitor the station and run a coax switch.
Currently I have a web page or curl commands I use to change which antenna is selected.

Can you share your setup more with the group so we can try to customize it to match our own setups?

73, KD7HGL
Josh


Karl Heinz Kremer

unread,
Jan 19, 2023, 4:32:40 PM1/19/23
to Josh Logan, Niels Jalling, Hermes-Lite
Hi Josh, 

the antenna switch is based on this design: https://remoteqth.com/modular-antenna-switch.php
I use a 3:1 configuration. To automate that, I used a Raspberry Pi Pico with some CircuitPython that waits for commands on the USB serial port and then switches to the associated input.  It also reports the current setting every now and then (I think I have it set to every 5 seconds). The box with the controller and the relay board also has a pushbutton that lets my cycle through the three relay configurations, plus "all relays off". When I push the button, then after less than five seconds, the NodeRed dashboard will update. TheThe NodeRed workflow is pretty straight forward:

[
    {
        "id": "b09908b927c79022",
        "type": "tab",
        "label": "Antenna Switch",
        "disabled": false,
        "info": "",
        "env": []
    },
    {
        "id": "3af7477f0ef053ba",
        "type": "inject",
        "z": "b09908b927c79022",
        "name": "",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "10",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "q;",
        "payloadType": "str",
        "x": 110,
        "y": 360,
        "wires": [
            [
                "e1a9400b6bd80728"
            ]
        ]
    },
    {
        "id": "4d9ccf959ab4d7d7",
        "type": "json",
        "z": "b09908b927c79022",
        "name": "",
        "property": "payload",
        "action": "",
        "pretty": false,
        "x": 610,
        "y": 360,
        "wires": [
            [
                "1c3e2b3f842cf5cf"
            ]
        ]
    },
    {
        "id": "1c3e2b3f842cf5cf",
        "type": "function",
        "z": "b09908b927c79022",
        "name": "Parse JSON",
        "func": "// parse the msg.payload structure\nvar p1, p2, p3;\nif (typeof msg.payload.ant1 != \"undefined\") {\n    p1 = { payload: msg.payload.ant1, background: msg.payload.ant1 ? \"green\" : \"gray\"};\n    p2 = { payload: msg.payload.ant2, background: msg.payload.ant2 ? \"green\" : \"gray\" };\n    p3 = { payload: msg.payload.ant3, background: msg.payload.ant3 ? \"green\" : \"gray\" };\n}\nelse {\n    p1 = { payload: false, background: \"gray\" };\n    p2 = { payload: false, background: \"gray\" };\n    p3 = { payload: false, background: \"gray\" };\n}\nreturn [ p1, p2, p3 ];",
        "outputs": 3,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 510,
        "y": 460,
        "wires": [
            [
                "b910401caecdbf58"
            ],
            [
                "291af4c06fc1e9b8"
            ],
            [
                "1fad30b61d2b44a8"
            ]
        ]
    },
    {
        "id": "e1a9400b6bd80728",
        "type": "serial request",
        "z": "b09908b927c79022",
        "name": "Antenna Switch",
        "serial": "cb68cbd735914470",
        "x": 360,
        "y": 360,
        "wires": [
            [
                "4d9ccf959ab4d7d7"
            ]
        ]
    },
    {
        "id": "b910401caecdbf58",
        "type": "ui_button",
        "z": "b09908b927c79022",
        "name": "",
        "group": "8cabfa32056e8eec",
        "order": 5,
        "width": 0,
        "height": 0,
        "passthru": false,
        "label": "KX3",
        "tooltip": "",
        "color": "",
        "bgcolor": "{{msg.background}}",
        "className": "",
        "icon": "",
        "payload": "s1;",
        "payloadType": "str",
        "topic": "topic",
        "topicType": "msg",
        "x": 170,
        "y": 540,
        "wires": [
            [
                "e1a9400b6bd80728"
            ]
        ]
    },
    {
        "id": "291af4c06fc1e9b8",
        "type": "ui_button",
        "z": "b09908b927c79022",
        "name": "",
        "group": "8cabfa32056e8eec",
        "order": 5,
        "width": 0,
        "height": 0,
        "passthru": false,
        "label": "HL2",
        "tooltip": "",
        "color": "",
        "bgcolor": "{{msg.background}}",
        "className": "",
        "icon": "",
        "payload": "s2;",
        "payloadType": "str",
        "topic": "topic",
        "topicType": "msg",
        "x": 170,
        "y": 580,
        "wires": [
            [
                "e1a9400b6bd80728"
            ]
        ]
    },
    {
        "id": "1fad30b61d2b44a8",
        "type": "ui_button",
        "z": "b09908b927c79022",
        "name": "",
        "group": "8cabfa32056e8eec",
        "order": 5,
        "width": 0,
        "height": 0,
        "passthru": false,
        "label": "AUX",
        "tooltip": "",
        "color": "",
        "bgcolor": "{{msg.background}}",
        "className": "",
        "icon": "",
        "payload": "s3;",
        "payloadType": "str",
        "topic": "topic",
        "topicType": "msg",
        "x": 170,
        "y": 620,
        "wires": [
            [
                "e1a9400b6bd80728"
            ]
        ]
    },
    {
        "id": "9c26c67a97c08bce",
        "type": "ui_button",
        "z": "b09908b927c79022",
        "name": "",
        "group": "8cabfa32056e8eec",
        "order": 10,
        "width": 0,
        "height": 0,
        "passthru": false,
        "label": "All Off",
        "tooltip": "",
        "color": "",
        "bgcolor": "",
        "className": "",
        "icon": "",
        "payload": "s0;",
        "payloadType": "str",
        "topic": "topic",
        "topicType": "msg",
        "x": 190,
        "y": 660,
        "wires": [
            [
                "e1a9400b6bd80728"
            ]
        ]
    },
    {
        "id": "cb68cbd735914470",
        "type": "serial-port",
        "serialport": "/dev/serial/by-id/usb-Raspberry_Pi_Pico_E660C06213844935-if02",
        "serialbaud": "115200",
        "databits": "8",
        "parity": "none",
        "stopbits": "1",
        "waitfor": "",
        "dtr": "none",
        "rts": "none",
        "cts": "none",
        "dsr": "none",
        "newline": "}",
        "bin": "false",
        "out": "char",
        "addchar": "",
        "responsetimeout": "100"
    },
    {
        "id": "8cabfa32056e8eec",
        "type": "ui_group",
        "name": "Input",
        "tab": "6da4b2b7c2781bb8",
        "order": 1,
        "disp": true,
        "width": "6",
        "collapse": false,
        "className": ""
    },
    {
        "id": "6da4b2b7c2781bb8",
        "type": "ui_tab",
        "name": "K5KHK",
        "icon": "dashboard",
        "order": 2,
        "disabled": false,
        "hidden": false
    }
]

2023-01-19_16-26-36.png
2023-01-19_16-25-46.png

The power meter/SWR is based on this project: https://sites.google.com/site/lofturj/15-power-and-swr-meter-rev-ii?authuser=0
Hope this helps, 

Karl Heinz - K5KHK

Jiri Culak

unread,
Jan 20, 2023, 2:46:20 AM1/20/23
to Hermes-Lite
Hi all

I wanted to have a simillar experience like sitting on LAN - or like using ICOM7610 / 7300 or SunSDR2 over remote so using a VNC is an option but I found that pushing 48kHz of raw I/Q Data each way works much better.
If you have public IP or DynDNS , just try to setup port forwarding of UDP 1024 to HL2 IP address and setup SparkSDR or SDRConsole or Quisk even (PowerSDR/Thetis dont work.....require broadcast) and you can manually configure IP Addres(public) and connect to HL2 like you would do at home.
Important - make sure you set up buffers correctly as buffer jitter across internet will vary between 20-150mS easily. 

Jiri Ok2It

Dne čtvrtek 19. ledna 2023 v 22:32:40 UTC+1 uživatel k...@khk.net napsal:

G4ZAL

unread,
Jan 20, 2023, 11:51:56 AM1/20/23
to Hermes-Lite
I'm running a remote station with Quisk and an HL2 (much as oz9ny posted earlier).
The great thing about this recent release of Quisk is to be able to run it over a poor wifi link at home or over the internet to some distant location.
Either way it works great and bandwidth required is only around 55Kb/s.
For remote operation over the internet, I have a Wireguard VPN running between the remote router and my Windows desktop at home.
I only activate the VPN as required.

Quisk at the remote site as a 'Server' running on a Raspberry-Pi hooked to the HL2.
At the 'Control end' or 'Client' I have another Quisk session running on my Windows PC and a bluetooth headset plugged into it and use VOX.


Nigel G4ZAL

jose manuel Bernabeu

unread,
Jan 20, 2023, 3:36:34 PM1/20/23
to Hermes-Lite
Hello Nigel.
What you say about using Quisk sounds great, could you explain something more like the configuration on the server and on the client.
I don't speak English well and using google translator I get lost easily.
Would you mind if I wrote directly to you for help?
thank you

Pepe EA4CF

G4ZAL

unread,
Jan 21, 2023, 6:49:43 AM1/21/23
to Hermes-Lite
Hello Pepe,

The easiest way will be for me to add a description to my blog over the next days and will post a link on here when done.

Nigel G4ZAL

jose manuel Bernabeu

unread,
Jan 21, 2023, 1:02:19 PM1/21/23
to Hermes-Lite
That would be great Nigel,
 if you could add the different server and client settings,
that would surely help

Thank you

G4ZAL

unread,
Jan 22, 2023, 2:16:26 PM1/22/23
to Hermes-Lite
Hello Pepe (and anyone interested),

I have made a rough guide to setting up Quisk remote...

I hope it helps?

Nigel, G4ZAL

jose manuel Bernabeu

unread,
Jan 24, 2023, 2:43:33 PM1/24/23
to Hermes-Lite
Thank you very much Nigel for your help.
Thanks to your explanation I have been able to see where I was failing.
The problem was in the quisk version, I was using 4.1.52 and that way I didn't understand Jim's guidelines.
The path now thanks to your help has been easy, thank you very much Nigel.

G4ZAL

unread,
Jan 25, 2023, 6:14:06 AM1/25/23
to Hermes-Lite
Hi Pepe,

Glad it helped and yes, you were right to update Quisk to the newest as your install was more than 3 years old.
I have updated my blog to indicate this.
If you find anything that would be useful to add/change on my blog, let me know so everyone can benefit.
https://g4zal.blogspot.com/2023/01/quisk-remote-operation.html

Maybe we will hear you soon as  EA4CF/R   (for remote  ;-) )

Nigel, G4ZAL

PE3ES / F4VTQ

unread,
Feb 27, 2023, 2:09:09 PM2/27/23
to Hermes-Lite
Something missing from all this is a robust way to remotely power cycle some of the equipment used. Especially the HL2 sometimes hangs and needs a reset by interrupting the power. When the system was in our cellar that was not too difficult. Sometimes the "hang" was a result of a local short power outage. I just bought a ethernet - 8 relay unit that I will set up for this part of the system.
That should be able to handle items like the HL2, the switch, a local Raspberry Pi, the power to an active antenna like my LZ1AQ etc.

Erwin
Op woensdag 25 januari 2023 om 12:14:06 UTC+1 schreef G4ZAL:

Jaroslav Škarvada

unread,
Mar 3, 2023, 1:13:11 PM3/3/23
to Hermes-Lite
Personally, I have never ever encountered HL2 hang. But I have remote
power cycling relay installed just for the case it would happen :)
My personal experience is that the HL2 firmware/gateware is much more
stable than most of the firmware in my consumer electronics :)
Sometimes HL2 loses IP address obtained through the DHCP, which is
probably result of the DHCP/network glitches of my network setup and
also not very robust HL2 DHCP implementation, but this can be easily
workaround by static IP assignment

73! Jaroslav, OK2JRQ

PE3ES / F4VTQ napsal(a):
> Something missing from all this is a robust way to remotely power cycle
> some of the equipment used. Especially the HL2 sometimes hangs and needs
> a reset by interrupting the power. When the system was in our cellar
> that was not too difficult. Sometimes the "hang" was a result of a local
> short power outage. I just bought a ethernet - 8 relay unit that I will
> set up for this part of the system.
> That should be able to handle items like the HL2, the switch, a local
> Raspberry Pi, the power to an active antenna like my LZ1AQ etc.
>
> Erwin
> Op woensdag 25 januari 2023 om 12:14:06 UTC+1 schreef G4ZAL:
>
> Hi Pepe,
>
> Glad it helped and yes, you were right to update Quisk to the newest
> as your install was more than 3 years old.
> I have updated my blog to indicate this.
> If you find anything that would be useful to add/change on my blog,
> let me know so everyone can benefit.
> https://g4zal.blogspot.com/2023/01/quisk-remote-operation.html
>
> Maybe we will hear you soon as EA4CF*/R*   (for remote  ;-) )
> 2023-01-19_16-26-36.png
>> <https://groups.google.com/d/msgid/hermes-lite/25e6785f-b22f-4d39-b26a-295156b46ba8n%40googlegroups.com?utm_medium=email&utm_source=footer>.
>
> --
> You received this message
> because you are subscribed
> to the Google Groups
> "Hermes-Lite" group.
> To unsubscribe from this
> group and stop receiving
> emails from it, send an
> email to
> hermes-lite...@googlegroups.com.
> To view this discussion on
> the web visit
> https://groups.google.com/d/msgid/hermes-lite/FBF09571-3EE7-40AB-9787-16568C473A6D%40khk.net
> <https://groups.google.com/d/msgid/hermes-lite/FBF09571-3EE7-40AB-9787-16568C473A6D%40khk.net?utm_medium=email&utm_source=footer>.
>
> --
> You received this message because you are subscribed to the Google
> Groups "Hermes-Lite" group.
> To unsubscribe from this group and stop receiving emails from it, send
> an email to hermes-lite...@googlegroups.com
> <mailto:hermes-lite...@googlegroups.com>.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/hermes-lite/728c0794-4666-4151-97df-ded0e14b3bb5n%40googlegroups.com
> <https://groups.google.com/d/msgid/hermes-lite/728c0794-4666-4151-97df-ded0e14b3bb5n%40googlegroups.com?utm_medium=email&utm_source=footer>.


dh1tt

unread,
Mar 3, 2023, 2:18:34 PM3/3/23
to Hermes-Lite
For me, it is vy essential to have a main remote powerswitch, independent from local network, IP Switches, Router.
The basic device here is the router. If the router stucks, there is no chance anymore to restart any other device from abroad.
Solution is a GSM Switch for the router. Even the landline doesn't work anymore for what reasons ever.... the GSM Switch is the final emergency solution. I do think more and more about 19" fire extinguisher .... sounds scary.... but...... Murphy is often next corner.

Beside that, I'm using small "green" win11 as a server plus simple RDP Session via VPN.
All is under control. HL2/Thetis, LDMOS KW Amp, Antenna switching, Powermeter with final SWR Watch Dog, inband switching of 80m loop..... 

All installed in a nice 19" Network Cabinet..... downstairs ... Zero Noise Shack......

Was a longer way but best decision in decades.....

CW could be tricky...... no experience here.




Jiri Culak

unread,
Mar 7, 2023, 6:33:11 AM3/7/23
to Jaroslav Škarvada, Hermes-Lite

Me neither I only had to go to remote with twice. Both occasions when there was a power cut and Hermes came up faster than DHCP service. Jarda it’s correct that we can always set up. Static IP address by the default to DHCP. I tested that you can have a static lease, but in case DHCP service fails, it will revert to an IP address you set it to.

I still have a remote GSM really just for peace of mind and I have a single relay for power cycle of whole network.
Jiri


Odesláno z iPhonu

> 3. 3. 2023 v 19:13, Jaroslav Škarvada <ya...@yarda.eu>:
>
> Personally, I have never ever encountered HL2 hang. But I have remote power cycling relay installed just for the case it would happen :)
> You received this message because you are subscribed to a topic in the Google Groups "Hermes-Lite" group.
> To unsubscribe from this topic, visit https://groups.google.com/d/topic/hermes-lite/NTtl69jREGM/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to hermes-lite...@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/hermes-lite/f1cccbb7-6f92-a918-5424-ee4f2ac78b97%40yarda.eu.
Reply all
Reply to author
Forward
0 new messages