- Recovering My Dad’s Ransomware’d NAS: Wannacry wannabe
My dad’s Unraid server got hit by WannaCry-inspired ransomware while he was away. It only encrypts the first 5 KB of each file, so most of the data is recoverable without paying. Here’s how we worked that out, and the tool we built for the full recovery. - Chasing a Ghost Attachment ID: Fixing Featured Images After a Media Sync ImportI recently copied a batch of image files straight into wp-content/uploads/ by hand, rather than uploading them through wp-admin. They worked fine anywhere I referenced them directly by URL, but they were invisible to the… Read more: Chasing a Ghost Attachment ID: Fixing Featured Images After a Media Sync Import
- Getting Real Print Progress Into Home Assistant When Printing via TFT35

I’ve had the esp3d-homeassistant integration running for a while — it talks to a serial-to-WiFi adapter on the printer and exposes temperatures, position, and print status as Home Assistant entities. The problem is that it was originally built around printing from the printer’s own SD card: it polls M27 on a timer, Marlin replies with […]
- Configuring Marlin for My Tronxy P802M: BTT SKR3, BLTouch, and a Volcano Hotend

I’ve written before about building the Marlin firmware for a BTT SKR3 board, but that post was really just about getting the toolchain working. This one’s about the actual configuration — every meaningful feature I’ve turned on across Configuration.h and Configuration_adv.h, with the real values and the reasoning behind them, on a printer that’s had […]
- Building a Home Assistant App Repo: Timelapses, a Dashboard, Parcel Tracking, and WordPress
Four custom apps, four GitHub repos, four separate entries in my Supervisor add-on store, three or four separate places to remember to push updates to: that’s what scratching one itch at a time with Home… Read more: Building a Home Assistant App Repo: Timelapses, a Dashboard, Parcel Tracking, and WordPress - Working around USB webcam auto exposure stickingThe webcam I use for my birdfeeder stream regularly exhibits a glitch where the autoexposure gets stuck. This often leads to an underexposed image in low light conditions. Restarting the device resolves this but I… Read more: Working around USB webcam auto exposure sticking
- Scheduling cache release in UbuntuTo keep my server running smoothly, I use crontab to schedule release of cache files: This schedules the tasks to run at 5:01 am and 5:02 each day. Sudo sync is used to write and… Read more: Scheduling cache release in Ubuntu
- Selecting a ZigBee Channel
ZigBee can be a great way of handling smart home communication, without putting additional load on your existing WiFi network. Having the network separated, also means additional resilience for your smart home network, at times… Read more: Selecting a ZigBee Channel - Running DOODS2 for LAN accessible TensorFlow Object Detection

The problem: Motion detection on camera streams results in a lot of false positives, especially in environments where motion is expected from certain objects such as trees, or in this case birdfeeders The solution: Implement Object Detection Solution plan: MJPEG stream > LAN > doods2 node > shinobi/AgentDVR/HA DOODS 2 uses object detection via tensorflow […]
- Scheduling USB device reload on UbuntuIntermittently I have an issue with some of my webcams connected to my Ubuntu server. The devices disappear as if they are disconnected. I found a simple workaround for this was to run the command:… Read more: Scheduling USB device reload on Ubuntu
- Pulse Audio Ubuntu not loading correctly on bootI found that pulse audio wasn’t loading right on boot, resulting in ‘dummy audio device’. If you’re having the same issue, you can follow these quick steps to work around it. Simply running killing the… Read more: Pulse Audio Ubuntu not loading correctly on boot
- TPA3116D2 Amplifier Board Design

This post is a work in progress I’ve been building speakers for years, and always had audio electronics as a passion. Up until this point, I have completed many of my own cabinet designs, studying the acoustic sciences to optimise the cabinets. I’ve used many different types of amplifier with my cabinet designs but have […]
- Building Marlin Firmware for BTT SKR_V3

The BigTreeTech company manufacture a great range of 3D printer controller boards that can be really good upgrade options for most printers. I decide to go for one of these, as part of a number of upgrades I’m doing to my printer. I elected to go with the SKR_V3 which is their current latest board, […]
- Scripting Docker Compose UpMy Ubuntu server primarily runs services in docker containers, all configured via docker-compose. Each time I make a modification to the docker compose configuration file, I then need to run a command to update the… Read more: Scripting Docker Compose Up
- Lovelace Dashboards

In this post, I’m going to run through the lovelace dashboards that I have configured in my HomeAssistant instance. Theme The theme I have gone with is called Waves, I really like the Aesthetic. You can download it from github. Landing Page This is my main landing page for HA. I’ve designed this to be […]
- OctoPrint – My setup & Plugins
I selected OctoPrint as my 3D Printer management software. It allows me to easily remotely manage and queue my prints and has a wide range of community addons that expand the functionality Docker Config I… Read more: OctoPrint – My setup & Plugins - ZHA HomeAssistant Integration
In the past I have used a SmartLife Zigbee 3.0 Hub and the Tuya cloud in turn with the Tuya HomeAsisstant integration for controlling my smart home devices. This was too many hops for my… Read more: ZHA HomeAssistant Integration - HA Floorplan
Utilising the picture entity card within lovelace, I was able to design this floorplan control card. The first step to achieving this was to design the CAD image for the floorplan. To do this, I… Read more: HA Floorplan - My Hassio Core SetupI’ve run Hassio from RPi devices in the past and have been adequately happy with the performance. With my latest iteration of HomeAssistant, I planned to really push the limits of what I could do,… Read more: My Hassio Core Setup
- Cloudflared HA Addon
I needed a way of accessing services hosted on my LAN externally. This could have been a tricky task as my home network runs off a 5G connection with frequently changing IP address. The Cloudflared… Read more: Cloudflared HA Addon - Asus AC-56 Ubuntu 20.04 Driver
I was getting really terrible speeds from the Intel 3160 adaptor built into the PC In was using to host my docker containers. As 3 of these containers were running MJPG streams, I really needed… Read more: Asus AC-56 Ubuntu 20.04 Driver - Shinobi
Having tried various NVR solutions including AgentDVR & BlueIris, I deciced to give Shinobi a go. The setup was fairly simple, however I have done this not via docker-compose but rather installed directly onto the… Read more: Shinobi - Adding a filebrowser for easy config file editing
I am frequently editing various config files on my secondary server and more crucially, the docker compose file that sets up the various services. Using SSH and nano can be tedious and not so user… Read more: Adding a filebrowser for easy config file editing - Homer landing Page
I decided I wanted a landing page for my secondary server, from which I could easily access services hosted on that server. Homer looked to be a great and super fast to setup solution. My… Read more: Homer landing Page - Combining Octoprint and other ServicesI was running Octoprint from an RPi as a way of managing my 3D printer and accessing it wirelessly. This worked well, however I was concerned with the hardware limitations of the RPi. I also… Read more: Combining Octoprint and other Services
- Using UDEV rules to set a static location for /dev/vid* devicesUbuntu will often assign a USB device to a new address after each re-plug of the device or reboot of the host. The problem: When USB devices are reconnected or the system restarted, video devices… Read more: Using UDEV rules to set a static location for /dev/vid* devices