Internet of Poop: How (and Why) I Built a Smart Litter Tray

Naturally, we want our pets to be as healthy and happy as possible, and just as with humans, one valuable metric to know is their weight. Knowing the weight of our four-legged friends, not only helps us to verify that they have a healthy amount of body fat, but can also can be used to detect things early on that may need medical attention. As they cannot speak to us and tell us when don’t feel well, it is our duty to listen to all of the different signals we have to understand their wellbeing.

Photo of a black shorthair cat sitting.

That’s why I wanted to know the weight of my cat, Ellie. Unfortunately, she really dislikes being picked up or handled, even by people she trusts. This means, it’s not possible to weigh her on a bathroom scale, and the only datapoint I have is her yearly examination at the vets. 

I wanted to build something that would fit into her life to track her weight automatically, without any intervention. I decided to modify her litter box, so that on each visit it records her weight.

But WHY, Andy?

Okay I get it; you think it’s weird. So here are the main goals of the project: 

  • Track Ellie’s weight because I want to know how heavy she is without going to the vet
  • Learn something about how load cells work
  • Have fun building a new project
  • (Hopefully) Inspire others to try out new ideas and projects by sharing what I learned. 
  • Track the weight of poops because I thought that was funny. 

The Hardware

Rather than build the whole litter tray from scratch, I decided to build a platform that her existing litter tray would rest on. This platform would contain all the equipment necessary to detect when Ellie was using the litter and start taking measurements.

Continue reading

How To Make a Long Term Career Plan That Actually Helps

A career plan: we should all have one, right? But it can be hard to know where to start, or what you should do with it once you’ve made it. This can be especially challenging when you’re just starting off in your career – you manager asks what you want from your job, and don’t really know what you want beyond ‘just progression’.

A child stand in the countryside, holding up a map.
Photo By Annie Spratt

Today, I want to tell you a little about how I manage long term career planning for myself, and how I use that to make regular evaluations of those plans and my progress towards them.

A Plan Is a Guide to The Next Step, Not a Rigid Set of Rules

It’s easy to think of a career plan as something rigid and unchanging; a plan that you must stew over and perfect every detail, and then stick to forever. This can make a career plan a very intimidating document. How do you think it all through? How do you know if you’re on track or not? What if you’ve made the wrong plan and won’t be happy!?

Instead, think of a career plan as a framework to help you process your feelings and observations in order to plan out next steps. You can then regularly use this framework to evaluate your current path and chosen destination.

Imagine, you’ve been dropped in the wilderness without knowing where you are or how to get back. Perhaps you climb to the top of a large tree nearby and look out around you. As you look to the north, you can see smoke rising in the distance, maybe it’s a camp? You decide to head towards it and find out.

A person standing in the clearing of a forrest.
Photo by Robert Bye

After walking for a couple of hours, your progress is halted by a wide, rushing river, and there’s no way you can cross it. There’s no way to continue to the north now. It’s time to revaluate your plan, heading north was a great idea in absence of more information, but now you know about the river, is heading that way, still the best path? Perhaps you can see something else from here? Perhaps north is still the best direction, but you need head a different way for a little to find a place to safely cross and head back.

That’s the thing with plans: You need them, they give you direction of purpose, but the most successful people are always considering their plans – changing and tweaking them to ensure they’re making the best choices for the current data they have. Changing a plan is not a failure, it doesn’t mean your plan wasn’t good enough. Changing plan means you are in control and evaluating input data.

Where Do You Start?

Just like with the above example, you start not with the next step right in front of you, but with the destination, and figure out next steps from there.

Continue reading

State of the (IoT) Union 2021

Following on from last year’s IoT roundup, I thought I’d take another moment to reflect back on the current state of my smart home; how some of the previous projects have aged since first writeup, what’s new and what I’m looking to tackle next.

And oh my gosh, what a year 2021 has been! New homes, new jobs, even more working from home! Let’s get stuck in…


As I built more and more smart things, I decided it might be fun to share what I learned on TikTok. I started the AndysSmartHome channel, and so far I’m really pleased with how its going.

Home Assistant

In last year’s round up, I mentioned that I was starting to play around with Home Assistant, this year it’s the centrepiece of the whole SmartHome setup. I am super super pleased with it. Getting it to work as I want is sometimes more a challenge than I would like – its certainly not something I would recommend to a non-technical person – but i’ve really been able to achieve a lot with it and I’ve not scratched the surface.

Bathroom Fan

Continue reading

How I Hacked My Coffee Machine To Be Smart

Before the pandemic, when we started working from home, I used to make coffee a number of different ways, depending how I felt. I liked to experiment – sometimes I would use a V60, others a French Press, coffee syphon or espresso machine. This worked well on the weekends when I had time to experiment a little. However, when you need to grab a quick coffee between meetings, it turned into a real faff; there’s just no matching the convenience (if not the quality) of the office coffee machine.

My solution here was to pick up a Morphy Richards Verve filter coffee maker that I could leave running while I went about my work and come back to when it was done. I was really surprised with this machine, I was expecting to sacrifice a lot of quality for convenience, but with a little fine tuning on ground size and water quantity, its capable of producing some very drinkable coffee.  

Occasionally, though, I would get it brewing and forget to go back to collect the drink, leaving it going stale on the hot plate so I decided to see if I could connect it to my network for notifications and control.

My requirements were:

Continue reading

Adding RGB Light Strips To The Kitchen

Photo of the kitchen showing the installed lights

My kitchen has some pretty bright spotlights in it, but they’re only in use when you’re working in there – once you turn them off and leave, the room can be very dark and its kind of depressing when you walk past it. I wanted to add some warmth by putting some soft under cabinet lighting. 

I started in the Amazon end of summer sale by picking up the cheapest RGB strip lights on offer. I was a little worried that some of the reviews mentioned that the power pack was a a bit suspect and had exploded for a few people, so I decided to use an old generic laptop adapter I had lying around. I measured the power draw of the full 10m of lights to make sure it was powerful enough for the job.

The lights I bought came with an IR remote to control the brightness and colour, but I wanted to be able to control them though Home Assistant. I connected them up to a Shelly RGBW2 controller.

Because of the layout of the cupboards, I needed to fit the lights in several strips, so I bought some strip connectors from eBay, as well as an RGB strip extension cable, that I used to connect the sections together in series.  

Continue reading

B&W Cross Processing Kodak ColorPlus 200 While Pushing to 400

A couple of months ago, I put a film in my Pentex ME Super, took some photos and then got distracted for a little while. In that time, the box end on the camera back slipped out and I totally forgot what was in it.

When I returned to shooting, I assumed that the film must be Ilford HP5 plus – what I normally use – and went out to take some photos. Unfortunately, on rewinding the film, I realised that I’d made a mistake – the Film was not HP5, but Kodak ColorPlus 200.

This was disappointing because I was partially looking forward to seeing some of the photos I had taken in black and white. I guess I could have the film lab developed in colour and convert to B&W in Photoshop, but that feels wrong somehow.

That’s when I discovered, that not only had I been using colour film thinking it was B&W, but I had the camera set to ASA 400, when this was a 200 film, so now I have an entire underexposed colour film that I wish was black and white.

I contacted a couple of labs to ask if they could push process a C-41 film with no luck, I considered just having it developed at box speed and trying to fix in photoshop. I decided, though, to use this as an experiment and learn something from it (other than to pay attention to what you’re shooting with). I’d heard that you can cross process C-41 film in black and white chemistry, but searching seemed to indicate about as many people saying it hadn’t worked as had.

Then I came across this post, where the author used both the same film stock and developer as I had. In the post he had used the average development times for black and white film. I decided to do the same, developing at low temperature and doubling my normal development times from 6:20 to 12:40.

I also wanted to push process this film to compensate for my incorrect camera config, to do this I combined the “double it” approach from above, with a rule of thumb I remember reading once of “one minute per stop”, and added two minutes for a total development time of 14:40 minuets.

Continue reading

Detailed VW Golf 8 Review: Have You Tried Turning it Off and On Again?

Nine months ago, I upgraded my car to a new Volkswagen Golf 8, and I thought it was time to put together some of my thoughts so far.

I bought the car myself, with my own money, after an extensive search of multiple manufactures. VW had no editorial input into this review, nor have they seen it before publication.

Photo of the drivers side dashboard.
Does this dash remind anybody else of KITT?

Car Spec

My specific car is a Golf 8 Style with the 150HP Petrol TSI engine and manual gearbox. It is in Atlantic Blue with the following factory fitted extras:

  • Winter Pack – Heated front seats, heated steering wheel and three zone climate control.
  • Reverse Parking Camera – Camera Hidden in the rear VW logo shows you the area behind your car when reversing.
  • Park Assist – Allows it to automatically parallel park or reverse into perpendicular parking spaces.
  • Dynamic Chassis Control – Allows the car’s handling to be controlled by the driver’s selection.
  • Variable steering – Changes the steering ratio based on speed and driving profile.
  • Spare wheel – Adds a space saving spare wheel in place of a puncture repair kit.
  • Keyless entry – Allows the doors and boot to be unlocked with the key in your pocket, by lightly touching the door handle.
  • Mobile key – Allows a phone to be used in place of the car key (currently supports a small number of phones)
Photo of the gear shifter.

Purchase Experience

I bought my car in person (between lockdowns) at a local VW agent. While much of my experience will be specific to the agent rather than the Golf or VW, they are the franchise of choice for VW and form an important part of the end customer experience.

I found the experience to be a bit of a mixed bag; On entry, not knowing what I was looking for, I was very impressed with the no-pressure way that the agent showed me the range, listening to my thoughts, and helping me understand the differences.

Continue reading

How I Made My Bathroom Fan Smart

When I moved into my house, it came with this and old fan in the bathroom to keep the moisture down when you’ve had a shower, the bathroom itself is in the inside of the building and doesn’t have any external walls / windows, so the fan is really important to keeping it dry and non-moldy.

The original extractor worked well enough, but I’ve never really been that happy with it; it’s kind of noisy when running at full speed and has a trickle mode that runs it at low speed all the time – ostensibly this is to keep the room fresh, but in reality, means that the room Is always cold in the winter. It’s also not very well installed – is the case not fully closed on the fan focusing, and when I tried to close it up tightly the fan scraped the inside of the case and made an awful noise.

More recently the humidistat that makes it speed up automatically stopped working, meaning that after a shower the room would stay damp for hours afterwards. I’ve tried taking the fan apart and cleaning it in case it was just dust and grime of the sensor. But that didn’t help, so I set about replacing it. This being 2021 with nothing better to do, I decided to make it smart and control it from software.

After some research, I used a Manrose MF 100T inline fan, looking down the spec sheets, it is quieter, more electricity efferent and moves more air than the existing solution so seems like a great fit.

Photo of installed extractor fan in attic with inlet and outlet tubes.

To control the fan, I used a Shelly 1 relay – I’ve used some Shelly 1 PM relays in a couple of other places that I’ll write about soon, and I’ve so far been super happy with their ease of use and reliability.

It was all connected up as shown in this schematic:

Continue reading

Finding Your Happy Place: Demystifying the Challenges in Frontend and Backend Development and How You Fit In

Software engineering is a very broad profession with many different types of work you can do, each with their own opportunities and challenges, but have you ever wondered what those opportunities are? Perhaps you’ve feel your work isn’t challenging you enough, or your not motivated but what you do.

A picture of a woman working writing code.

Photo by ThisisEngineering RAEng on Unsplash

In this article, I want to take you though some of the different places software engineering can take you, and what the opportunities, challenges and rewards are for each of them. Hopefully by the end you will be more equipped to understand the challenges and opportunities available to you and how you can shape your career choices around what excites you.

Front End & Back End?

You’re probably familiar with the split into “frontend” and “backend” engineering, you’ve possibly seen somebody exclusivity describe themselves as a frontend / backend engineer.

Separations like this are a good start, and we tend to think we have a pretty good handle on what they mean, but I don’t think they tell the whole storey. This separation makes the assumption that each of these categories is a fundamentally different role. However, the core challenge and activities in all of these roles is the same; you’re using your creative human brain to find solutions to problems and convert those solutions into code.

Or as a former manager of mine put it…

A post-it note reading "Design spec = Use C# to build epic s**t (secure, scalable, blah, blah...profit!)"

The biggest difference between front and back end development sits in two areas: The tools used to do your job and the problems you will be solving. Let’s dig into each of those a little deeper to see how they can effect the work you do.


No matter what you do, you probably use some kind tools, and those tools will be highly specialised to the task you are doing. For a mechanic these tools may looks like wrenches, screwdrivers or diagnostic devices. But for a software engineer these are more like the programming language, operating system, development frameworks and even development methodologies.

But here’s the thing: You are not your tools.

These tools exist to help you get your job done and may be different depending on what that job is. You shouldn’t allow yourself to become limited or defined by the tools you use. You chose them, you learned how to use them, but they are but an artefact of the problem you are solving not the definition of what you do.

The Problems Being Solved

The other difference is the actual problems you are trying to solve – the challenges you are facing on a daily basis. I’ve heard a lot of engineers over the years talk about how they don’t feel like their project is providing them with “real challenges”.

A image of a man and a woman working together on a computer

Photo by heylagostechie on Unsplash

For developers who work on the front end, this can often sound something like “all I do is call and API and render it on the screen; I don’t do any ‘real engineering’”. Whereas on the other side it can sound like “All I do is manipulate data and pass it to the UI; I’m too far from the real code that the user sees”.

Often when feeling this way, there is challenge available to them – but it’s not challenge that excites them, it’s not work that motivates them to get out of bed in the morning and go to work.

If this sounds sounds like you, perhaps you too are not solving challenges that motivate you. Understanding what challenges are available in different roles and knowing which ones inspire you most will empower you to make the right next move in your career (weather that be a new job, or a discussion with your manager to ask for different activities).

The Challenge Spectrum

So, it seems that a traditional frontend vs backend definition is not enough to articulate the different choices you can make to position yourself in a place to solve exciting problems and do your best work. Instead, I want to introduce you to the Challenge Spectrum.

The Challenge Spectrum spans from data & platform challenges to human & interaction challenges, taking in all possible roles you can occupy along the way, all of them as just important as the others. At several points along the spectrum, Ive annotated some example challenges you may face at that location.

Continue reading

State of the (IoT) Union 2020

It’s been a little while since I first started building IoT gizmos for my house and I’ve continued to improve and add to them so I thought it was a good time for an update on how some of the projects have fared, what’s new and what I’m thinking of for the next year.

2020 has been one hell of a year – My team and I have been lucky enough to be able to continue working from home and even managed to ship some products along the way. However, spending so much more time at home has caused me to spend more time thinking about my environment. Small irritations are magnified into daily hassles and new issues present themselves, giving opportunities to optimise my work from home life with more projects.

Smart Heating

Back in February I wrote about how I had modified my central heating be smart without damaging the property or replacing any of the components. This project was my first adventure into 3D printing and the ESP8266.

A year on, the system is still installed and running my heating on a daily basis. I am very pleased with how well it’s worked with only a few changes:

  • Missed MQTT messages – In the first few weeks, there were a few occasions where the heating would not turn on or off when instructed. When I investigated, it seemed that MQTT messages would not always be sent to the device when published. To work around this, I added code that forcibly checked the state every 10 mins and would perform the missed action if needed.
  • Restore previous state – In the original version of the project, the device would take the latest value published to the MQTT feed as the source of truth. However, this was problematic as if a new message was published while the device was not available for some reason, it would run out of sync – meaning that the heating would turn off then instructed to turn on and vice versa. To fix this I used the ESP8266’s SPIFFs storage to store the current state of the heating toggle and restore it after device restart.
  • Timing – The timing to switch the heating on and off is no longer powered by IFTTT, instead it is now powered by automations in Home Assistant, which allows me to create more complex programs.

Digital TV Recorder

In May I wrote about how I used Kodi and Tvheadend to build a TV recorder. This is still running and recording TV shows. I’m very happy that I can stream its recording through my home and watch them in the kitchen while cooking. I’m also really happy with the massive saving I’ve made by cancelling my paid TV contract. It’s not been without it hiccups though:

  • Live Pause – For some reason pausing live TV does not work as expected. I can pause and restart the broadcast , but a few seconds after restarting, playback fails and cannot be resumed. I don’t really watch much live TV, so I’ve not yet been sufficiently annoyed to investigate this.
  • Start-up Issues – On bout 50% of start-ups, Tvheadend fails to start and cannot be used. To resolve this, I have to manually stop and restart the service. I haven’t yet looked into what is causing the issue, but its high on my list.

Living Room eInk Display

The living room info display continues to function, and I use it a lot to know if it will rain when going out. However, with Apple’s acquisition of Dark Sky and subsequent deprecation of the API, I will need to update it at some point in 2021 to use some other data source. If you’ve any good suggestions of where to get similar information for, I’d love to hear them in the comments or on Twitter.

Air Quality Monitoring

I’d already been monitoring my air quality with my Arduino & Raspberry Pi for a while before I Wrote about it. Unfortunately, while building it a new case, I accidentally damaged the Raspberry Pi and OLED screen. As I always wanted to improve it, I descried to rebuild a whole new version using an ESP8266, utilising deep sleep mode, to create a device that is significantly smaller and more power efficient.

I was pleased with how neat this new version was when in a nice 3D printed box. I was very happy with its crazy low power consumption between air quality samples every five minutes. However, it has an issue – the temperature & humanity sensor is too close to the gas sensor, meaning that it suffers crazy self-heating to as much as 10c, which made its data very unreliable.

It still works as a volatile organic compound sensor, but I will need to re-think the board layout to get reliable data from the temperature and humidity again.

Home Assistant

Over the year, I added yet another Raspberry Pi to my home, this time running Home Assistant. I’ve been really pleased with the power of automation I’ve set up with this. I’ve used it to automatically start the Roomba if I leave the house between certain times, automate the outside lighting and provide more powerful timing to the smart heating project.

I also added a Conbee Raspbee II to the Raspberry Pi, to allow it to communicate with Zigbee devices. I now have a Xiaomi temperature sensor in every room and a set of Ikea Trådfri lights in the bathroom. Eccentric as this may seem, its allowed for some really nice and inexpensive luxuries – such as turning the on heated blanket in the bed before bedtime if it is cold in the bedroom or adding mood lighting in the bathroom when you want to relax in the bath.


I’m pretty pleased with some of the things I did over the last year, but I’m looking forward to building some even more cool things in 2021 and sharing them with you.

With working form home continuing to be necessary for the time being, I want to focus on improving my environment to keep it fresh, interesting and comfy as well as dealing some of the pain points while working. I’m going to be adding a lot more automations with Home Assistant as well as building out my smart lights through a const effective use of Hue and Ikea lights.

If you have any cool suggestions or ideas that you think I might be interested in, drop me a comment below or on Twitter.

Hope you have a great 2021! (Or at least a better one than 2020)