All posts by admin

A little audio section & notes

I use a couple of Wiim products at home for music streaming – a Mini in my home office, and a Pro in the lounge. Both are using S.M.S.L. SU1 DACs.

The Wiim Pro is a Chromecast capable device – pretty much anything can be used to control it and stream. The Mini is not Chromecast. Both have a web API, and a UPnP interface. I was able to find some projects on Github that show how to build code to drive these from Linux, or as ready apps to use.

https://www.wiimhome.com/pdf/HTTP%20API%20for%20WiiM%20Mini.pdf – API doccumentation

https://wiki.gnome.org/Projects/GUPnP – a Linux based UPnP set of tools for discovery and experimentation. Very helpful with building and debugging UPnP code when working with devices like the Wiims

https://github.com/retired-guy/WiiM-Watcher-Chrome-Extension – Chrome js. Check out some of the other examples from this user too.

https://github.com/shumatech/wiimplay – app written in Go, runs great on Linux. Precompiled binary available


Wiim Play driving my office Mini from a Linux desktop

Simple Python Demo for a Wiim Mini control
Enter the IP address of your Wiim device into target_ip

You need to have started the Wiim playing something via a phone / tablet with Wiim Home / Tidal / Spotify. The app allows the user to pause / play / skip to the next or previous track.


# Begin

import tkinter as tk
import requests
requests.packages.urllib3.disable_warnings()


# Specify the IP address here
target_ip = "192.168.1.72"

def get_now_playing():
    url = f"https://{target_ip}/httpapi.asp?command=getStatusEx"
    response = requests.get(url, verify=False)
    data = response.json()
    return data

def play():
    url = f"https://{target_ip}/httpapi.asp?command=setPlayerCmd:resume"
    response = requests.get(url, verify=False)
    update_ui()

def pause():
    url = f"https://{target_ip}/httpapi.asp?command=setPlayerCmd:onepause"
    response = requests.get(url, verify=False)
    update_ui()

def next_track():
    url = f"https://{target_ip}/httpapi.asp?command=setPlayerCmd:next"
    response = requests.get(url, verify=False)
    update_ui()

def previous_track():
    url = f"https://{target_ip}/httpapi.asp?command=setPlayerCmd:prev"
    response = requests.get(url, verify=False)
    update_ui()

def update_ui():
    now_playing = get_now_playing()
    ssid = now_playing.get("ssid", "Unknown SSID")
    device_name = now_playing.get("DeviceName", "Unknown Device")

    status_label.config(text=f"SSID: {ssid}\nDevice Name: {device_name}")


def create_buttons(root):
    char = chr(0x25BA)    
    play_button = tk.Button(root, text=char + " Play", command=play)
    play_button.pack()
    char2 = chr(0x23EF)
    pause_button = tk.Button(root, text=char2, command=pause)
    pause_button.pack()
    char3 = chr(0x23ED)
    next_button = tk.Button(root, text=char3, command=next_track)
    next_button.pack()
    char4 = chr(0x23EE)
    prev_button = tk.Button(root, text=char4, command=previous_track)
    prev_button.pack()

def main():
    root = tk.Tk()
    root.title("WiiM Mini Control")

    global status_label
    status_label = tk.Label(root, text="")
    status_label.pack()

    create_buttons(root)
    update_ui()

    root.mainloop()

if __name__ == "__main__":
    main()

Retro Casio Protrek PRT70 ‘open’ fix

Years ago I took my Protrek PRT70 for a new battery at a local mall battery replacement kiosk. Later when I collected it, the person manning the kiosk said the watch showed a ‘open’ message on the dislay and that I would need to read the manual and reset it.

The reset process in the manual didn’t make the ‘open’ message go away.

I used the watch for months afterwards, the analogue section keeping good time, but the digital section useless and annoying not be be functional.

After a lot of searching online for the symptoms I found a couple of forum posts with the same symptoms on other Casio watches – a tiny contact spring had obviously fallen out while the battery was being replaced at the kiosk – probably not noticed by the tech.

I searched a long time to see if I could find a source for the tiny spring without success – I cut a single strand of a wire that I could use as a substitute – I had to experiment with the multiple potential holes in the watch module until I identified the proper hole.

The wire hack solved the open message and I could resume using the watch again.

I still was looking out for a proper spring replacement as the bodge job was still a pretty ugly hack.

A few years later I found another forum post where some of the users had taken apart a watch spring bar – the spring inside was just about the right size and worked well as a substitute.

Following the notes on the forum post I got the thinnest spring bar I could find on AliExpress (1.3mm x 14mm). Ordered and delivered a couple of days later – probably one of the quicked AliExpress deliveries I’ve ever had!

Again the forum post notes helped – a pair of pliers at each end of the spring bar pulled it apart easily and gave up the tiny spring inside.

Even this tiny spring was too large for the spring hole in the watch module – I was able to gently screw it into the hole until it bottomed out. I gave it a quick test with the back of the watch hand held and verified the ‘open’ message was not there. I trimmed off the excess height of the spring with a pair of craft scissors and replaced the back with the screws in this time.

Awesome to have my ~25 year old faithful watch properly fixed

Fitzpatrick Bay

We’ve been admiring the bay from the Hobsonville ferry for the last couple of years as we have passed. Finially we got around to visiting this North Shore gem on the inner harbour.

Fitzpatric Bay from the Hobsonville Ferry

The track to the bay starts at the end of Balmain Road, Birkenhead. A handy dog library too!

The track is pretty good, with crushed concrete and rubble being the main material. A bit rough in jandals. After a few minutes a side track branches off to the right – it goes down to the edge of the mangroves at Soldiers Bay and a small high tide beach.

After a short climb up we arrive at an open viewpoint – to the left there is a steep concrete path down to the beach itself.

There used to be a derelict tug on a mooring just off Fitzpatrick Bay –

The derelict 61 year old tug “York Syme”, as seen from the Hobsonville ferry – Built in 1961 by Adelaide Ship Construction to a Burness & Collett hydroconic hull design (which is a series of hard chines rather than a smooth curve).
Caught fire 6 Feb 2020 while moored in Soldiers Bay. In previous incidents it had run aground in the Weiti River in 2017 and earlier in the Huaraki gulf while towing a barge in 1997.
The tug was scrapped by the harbourmaster sometime in 2022-2023

Hobsonville history

I’ve captured a few current images of the old parts of the former Hobsonville airforce base

Sunderland Lounge – used for community events including the Mountain Film Festival. Wasp Hanger in the background
The ‘Wasp Hanger’. Curently for sale, hopefully it will be preserved
Front of the Wasp Hanger
Catalina Hanger – over the road from the Wasp Hanger
The Headquarters Building – in use as a community facility
Rear of the Headquarters Building
The Fabric Bay, with the Seaplane Hanger and Armoury behind. Fabric Bay is now and eatery, the old Seaplane Hanger is office space, and the Armoury is occupied with the farmers market

A stitched photo of the inside of one of the former munitions storage buildings around Bomb Point. These are normally locked

Back Yard Project

Our back yard was pretty vanilla when we moved in, a basic hardwood deck, a keystone wall with a raised plant bed and a few random shrubs.

We engaged a local tiny urban garden specialist design company – City Botanics – to do the concept design and work. They took the existing back yard and our ‘wants’ for the garden, and came up with a fantastic proposal, all this was during one of the Covid Lockdowns with remote consultation. Design Proposal Video

Our concepts were – a journey between different living zones, paths that tease hidden sightlines, orange, yellow and red colours, all aiming to attract bees and butterflies.

Briar and I painted the fences a rich ebony black (ProCoat) at the start of the project, and also painted the deck with a Resene colour ‘Masala’

The team at City Botanics took around 4 weeks from start to finish, they will come back a few times into the future for maintenance and upkeep.

Before

Basic layout of the existing back yard
Before – looking South
Before – looking North
Before – looking East

After Initial Build

Looking North
Looking South
Looking East
Looking East – utility area and the paved seating area

After 2 Years

Elements


Pavers
Split Indian Sandstone
Update – swapped out for porcelain tiles and white lime chip at a later date
Macrocarpa Garden Bed
This will naturally silver in time
Trough Planters
Dwarf Japanese Maple
Acer
Penstemon
‘Garney Spires’
Geum
‘Mrs J Bradshaw’
Imperata Cylindrica
‘Red Baron’
Carex Comans
‘Frosted Curls’
Echinacea
‘Pow Wow White’
Update – hasn’t survived, crowded out by the Penstemon
Buxus ‘Green Gem’
Hedge
Coreopsis Grandiflora
‘Rising Sun’
Large Flowered Tickseed
These have been crowded out by the Penstemon – we have replanted a couple of times
Cape Daisy Osteospermum – a later addition to the garden beds replacing the Echinacea
Thymus X Citriodorus ‘Aurea’
Lemon Thyme
In trough planters – when rubbed it smells amazing.
Laurus Nobilus
Bay Laurel
In trough planters – Update swapped out for stronger growing examples
Dicondra Repens
Ground cover between pavers initially
It grew too high to be comfortable stepping over and was swapped out for Thyme
Update – when the pavers were swapped out the Thyme and Dicondra were moved into the beds as edge fillers.
Trachyeospermum Jasminodes
Star Jasmine
Camellia Takanini
(Blood Red) Gives a great display in winter against the back fence
Camellia Volcano (Japonica) (Red)
Planted in an antique copper with Baby Tears (silver) and Begonia
Camellia Volcano (Japonica) x 2 and 1 x Pure Silk (white) with Baby Tears
In the initial design there was to be a feature tree like another Maple. This is to bring the view of the garden into the house as we come down the stairs with the view from the living room window
Mixed seasonal colour in smaller planters for the living room window view
Wall planters with mixed seasonal colour – eg Primrose, Lobelia
Lysimachia in 3 wall planters
Hydrangea. We have experimented with Little Ruby (Alternanthera) in these planters too
Catmint – popular with our cats and others from the area
Camellia Volcano (Japonica) x 3

To Do

– Light pole with hardwired festoon lights – replacing the current solar festoon lights
– Irrigation

Home Office Setup

Working from home during Covid lockdowns has some challenges – this is what I have done in my home office to make a difference.

Elements:

Desk – a kitset desk from Treasurebox. Nothing too fancy

Floor pad – DIY project made from click together hardwood flooring – protects the carpet and provides a solid base for the chair to roll on. I saw the idea on Pinterest. It really works well!

ChairHummer. One of the better investments I’ve made. I struggled sitting for long periods in my previous chair which was a budget model, and this one is so comfortable and highly adjustable. I wish I had got this earlier.

Green Plant Wall – an artificial green wall sized at 1.5m2 from a garden centre. It gives me a nice contrasting background behind my monitors and encourages me to focus beyond which helps eye fatigue. I also have a small artificial plant on top of the PC – it was my first touch of green in the office.

Audio – Logitech z333. Sounds good for working with music in the background. The sub isn’t too big and provides more than enough sound. I also have headphones

Webcam – Logitech C920 HD. Works very well with Teams and other conferencing software. Works perfectly under Linux and has a great camera that provides a good image under most lighting conditions

Monitors – Main one is a good 23″ with a bright crisp display. Secondary is a 22″. Both monitors are 1920×1080 in a side by side configuration giving a total desktop area of 3840×1080, and use either display port or DVI. I also have a 10″ tablet on a UGreen stand to the left – this is handy sometimes for a web page display as required.

PC – an upcycled ex-lease 3rd generation i7. I’ve given it a birthday with 16gb RAM, a SSD for the main drive with a large HD for the backup and secondary working. The PC is running Linux Mint 100% with a native version of Teams for most online work. I also use RDP to connect with my Windows box on my desk at work.

Network – domestic fibre connection running at around 920Mbps. The PC has a direct ethernet connection to the hub in the office.

Work in progress / To Do List – cable management!

Cheap GamePad Under Linux

I wanted a cheap gamepad to play TuxCart on my Linux desktop – found a PowerPlay Gamepad PC / PS3 / PS2 for NZ$25 at the red sheds.



On plugging into a USB port I could see the device recognised as a Xbox360 gamepad, but with no outputs.

A bit of google searching for the fix:

Simple fix: https://github.com/fcorsino/gamesir-g3w-fix

Make a python script, save onto desktop as fixgamepad.py:

#!/usr/bin/env python3
import usb.core
import usb.util
dev = usb.core.find(find_all=True)
for d in dev :
    
   if d.idVendor == 0x045e and d.idProduct == 0x028e :
       d.ctrl_transfer(0xc1, 0x01, 0x0100, 0x00, 0x14)

Run it as sudo via a script .sh file
sudo python3 /home/graeme/Desktop/fixgamepad.py
You may need to download the Python USB interface

This initialises the gamepad with some bytes that lets it then be seen by Linux

Make a new file in 
/usr/share/X11/xorg.conf.d/50-joystick.conf

As follows:

Section "InputClass"
  Identifier "joystick catchall"
  MatchIsJoystick "on"
  MatchDevicePath "/dev/input/event*"
  Driver "joystick"
  Option "StartKeysEnabled" "off" # Disable mouse support of joypad 
  Option "StartMouseEnabled" "off"
EndSection

This stops the gamepad pretending to be a mouse.

I also installed Xboxdrv from the Package Manager as the driver, the gamepad seems a bit hit and miss with the stock xpad kernel driver.

I use JSTest GTK to test the inputs, and QJoypad to configure keyboard mapping for it.

Mixtape Volume 1 Side 1

Time to go through some random picks from my music and think about why some of these tracks are mixtape worthy. I’ve included the link below to Spotify for the mixtape content, plus the individual tracks are linked in the text too

Linky - Mixtape Vol 1 Side 1  on Spotify

Saltwater – Julian Lennon
This just invokes memories of being in Germany in 1991, this song was being thrashed on MTV and is part of my mental sound track of the time

Edie – The Cult
Not often you find a song with a good backstory, this is one of those. It also sounds great on my amp in the lounge

Skateaway – Dire Straits
Believe it or not, the first time I heard and saw this was as a pre-show filler at the Helensville flea-pit cinema. It just sounded so awesome on the cinema sound system

Take a long line – The Angels
Classic live Aussie rock music. One of my favourite groups and probably a contributor to some tinnitus. Saw them live during Cyclone Bola in March 1988. Doc Neeson passed away a few years ago which triggered a long session for me going through the Angels back catalogue

Cars – Gary Numan
Still a great track decades after it was released. Another sweet version is the live NIN version – check it out on YouTube

Out in the fields – Gary Moore & Phil Lynott
A great collaboration, a cracking powerhouse track, and a very 80s music video with Phil Lynott smoking a dart doing vocals.

Aussie Road trip with dad

My dad died earlier this year, which left a large hole in my life. I was fortunate to be able to spend some time with dad, travelling on various trips through Australia and Asia. In 1998 we flew over to Brisbane, on a trip to see dad’s ailing sister in Gladstone. This is the story of that trip. Dad’s brother Peter and my cousin Stephen came with us.

Background
Dad’s family had emigrated from the UK to Australia in January 1951 on the P&O Cameronia. They first settled in north-west Queensland on the railway at Wammutta near Cloncurry. They lived there a numer of years before moving out to the east coast on the railway at Kooltandra near Ogmore. On this trip we would revisit Kooltandra, and also find my grandfather’s banana plantation he walked away from during the great depression.

Day 1: Brisbane – Kingaroy – Bundaberg

Bunya Mountains National Park

Day 2: Bundaberg – Mackay
We pulled off the highway at Marlborough for a drink and decided to hunt out dad’s old place at Kooltandra. Further up the highway we stopped in Ogmore and found the site of the movie theatre where dad worked. We followed Kooltandra road through the scrub for a couple of kilometers south.

Peter (left) and dad at Ogmore

There was nothing left except for a wooden ‘Kooltandra’ sign and some railways infrastructure. Dad was able to point out the stump of a tree that he had a photo of surrounded by floodwaters.

The old photo
The tree in the old photo is the stump left of centre
Kooltandra, no station here anymore

Dad also spent some time poking around in a gully where a firearm had been dumped that had been given to him as a kid. No hope of finding it after all these years.

Day 3, 4, 5: Mackay, Broken River, Brampton Island

We spent a few days knocking around the area. My grandfather had a banana plantation somewhere near Eungella, so we set out to see if we could find it. A local museum gave us a few tips where some wild bananas grew within the Eungella reserve.

Possibly the site of Grandad’s banana plantation, now part of the Eungella National Park, near Broken River. Possible location on Crediton Loop Road.
Eungella National Park – possibly near Lex Creek Road off the Crediton loop Road

On a spare day we caught the boat out to Brampton Island for a look. It was still a busy resort with a nice beach. A couple of years later mum and dad spent a week on the island for a holiday. In more recent times the resort has closed and has been abandoned.

Brampton Island in the Whitsunday Islands, now an abandoned resort

Day 6, 7: Mackay – Gladstone
Capricorn Caves at Rockhampton

Day 8: Gladstone – Noosa
Epic thunderstorm in Gympie and Noosa
On the drive south, we got caught up in an epic thunderstorm as we headed through Gympie, the driving conditions were pretty difficult in the ultra heavy rain.
Later on we stopped in Noosa for the night, I walked down the street and spent an hour or two watching the anvil crawling lightening, with what felt like dozens of other people.

Day 9: Noosa – Brisbane

Review – Sunroad Altimeter / Barometer

I found this on Aliexpress, NZ$36 approx – multiple sellers with the product


My interest was a device with barograph function. Plenty of devices available with pressure trend, but I specifically wanted a barograph.

Sampling is every 30 minutes for the graph which is a reasonable interval, there is a specific barometer mode where the readings are ‘live’ but not graphed. The barometer seems consistent once it’s calibrated. One issue that has shown up is when there are significant changes in pressure, the graph scale doesn’t change – leaving historic data points ‘off chart’ until they age and exit stage left

Powered by a built in battery recharged via a USB port. Seems to last a while on one charge – mine is over two months and still going strong and showing a full charge. The USB port is charging only, while it would be cool if you could connect and harvest data… maybe another version or two into the future.

OK quality, the only concern is USB port used for charging seems to be floating rather than fixed in place. Reading the manual this could be by design. It clearly isn’t waterproof, maybe splashproof at best.

The device also does altitude / compass / temperature and humidity, plus a time and alarm function. It does have an annoying beep with every button press – nothing in the manual if it can be disabled (doubt it!)

Verdict – interesting device to keep on my desk.
I’ll update as I get to know it a little better!

Aliexpress link: https://www.aliexpress.com/item/32888977040.html?spm=a2g0s.9042311.0.0.3da24c4dpu1YUM