Wednesday 8 December 2021

Serial Perl Revisited

I'd posted this item on creating a custom serial driver / interface in  PERL a few years ago, and needing to revisit it for another project, I found that there was now an issue with running the Win32::Serial module on 64-bit Windows, Windows 10 specifically.

The problem was, when I ran some Perl that previously worked for me, it now failed when querying a serial port with an error like this;

error: Second Read attempted before First is done at xantech.pl line 47.

Some Google-Fu later, I found a reference to the issue on PerlMonks, and a link by user cr8josh to the fix by Christopher Oicles which is published here.

It looks like there's a risk that the rt.cpan site will close, so I'm reproducing the fix here for my own future sanity;

Tuesday 6 April 2021

The Good Schiit

Through a long and winding path that started with an offer on Readly, which allowed me access some Australian Hifi magazines I would not otherwise read, one of which contained a review of this book, I picked up 'Schiit Happened' by Jason Stoddard & Mike Moffat.

I'd been somewhat aware of the Schiit brand from reading reviews and online, but never paid all that much attention, and don't own any of their products. However, learning this book was a blend of business startup and audio engineering, it very much appealed to me.

It's very very easy to read. The writing style is informal, laid back and yet wildly informative. It gets very technical at times, and at other times is filled with riveting anecdotes and business insights. The overall impression is of a smart team who very much have their Schitt together, but we learn that they weren't always so efficient & switched on!

If you have even a passing interest in the audio industry, marketing, business, startups or how to deal with intrusive homeowner associations,  you can't really go wrong with this entertaining read.


Saturday 13 March 2021

Solving HDMI Long Run Dropout

My Sky TV box feeds three displays throughout the house; a JVC projector in the Home Theatre, a Panasonic 58DX800 in one living room and a Samsung 7 Series TV in another All are more or less 4k , (the JVC is a Faux-K unit), but all support UHD resolution, which the Sky box outputs.

I don't see much value in the additional multi-room subscription for Sky as we really don't use more than one TV at a time, and on the odd occasions we do, we can run the Sky app on a playstation or other device.

So the challenge is how to route the signal to each device. All are reasonably proximate to the Sky box with runs from 7M for the projector to 15M for the two TVs.

I have the system set up as follows;


 The SkyQ box feeds an HDMI Splitter via a single HDMI cable. This serves 2 key functions; It allows me route to the 3 devices, but also strips HDCP, without which my JVC won't display an image.

One splitter output has a run of 20M Fibre 4K cable direct to the Panasonic TV, while the other goes to the Marantz AV8805 Cab/Sat input, to connect to the JVC projector as needed (Zone 1) and permanently routed to the Samsung TV (Zone 2)

This mostly works, except that the HDMI connection to the Panasonic TV is unstable, (red arrow above).. From time to time there are merge visual artefacts (green lines), some audio drop-out and fairly frequent re-syncs where the screen blanks and resets, resulting in a 1-2 second interruption.

I'm on my second or maybe third cable and thought that this Fibre version would resolve the problem, but unfortunately not. I've also tried all sorts of configurations including testing direct cable connection between the SkyQ box and the TV, but the problem always exists. Some combination of this TV model and the cable run length is problematic.

Before considering purchase of an expensive 8K Fibre cable, I thought I'd try HDMI over ethernet as I had a spare AVAccess HDBaseT extender kit I'm not using. The configuration now looks like this;


And this works perfectly. The AVAccess devices are rated at 4K60Hz over 40M Cat5e, which is more than enough for my needs. Been watching UHD content all through the day without any hiccups so, problem solved!

I've written before about these devices for routing virtual computers, but they really are very flexible pieces of kit. If you're having trouble with lengthy HDMI runs, you could do worse than look at this solution.

Monday 18 January 2021

Worth a Watch: DCX MMXVI



I don't really do content reviews on this blog, but this weekend I rewatched the live concert Blu-Ray included with The Dixie Chicks DXC MMXVI Live CD set and it blew me away all over again, so I thought I'd share!

I wouldn't call myself a Dixie Chicks fan per se, (or 'The Chicks' as they are now known). I have one of their CDs and know a few of the songs, but I don't know very much about them, their names, background etc. However, being a fan of live music videos, I picked up this set a few years on the basis that it included the concert blu ray, and was I pleasantly surprised.

Sunday 17 January 2021

User Presence Detection using Node-Red and Unifi


A big challenge in Home Automation is implementing a reliable mechanism for presence detection - figuring out who's home, and tailoring logic accordingly.

Here's how I do it using Node-Red, Unifi and MQTT.

Many approaches to presence detection rely on interacting with the device itself, either by way of software running on the mobile handset, or having the mobile ping or poll an external service. None of these approaches really appealed to me as they are fiddly, rely on handset configuration & maintenance and need to be reset every time someone gets a new phone.

The approach I've taken here is to rely on the fact that all the families' mobile phones are configured to connect to home WiFi (to save on data charges!). This method interrogates the home network to see what phones are present - a good indication that the person is home.

In short, I have a Node-Red flow that polls the network on a schedule, looks for named devices, and updates presence status in MQTT based on that.

I could have used a database, or flat file storage for storing state, but as I have an MQTT broker running anyway, it's a convenient and flexible approach for me.