Network work

The pi-hole instance here now runs on an actual Pi rather than the server. Migration was easy – make a card image, run the pi-hole installer, backup the settings on the current installation and upload to the new system, shut down DHCP on the old system and start it on the new. Done – just watch the logs before deleting the old pi-hole. The hardest part was rebooting and/or giving static IP addresses to all the various systems.

Actually that last point was one I had planned anyway because when the server is being rebooted it takes DHPC off the air and any system that then tries to boot cannot find it’s network settings. Not an issue generally but it is after a power cut because the server takes a long time to boot. So the various Pi systems are all now set to static IPs.

Next up is to replace the server, which is an old PC with a Pi and move some bits about. The zigbee transceiver and the associated software modules (mqtt etc) will move to the Pi that runs homebridge, leaving the weather station for the new server Pi, plus an SSD which is on order. Also on order is a metal frame that takes up to 4 Pi systems and has fans.


I now have an FT818 as well as the FT817 so I have been rearranging stuff yet again. The FT817 was destined to be used portable but will now be a shack fixture – it has 2m and 70cm which is lacking since I sold the two transverters. The FT818 will be paired with the LDG Z817 autotunes and I will put together some wire and stuff to go portable. Both rigs came with the internal battery packs and together there is now a car charger, two mains chargers (one converted to power pole connectors) and a couple of leads that are of no use now with the power pole adapters being fitted to both rigs. There are lots of ideas floating about on using better battery packs or external batteries which I will have a think about. Given my ‘portable’ use initially is more likely to be in holiday accommodation there will be mains available.

So, having decided the FT817 is to become a fitment I have connected its Signalink to the Linux box along with the one already attached to the FT450D. Wsjt-x has this though out nicely through the ability to have multiple configurations. I’d never want to run two copies of wsjt-x for the two rigs at the same time so this works well. The documentation explains it but basically it’s a matter of selecting Configuration and cloning the current one, choosing names for each (I just used the rig names), and then selecting the second Signalink and rig details in the cloned configuration. All seems to work fine, the only thing that initially caught me out is that when one selects a configuration wsjt-x closes and reopens – I thought it had crashed.

I only run the radio at 2.5W but I do have a 2m linear to play with at some stage. It always surprises me how far 2.5W and the loft mounted big wheel will get on 2m.

This means my current configuration – digital wise anyway – is the FT817 and FT450D are connected to the Linux box via their Signalinks and CAT cables but the FT450D Signalink and CAT control can also be switched across to the Windows PC where I have Vara and VarAC installed. And a mess of wire…

Update: clearly I have overcomplicated things. Last night when changing configs wsjt-x could not sort itself out. Rebooting the PC sorted that. But this morning the FT817 was sat flashing its screen and although the FT450D was fine and I could make FT8 contacts all was not well. Unplugging everything from the FT817 and power cycling it cured the flash but then the FT450D had dropped off CAT control as well. For now I’ve set everything back as before, with the FT817 on the Mac.

Failed update

So… I updated the few plugins I use here, all of which say they were tested with the current WordPress version. The anti-spam plugin I use crashed WordPress. Oh good. I removed that and got the blog back (not that anyone would have noticed it missing!) without the anti-spam measures and have now received one (so far) spam post. I can live with that.

Update: The plugin has been updated so that it no longer crashes WordPress. However, it no longer even works at all! Oh well… can’t complain about stuff that is free!

PHP blues

Well this has really floored me. I am writing some PHP code to extract a list of waiting eQSLs and send replies where they match records from my log. In essence this is all straightforward but I have run into an issue that I as yet cannot resolve cleanly. There is some interaction I’m not seeing.

The eQSL API is a ColdFusion script accessed via crafting a URL with username and password. This returns a web page while at the same time preparing a list of waiting eQSLs as both an ADIF and a text file. I want the text file. The returned page has links to both and the files are not protected. When carried out by hand one clicks the link and the file is returned in the browser.

An ideal method to be automated and the kind of thing I’ve been doing since around the mid-1990s.

So, my PHP code first sends the API request and gets the returned webpage via cURL. It parses the page and extracts the URL of the text file that is the list of eQSLs. And it is here that it falls apart. When I pass this URL to another cURL procedure and thence a parser to extract the cards it always returns a 404 error.

Now the funny part. If instead of continuing in the code and using cURL to grab the produced text file I pass the URL via a system() call to another PHP program that contains the next cURL and parser that works just fine every time. And it’s the same variable I used to continued fail, or to call via system() and work, so the URL in it is correct.

I wondered at first if the ColdFusion code does not actually produce the file – or close the file – for a few seconds. But adding a delay did not work. So, does the remote code not finish things off while the network connection persists? I added various code to the two cURL processes to, in theory anyway, ensure the connection is closed after the first one. No joy.

If I simply print the URL of the download file and paste it into a browser, or into a different browser it all works. It just will not work from within that first script.

I can live with this but it’s nagging me… why is this happening? What else is PHP doing in the background that means that if I close the code and reopen another it all works? This has crept outside both my knowledge and experience! This is of course no fault of eQSL and stems from my desire to make things just the way I like them.


I have always dabbled in home automation, pretty much since before it even became a thing. Most of the control was, and mostly still is via X10 devices and controllers which use mains signalling. This is rather old fashioned now and, being mains signalling is susceptible to interference. At one stage the outdoor light, which are controlled via an X10 appliance module in the workshop were very intermittent, until I discovered the wall-wart on one of the internal cameras was injecting awful noise that caused a scanner AM to buzz wildly when held near any mains outlet in the house!

Anyway, that isn’t radio related, but this is… enter Zigbee. I have not read very far into this yet but it uses 2.4GHz among other frequencies for its signalling and there are lots of modules available. I plan to change our two dimmers to Zigbee and it will be pretty much plug and play. Apart from removing the mains signalling path the modules communicate both ways, so the controller can see their status as well as control them. Some of the newer X10 modules do this but very few of them and none of the ones I have.

The current setup here is a Raspberry Pi running Homebridge which appears in the Apple Home app and can respond to commands via Siri. The X10 lighting controllers are handled via shell scripts which are called by a Homebridge plugin. But with no status return, if the lights are switched on by a switch or, in the case of the garden and outdoor lights via a script which calculates dusk and dawn the Home app has no clue as to their state. With Zigbee it will.

There is a little way to go yet but everything appears to work. The Homebridge software has a plugin that communicates with software on the server which in turn works via a Zigbee 2.4GHz USB dongle. Basically, with very little work new devices feed their names all the way back to the Home app. All I need now is some more!

FT817 first fiddle…

I now have a second Signalink USB complete with the Yaesu cable to go with the FT817. This is actually the third one to arrive here, the second was mis-advertised as having the radio cable – it didn’t so it is going back because the price is £20 more than a competitor, a little less than the cost of the radio cable. Serves me right for trying to save a couple of quid!

Anyway, FT817 and Signalink all cabled together and no antenna. Hmmm. Ok let’s try into a dummy load, should be good enough for across the shack with FT8 running on the Linux box. Nothing received.

Ah, it’s a Windows box and 1.5 seconds adrift. Sync the time. No change.

Ok. Set WSJT-X to 2m and use the front antenna which I have. Nope, nothing sent.

It is always a good idea to read the manual before fiddling! Let’s change the display to power. Ah. No power… Hmmm.

Ok, transmit from the Linux box and I can see that on WSJT-X via the FT817. So it receives fine.

Did I mention the manual?

Set radio to DIG. Works fine now! Funny, that.

Microsoft time

You know the thing… installing stuff on Windows where it counts down, and sometimes up again, then gets to 100% and seems to wait for ages. Our washing machine seems to run on Microsoft time too.

Well, so too it seems does our old MacBook. This is a 2015 or so 13″ MacBook Pro and is no longer used so sits on a shelf. I had it set up as me for testing but wanted to clean it all out so it can be sold. That’s where things went a tad wrong.

For some reason it took ages to even log in – very unusual as these generally boot in seconds. Then, after the reset it would not boot at all. Long story cut…

I set it going doing a restore over the Internet. It began saying it would take 2 hours. Ok. This changed to 12 hours and seemed to come down ok, 11, then 10 each taking about an hour. Then it got down to 9 hours and dropped to 12 minutes! After an hour at 12 minutes left it went to 21 minutes and showed the Apple logo. After another hour it apparently had less than a minute to go. After 2 hours of that I gave up and rebooted it. It went straight back to 29 minutes, then 1 and sat there again. Hmmm.

So I downloaded MacOS onto a USB stick and booted the Mac that way. This fired up and said 4 hours (from an attached USB??) but dropped to a few minutes. I left it running but those few minutes became an hour before it finally finished.

It is not a happy Mac…

IT(s) all going against me…

What fun. I had a diminutive Lenovo PC running Lubuntu as a server here that did all sorts of things. It ran a web server that hosts my personal home page and gathered various data about central heating temperatures, the weather station, and the temperatures of the various Raspberry Pi systems. It also presented pics from our security cameras and some other stuff. It was tucked away with the network switches, the NVR and the NAS and sat happily doing its thing.

A while ago it had a disk error. The disk is a 2.5″ one, 1TB, and after a decent go at fsck there were no further problems. So I thought no more about it until a reboot after a software update gave it a far greater headache. This time fsck had to repair dozens of things and the server ended up missing the ssh server and numerous other packages. Huh.

So… out with the old Stone i7 PC, on with a fresh Lubuntu and a bit of fiddling loading packages. I’ve always kept a record of everything that gets installed along with any configuration data, copies of crontabs etc. and all user files are backed up to a NAS nightly. So no huge worries and it gave me a chance to rationalise things. But this PC is a whole lot bigger. Fortunately it just fits on the shelf where the Lenovo was. Just. Ok, it hangs 2 inches over the edge, but whose counting.

I suppose I was asking a lot of the Lenovo box and the tiny hard disk which would have been active all the time with everything going on. It had all become overcomplicated with the various Pi systems saving temperature data etc. via NFS and one of the cameras downloading data every second. I’ve ditched NFS this time and simply use ssh to gather temperature data every minute having set up ssh keys.

Here is the poor old beastie having been dragged out of the cupboard into the light… nice little system. I now have two for sale!

Printing blues

Recently our ageing HP 1022 printer has been misleading paper. There is a solenoid on the righthand side which controls the feed and the associated spring gets weak. I have stretched it three times so far, each time curing the issue for a while. A new spring is needed and, of course although I have a number of these they are all safely stored in the workshop never to be found!

Coupled to the desire to print in colour and on reasonably thick paper – I’m thinking short ranges of ‘special’ QSL cards here – after a bit of research I chose a Xerox printer. Reasonable cost and – although as is typical with these things new toner costs more than the printer – aftermarket toner is affordable.

The printer duly arrived and I set up the networking and it tried a test print. This failed to eject all the way and the printer announced it had a paper jam. Ok… try again. Nope. If I eased the sheet out as it was printing all was fine, but it never managed by itself.

I did the usual things. Swearing at the printer failed to cure the issue as I had hoped. DuckDuckGo’ing for answers threw up other people with the same issue but none of their cures worked for me. But it’s now, so off to the supplier who helpfully told me the contact number for Xerox. I had already registered the printer via Xerox’s own mechanism so all would be fine.


After being cut off the first time I spoke to someone who said that although they could see that I had registered the printer their internal systems did not realise and I could not be connected to technical support. I needed to send a proof of purchase, which I did. Some hours later I had a reply that they cannot work with said proof and needed a sales invoice. But it’s a private sale – I mean, who these days buys something via the web using PayPal and expects a sales invoice? You get a receipt for payment, then a message about what you are buying, a despatch note etc. I’ve not seen a sales invoice since I retired.

Anyway, I sent everything I had and have yet to receive a reply that I am allowed to contact their technical people about their printer which arrived faulty. Meanwhile I found the fix on the web using more flowery search terms and the printer now works fine.

Good grief.

A sea of screens

I’ve increased my screens to 4, all 24″ full HD things. I had 4 when I was at work, but not as large. This all came about because my main system, a 15″ MacBook was always at a poor angle. Laptops, after all are not intended to be day to day workstations.

A screen for the Mac was followed by an Apple keyboard – Apple old stock (but new) so it has all the relevant keys.

Having two screens on the Linux box already and those on a rather useful dual monitor stand it made sense to have a similar monitor stand for the new Mac screen (I say Mac screen, it’s LG not Apple. I’m not so daft as to spend a fortune on a screen!) but the screen on my Windows PC did not have a VESA mount. So, another LG screen followed…

I ended up then with a Windows PC, the MacBook (now with its screen closed and pushed out of the way), and the Linux PC spread across the desk. Three keyboards. Three mice.

Enter a program called Barrier… easy to set up, the Mac is now the master and the Mac keyboard and mouse can control all three systems by moving the mouse to the relevant screen.

No pics – the place is a tip. The next step is to make a platform for the monitor stands, move the PCs to under the desk, and set up the radios and stuff under that platform. Then everything is finally in front of me. Then I will post a pic…

There are a few issues to sort. First, the Linux key mappings do not fully like the Mac keyboard, so I have yet to enable characters like ‘|’, ‘`’, ‘\’ and some others – sadly some of the most used characters in Linux! For Windows, there’s no Windows key but that is no great loss. And anyway the keyboards and mice attached to the PCs still function. The other issue is for Linux Barrier cannot control the PC until the window manager is loaded, meaning I need to log in first. I can set it up so it does not require a login but that’s not really me with my background… Windows, being all window GUI works just fine on startup.

It probably goes without saying that you cannot drag windows between the systems (I can see Windows having a fit!) but the copypaste buffer works which is nice.

There are a few minor niggles, such as on some websites on the Mac the highlighting ‘trembles’ when moving the mouse up and down on one of the other systems. It happens rarely and isn’t an issue for me. The other thing is it is easy to completely loose the mouse! I have not yet investigated the hotkeys one can set up so there may be some help there…



Recent Posts