Updated Photographs of the remote shack

Here are some updated photographs of the remote shack.

Outer Cabinet
Outer Cabinet location

This is a general view of the outer cabinet at the farm. Yes, it is on a slight slope.

Inner Cabinet
Inner Cabinet

With the outer doors and lid open, you can see the inner cabinet in its bubble-wrap blanket.

Inner Cabinet

With the inner doors open you can see the internal layout.

Inner Cabinet Detail

On the bottom floor is the radio’s power supply, the UPS and the cabinet heater. Above that is the control board with all the electronics; and above that the Flex.

Antenna
Antenna

A not particularly interesting picture of the antenna; showing the fiberglass mast and the ATU board with ATU and the box containing the power take-off for the ATU.

Not shown in this picture is the antenna disconnect.

Remote station update

I realize that it’s been some time since I updated this blog.

The project is still active, but has been suspended due to the weather.

  • The station is running nicely in my back garden
  • The site has been surveyed and is suitable
  • The hold-up is the antenna:
    • It’s going up in the trees
    • I decided to wait until the leaves were off the trees
    • By that time, the weather was appalling and ground too boggy to walk over.

I’ve had to postpone until the weather improves. Unfortunately, I will be overseas for several months, so we’re looking at June.

I’ll need to go with a simpler antenna and revise later.

Setting up a Remote Station – part 13 The Installed Station

The main image shows the installed station – but still in the garden. The top shelf has the Flex 6400 on it, the middle shelf the control system and the bottom has the UPS and power supplies. Hopefully, this will cut down on noise induction.

This image shows the control board before being installed in the cabinet.

Top left is the ancillaries board with an input jack from the ancillary 12V PSU, a couple of Power Poles to feed other 12V devices, the ESP8266 running ESPHome and code for the environmental sensors – an on-board Temp/Humidity sensor for the internal cabinet, and two 1-wire temperature sensors that will be placed in the space between the two cabinets and outside. On the far right is the Teltonika RUT951 router. In the picture it has its internal aerials on, but in the field it will have the 4G antennas and one of the wi-fi antennas connected to external antennas.

Below that is:

  • The Sonoff 4ch switch which controls the Remote On/Off and PTT on the Flex, and the 12V power to the remote auto ATU (not shown)
  • The Geekom Mini IT8 Windows PC
  • The Netgear Ethernet switch, and
  • The Raspberry Pi4 in its smart Argon One case.

Not shown in this image are any power leads. Also not shown in this image, but visible in the main one, are the two Tapo wi-fi switches that control the mains input to the main 12V PSU and the PC’s PSU. The switches are on the middle shelf in case the wi-fi doesn’t penetrate to the bottom shelf. I’m going to try them in the bottom today.

The station is now built, but I’m going to leave it in the garden for a week or so to accumulate sensor readings so I can decide if I need to add forced cooling. It will be located against a north facing wall, so won’t get any direct sun. It’s in a similar north-facing position in the garden, but will get a bit of early morning and late afternoon sun for the next week or so.

Setting up a Remote Station – Part 11 Screenshots

I thought I’d add some screenshots of what the control UI looks like.

The one above shows the main screen with the various controls on it. Only two need to be touched in normal circumstances: the Radio Control button and the Windows PC button. These both kick off automations that sequence through turning things on or off – they don’t control things directly.

At the top of the screen are a number of tell-tales that indicate the state of various components, plus basic propagation information.

You can also see the lightning detector and some elementary status info. if Blitzortung reports lightning within 25km, a script runs that sends a Pushover alert, waits a couple of minutes and then kicks off the Radio Power Off script as if the user had tapped the Radio Control button.

Lastly you can see the state of the ATU, you can toggle the Lock function on the ATU to disabled the auto-tune function, and see whether it is tuned or not.

 

This image shows more comprehensive propagation info.

 

Lastly, you have a screen with some system status information.

There are more screens accessible via the side menu bar, but these three cover 90% of what’s needed. I’ve seen some remote control screens that are, in my opinion, far too crowded with irrelevant information. All that does is hide important information and controls and overwhelm the user with noise. (again, my opinion).

incidentally, all these screens are produced using the standard controls provided with Home Assistant, plus some useful ham-related plugins (e.g. Blitzortung and HF Propogation)

Setting up a Remote Station – Part 10 Overview of the Final System

Hopefully the image above should help to understand what the station consists of. The station comprises:

  • a 240V network with the UPS at its core and feeding:
    • two Tapo switches (one for the PC and one for the Radio PSU);
    • the permanently-on auxiliary 12V PSU that powers the Sonoff, network switch and the ATU controller; and,
    • the permanently-on PSUs for the Router and the Pi-based Station Controller.
  • A mixed wired and WiFi network connecting most devices.
  • The main Radio PSU – Flex – ATU – Antenna Disconnect RF chain.
  • The Sonoff that switches the Flex on and off and operates the PTT when needed.
  • The Pi-based Station Controller running Home Assistant.
  • The Windows 10 PC used for digital modes.

I hope this all make sense.

Moving on, the station has been operating from my home QTH for some time now whilst I scout out a suitable remote location. I’m glad to say that a local farmer has agreed to let me site the station on their land. The only downside is that the station needs to be outside, so I now need to source a suitable IP65 or IP66 (but ventilated) wall-mounted cabinet to house it all in. Not easy to find!

For the antenna, there is a convenient line of trees close by and a 10m high barn; to which they have agreed I can mount a 20m pole to be one end of the doublet antenna I intend to use – the other end being one of the trees. With luck I’ll be able to erect a decent doublet at 20m off the ground and fed by balanced feeder from the SG-230; which will be mounted 2-3m off the ground at a convenient location midway between the ends of the doublet – probably somewhere on the wall of the aforementioned barn. I’ll use a 12V combiner to feed power to the ATU and the antenna disconnect unit.

Setting up a Remote Station – Part 9 Nearly Complete

Let me start with an apology. This site has been off the air for some weeks due to a server move initiated by my hosting provider. They gave me plenty of warning, but unfortunately the move took place whilst I was away and unable to react. Hopefully all is well now.

Nearly complete

It’s been some time since I last posted on this topic because I have been away on an extended trip. However, I’m back now and am now very nearly (hopefully) at the point where I can move the completed station to its new location. Since the last update, I’ve been able to:

  • Resolve the networking issue I grappled with in the previous post by adding an intermediate Ethernet switch.
  • Rebuilt the Station Control Computer to run Home Assistant on its preferred operating system – Home Assistant OS. HAOS is a stripped down Linux built using BuildRoot: which is optimized for embedded devices.
  • As a consequence, I’ve also migrated a couple of the additional systemd services I used before, to use Home Assistant Addons, viz: The code to monitor the UPS, the code to monitor the Pi, and the code to control the fan in the Argon40 case I am using. For the UPS, I am now using NUT rather than APCUPSD. This forced me to change the code in the Windows PC as well.
  • I’ve also added integrations to display the current RF conditions and provide warnings of any local thunderstorms.

My main tasks still outstanding are:

  • To source an auto-disconnect for the antennas.
  • To build a 12V injector to feed power to the SG-230 ATU that will be located at the base of the antenna.
  • To enable the MQTT service on the router, so it can report status to Home Assistant
  • To work on the Home Assistant dashboard that will be used to control everything.
  • Develop automations to disconnect the antennas and power off the ATU if lightning is detected close by, or when the radio is off.

Once I have fixed the final location I can also:

  • Decide on what is needed to house everything, which will also let,
  • Lay everything out on a plywood base board,
  • Finalise cable lengths and source screened cables for everything.

So, actually there’s quite a lot still to do.

In the next post, I’ll summarize where we are and include some diagrams that should hopefully make everything clearer.

New Antenna System – pt 2, What?

See https://wp.me/p4spp6-ih for part 1

Garden Plan

I started off by seeing how I could get the best from using the fibreglass mast in the middle of the back fence. Unfortunately, the internal angle would be too small for a dipole erected in a horizontal Vee, so that left me with 13m to play with. Not much.

I could put a 30m dipole in (with the ends drooped) and could then have 20, 17, 15, 12 and 10m dipoles in a fan; but this would be a nightmare to set up, and the weight would probably be too much for the fibreglass mast . Also, conditions are still declining IMO, so I really want 40m (at least).

Luckily, a change in the garden provided me with more options. We’ve just put in a new shed in the bottom SE corner of the garden, and this gave me the idea of mounting a pole on the end of the shack (B on the plan) and another on the end of the shed (C on the plan). Add in a stub mast on the gable end (A) and I now have 36m to play with (albeit in an odd shape). Plus, the middle is roughly above the shack (see plan).

80m Doublet

This led me to the antenna I am actually building: an 80m doublet (with one drooped end) fed with ladderline from the shack. One side runs in a straight line from the gable end (A) to the shack (B). The other runs at right angles to the shed (C) and then back to the house (D). I’m going to model this to see if there are any reasons not to follow this path, but it looks good.

Tuner

The problem of course is that I really need a balanced tuner for this to work. Even without modelling, I foresee that the feedline will be unbalanced because of the odd shape. Putting this straight into an unbalanced tuner would be foolish. However, I do have the SG-230.

What I am doing is to install a 1:1 Guanella (Current) Balun on the end of the ladderline and connect the unbalanced output direct to the SG-230. The Balun should force the ladderline to be balanced and reduce radiation from the ladderline.

Provided the impedance swing is not beyond the capabilities of the SG-230 (and I’ve no clear idea of what those are), this should work. As the tuner will now be “hot” I’m installing an RF Choke on the coax from the tuner to kill any RF that wants to go down the outside of the shield.

The next part will cover building the antenna.

New Antenna System – pt 1, Why?

We moved to the current QTH in 2009. We thought that we’d be here for about 10 years and then move on once I retired. As such, I didn’t take too much notice of the suitability of the QTH for amateur radio. Big mistake. The QTH is in a lovely location, but it’s hemmed in by other properties, it’s down near the River Great Ouse, and has a 20m high ridge running SW-NE behind it.

All of the above makes for a sub-optimal RF environment; mainly due to locally generated noise. On 40m and using my current antenna, I regularly get a noise level of S9+10dB.

We’ve now decided to stay here, so I need to make the best of what I have.

Current Antenna

Garden Plan

The plan of the property (dimensions in cm) shows my shack in the SW corner of a 13 x 8m back garden. There was a convenient concrete washing line post in the middle of the back fence, so up until now I’ve been using a long wire antenna made of Flexweave running in a wonky inverted-L from the shack, to the top of a fibreglass mast lashed to the washing-line post and thence to the back of the house. The Long-Wire is tuned with my trusty SG-230 SmartTuner; which I used at my previous QTH. There are also a set of tuned counterpoises that run around the fence.

It’s not a bad antenna, but it does pick up a lot of noise. It’s also been deteriorating over the last year or so. See later for why.

Options for improvement

As I see it, I have several avenues to pursue.

  1. Replace the current antenna with something better.
  2. If still no improvement, install a dedicated RX-only antenna (e.g. Magnetic Loop such as the Wellbrook https://www.wellbrook.uk.com/loopantennas/Loop_Antennas/ALA1530LN)
  3. As per option 2 but move the RX antenna to a quieter location and operate it remotely.
  4. Move the TX antenna (and K3S) to a quieter location and operate remotely.
  5. Move 🙂
  6. Give Up.

I’m going to start with Option 1.

Potential new antennas

I started off by exploring installation of a beam of some sort on a tower. This would have the advantage of directionality and reduced noise (if only from being higher). The challenge is the limited space. Even if I installed the tower in the middle of the garden, I’d only have 8m diameter to play with. I could get a Hexbeam or a Cobweb in without infringing on neighbouring properties, but nothing bigger.

Even without discussing this with the XYL, I discarded this notion, but did explore mounting a mast on the back of the house. Something like the Tennamast or something from MM0CUG https://www.mm0cug.co.uk/shop/steel-box-section-masts/. This could have worked, but after discussions with neighbours, I realised I would get objections and decided to explore other avenues first.

The alternative is to installed a better wire aerial, and that’s what I’ll cover in the next part.

Upgrading the disk space in my ZFS-based servers – pt 4

Part 1, Part 2, Part 3

Back on Deneb

I followed a similar procedure with the pools on deneb. The only change was that instead of running the second snapshot plus send/recv task with the system running normally, I ran it with the system running in no install/recovery mode. That way no services or zones were running.

After I had completed renaming, exporting and importing the pools, I rebooted as I had done with eridani. I immediately hit a problem: Smartos crashed at some point during the boot process. Unfortunately, the crash message scrolled off the screen before I could see what it was.

I rebooted and videoed the boot sequence on my ‘phone. There’s a kernel panic that causes the crash but it’s impossible to determine what the cause is.

On the basis that I can only really make progress with a running system, I decided to

  • reboot into recovery mode
  • destroy the the new pool
  • import the old pool as zzbackup
  • install SmartOS on to t a newly created pool
  • try and debug from there.

I removed dsk3 (containing the zzbackup pool) and then reinstalled smartos on to a newly created raidz1 pool.

When I rebooted without dsk3 the system was stable. When I then rebooted with dsk3 installed, the system panicked again!

I rebooted into recovery mode, imported zzbackup and destroyed it.

Now it reboots OK. Now I can import the destroyed zzbackup pool on to an alternate mount point.

[root@deneb ~]# zpool status
  pool: zones
 state: ONLINE
  scan: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        zones       ONLINE       0     0     0
          raidz1-0  ONLINE       0     0     0
            c1t0d0  ONLINE       0     0     0
            c1t1d0  ONLINE       0     0     0
            c1t2d0  ONLINE       0     0     0
        logs
          c1t4d0    ONLINE       0     0     0

errors: No known data errors
[root@deneb ~]# zpool import -D
   pool: zzbackup
     id: 11000531473529046782
  state: ONLINE (DESTROYED)
 action: The pool can be imported using its name or numeric identifier.
 config:

        zzbackup    ONLINE
          c1t3d0    ONLINE
[root@deneb ~]# mkdir /alt
[root@deneb ~]# zpool import -D -R /alt zzbackup
[root@deneb ~]# zpool status
  pool: zones
 state: ONLINE
  scan: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        zones       ONLINE       0     0     0
          raidz1-0  ONLINE       0     0     0
            c1t0d0  ONLINE       0     0     0
            c1t1d0  ONLINE       0     0     0
            c1t2d0  ONLINE       0     0     0
        logs
          c1t4d0    ONLINE       0     0     0

errors: No known data errors

  pool: zzbackup
 state: ONLINE
  scan: scrub repaired 0 in 4h47m with 0 errors on Tue Feb  6 22:32:20 2018
config:

        NAME        STATE     READ WRITE CKSUM
        zzbackup    ONLINE       0     0     0
          c1t3d0    ONLINE       0     0     0

errors: No known data errors
[root@deneb ~]# zfs mount
zones                           /zones
zones/archive                   /zones/archive
zones/cores/global              /zones/global/cores
zones/var                       /var
zones/config                    /etc/zones
zones/opt                       /opt
zones/usbkey                    /usbkey
zzbackup/opt/data               /alt/data
zzbackup/opt/data/backups       /alt/data/backups
zzbackup/opt/data/cfg-backups   /alt/data/cfg-backups
zzbackup/opt/data/dev_backups   /alt/data/dev_backups
zzbackup/opt/data/home          /alt/data/home
zzbackup/opt/data/home/git      /alt/data/home/git
zzbackup/opt/data/media         /alt/data/media
zzbackup/opt/data/public        /alt/data/public
zzbackup/opt/data/software      /alt/data/software
...
zzbackup/archive                /alt/zones/archive
...
zzbackup/cores/global           /alt/zones/global/cores
zzbackup                        /alt/zzbackup

Now I can rebuild deneb from the old system. A bit tedious though.

  1. Copied usbkey over and rebooted (had to destroy zzbackup first again though)
  2. Copied /opt over so that the custom services start up.
  3. Rebooted to be sure.

Before laboriously rebuilding, I decided to try booting with dsk3 as zones and the new pool as zznew.

It boots, but the mountpoints are screwed!

root@deneb ~ $ zfs list
NAME                                               USED  AVAIL  REFER  MOUNTPOINT
zones                                             2.67T   863G   588K  /zones
zones/0246b0fe-771c-60ba-cbe6-92ea5795117b        1.21G  8.79G  1.27G  /zones/0246b0fe-771c-60ba-cbe6-92ea5795117b
zones/088b97b0-e1a1-11e5-b895-9baa2086eb33         528M   863G   527M  /zones/088b97b0-e1a1-11e5-b895-9baa2086eb33
zones/147f4eca-1783-4b80-d7e4-9a1d4420567a         294M  9.71G   432M  /zones/147f4eca-1783-4b80-d7e4-9a1d4420567a
zones/163cd9fe-0c90-11e6-bd05-afd50e5961b6         257M   863G   257M  /zones/163cd9fe-0c90-11e6-bd05-afd50e5961b6
zones/1870884c-780a-cb0b-fdc0-8e740afa4173         320M  9.69G   459M  /zones/1870884c-780a-cb0b-fdc0-8e740afa4173
zones/1bd84670-055a-11e5-aaa2-0346bb21d5a1        52.2M   863G  51.9M  /zones/1bd84670-055a-11e5-aaa2-0346bb21d5a1
zones/1ed69a26-f60b-401c-bde6-793df2d0547b        2.12G   498G  2.01G  /zones/1ed69a26-f60b-401c-bde6-793df2d0547b
zones/2a9bfaf4-ddf1-e146-ab80-e2f8723ec714         313M  9.69G   453M  /zones/2a9bfaf4-ddf1-e146-ab80-e2f8723ec714
zones/46c77656-5d22-cdaf-8056-88aaa11c1e58         790M  9.23G   868M  /zones/46c77656-5d22-cdaf-8056-88aaa11c1e58
zones/4bc5b510-2d5d-e47e-c3bc-d492dfeae320         813M  9.21G   813M  /zones/4bc5b510-2d5d-e47e-c3bc-d492dfeae320
zones/4bc5b510-2d5d-e47e-c3bc-d492dfeae320-disk0  53.9G   903G  11.1G  -
zones/5c7d0d24-3475-11e5-8e67-27953a8b237e         256M   863G   256M  /zones/5c7d0d24-3475-11e5-8e67-27953a8b237e
zones/7b5981c4-1889-11e7-b4c5-3f3bdfc9b88b         241M   863G   240M  /zones/7b5981c4-1889-11e7-b4c5-3f3bdfc9b88b
zones/842e6fa6-6e9b-11e5-8402-1b490459e334         226M   863G   226M  /zones/842e6fa6-6e9b-11e5-8402-1b490459e334
zones/a21a64a0-0809-11e5-a64f-ff80e8e8086f         186M   863G   186M  /zones/a21a64a0-0809-11e5-a64f-ff80e8e8086f
zones/archive                                      152K   863G    88K  none
zones/b33d4dec-db27-4337-93b5-1f5e7c5b47ce         792M   863G   792M  -
zones/c8d68a9e-4682-11e5-9450-4f4fadd0936d         139M   863G   139M  /zones/c8d68a9e-4682-11e5-9450-4f4fadd0936d
zones/config                                       468K   863G   196K  legacy
zones/cores                                        250M   863G    88K  none
...
zones/cores/global                                 152K  10.0G    88K  /zones/global/cores
...
zones/dump                                         260K   863G   140K  -
...
zones/opt                                         2.50T   863G  1.20G  legacy
zones/opt/data                                    2.49T   863G   112K  /data
zones/opt/data/backups                             617G   863G   466G  /data/backups
zones/opt/data/cfg-backups                        57.2G   863G  47.8G  /data/cfg-backups
zones/opt/data/dev_backups                        2.61G   863G  2.61G  /data/dev_backups
zones/opt/data/home                                108G   863G   108G  /data/home
zones/opt/data/home/git                            152K   863G    88K  /data/home/git
zones/opt/data/media                              1.73T   863G  1.73T  /data/media
zones/opt/data/public                              172K   863G   108K  /data/public
zones/opt/data/software                            336K   863G   272K  /data/software
zones/swap                                        33.2G   896G   246M  -
zones/usbkey                                       196K   863G   132K  legacy
zones/var                                         1.05G   863G  1.03G  legacy
zznew                                             37.6G  3.47T  1018K  /zznew
zznew/archive                                      117K  3.47T   117K  /zznew/archive
zznew/config                                       139K  3.47T   139K  legacy
zznew/cores                                        234K  3.47T   117K  none
zznew/cores/global                                 117K  10.0G   117K  /zznew/global/cores
zznew/dump                                        1.84G  3.47T  1.84G  -
zznew/opt                                         2.88G  3.47T  2.88G  legacy
zznew/swap                                        32.9G  3.50T  74.6K  -
zznew/usbkey                                       261K  3.47T   261K  legacy
zznew/var                                         3.91M  3.47T  3.91M  /zznew/var

This may be the cause of the panic
The salient parts are:

root@deneb ~ $ zfs list
NAME                                               USED  AVAIL  REFER  MOUNTPOINT
zones                                             2.67T   863G   588K  /zones
zones/archive                                      152K   863G    88K  none
…
zones/config                                       468K   863G   196K  legacy
zones/cores                                        250M   863G    88K  none
…
zones/cores/global                                 152K  10.0G    88K  /zones/global/cores
…
zones/dump                                         260K   863G   140K  -
…
zones/opt                                         2.50T   863G  1.20G  legacy
…
zones/swap                                        33.2G   896G   246M  -
zones/usbkey                                       196K   863G   132K  legacy
zones/var                                         1.05G   863G  1.03G  legacy
zznew                                             37.6G  3.47T  1018K  /zznew
zznew/archive                                      117K  3.47T   117K  /zznew/archive
zznew/config                                       139K  3.47T   139K  legacy
zznew/cores                                        234K  3.47T   117K  none
zznew/cores/global                                 117K  10.0G   117K  /zznew/global/cores
zznew/dump                                        1.84G  3.47T  1.84G  -
zznew/opt                                         2.88G  3.47T  2.88G  legacy
zznew/swap                                        32.9G  3.50T  74.6K  -
zznew/usbkey                                       261K  3.47T   261K  legacy
zznew/var                                         3.91M  3.47T  3.91M  /zznew/var

root@deneb ~ $ zfs mount
zones                           /zones
…
zznew                           /zznew
zznew/archive                   /zznew/archive
zznew/cores/global              /zznew/global/cores
zznew/var                       /zznew/var
zznew/config                    /etc/zones
zznew/opt                       /opt
zznew/usbkey                    /usbkey

As you can see, some of the legacy datasets on zznew are being mounted instead of the equivalents from zones. i.e. it seems to be mixing up the legacy mounts.

yet more to follow