Apr 20

Mat’s Mega 2560 Pro Breakout Board

Here’s a new breakout board I have designed and built. If you are interested in any of the following, then read on:

  • Wired ethernet for home automation. Sure the ESP32 or ESP8266 are great, but I need to power the device from a central location (yes, this breakout board can use Power over Ethernet) and would rather not have devices that depend on a wireless connection inside my walls.
  • a large amount of IO for a low price (48 pins, £5)
  • MQTT and cheap sensors
  • nice tidy wiring in the home

So I’ve never even used a breakout board before, but I felt compelled to make my own; here’s why.

Basically I wanted a way to get as many IO pins down a good number of CAT5/CAT6 cables as possible, for connecting up many PIRs, temperature sensors, individually addressable LED strips, on-off controls for devices, light sensors, etc., all connected directly to one location e.g. in a wall nearby.

So, the idea. The “Mega 2560 Pro” is a newish board I discovered recently, not an Arduino Mega as such, but a development board based on the same chip, with the same IO (54 pins), and recognised as an Arduino Mega in the Arduino IDE. The key difference is that it’s much smaller (38x55mm) and cheaper (under GBP 5). Of course, with that many pins at that size, it’s not breadboard compatible, hence my breakout board.

Fave new development board: the Mega 2560 Pro

I actually discovered this board after buying something that looks quite similar called the Mega 2560 Core. The Mega 2560 Core is great but doesn’t include the CH340 chip, thus needs connecting to your USB via an additional, separate FTDI adapter. Not a major hassle, but this “Mega 2560 Pro” is the same size and includes USB support via a micro USB connector: perfect.

Here’s the spec:

  • 48 of the 54 Mega pins broken out into RJ45* sockets for permanent wiring of sensors via CAT6 cable in the home
  • Each CAT6 cable also carries power, selectable between 3.3 or 5V (individually selectable for as much flexibility as possible)
  • PoE and ethernet connected
  • Power via a 5V buck converter, quickly replaceable if it ever dies. (Screwed into a terminal block.) This allows us to use things like old Dell laptop chargers running at 19.5V to power these things from a central location
  • Can connect USB whilst it’s powered, as I’ve included a Vin lift button that allows you to isolate the Mega from the input power
  • 18 pins are also exposed locally to pin headers AND terminal block connectors for desk tinkering (development) and semi-permanent installs respectively
  • Every single CAT cable core is labelled with corresponding Mega pin (e.g. white-green on connector 4 goes to pin 16 or whatever)

(* I think technically if not used for ethernet, RJ45 jacks are called 8P8C connectors.)

It has space for my favourite cheap ethernet board, the Funuino W5100 board (GBP 4 each) and provides a one-stop-shop for prototyping and permanent / semi-permanent installs.

The reason I chose not to break out every single pin is that a) I will always use the ethernet connection, so didn’t bother to break out the pins used by this, and b) I wanted to keep the size down and 8x RJ45 connectors seemed sensible.

For the same reasons, I chose to break out only 18 of the pins locally. After all, if you need to prototype using different / more pins, just use the full size Arduino Mega.

As well as the 18 onboard pins, we also have GND, +5, and +3.3V headers for direct power. Again both by pin header (e.g. for Dupont connectors) and terminal blocks.

RJ45 (8P8C): Each RJ45 takes 6 pins from the Arduino and adds in two pins for power to the remote device(s). The voltage is selectable by jumper: 3.3V or 5V. In reality of course you can’t run 5V over a long cable without introducing too much voltage drop, but this depends on the load and many sensors cope admirably at 5V over 10+ metres: great for ceiling / wall / door / window sensors.

Power: The breakout board provides options for a regulated 5V input OR 6-20V, again by jumper; the latter routing Vin to a little buck converter I seem to have bought lots of called the “Fulree” 5V / 2A switching power supply. It also has a microswitch (double throw latching push button) that allows you to “lift” the Vin to ensure the whole board is disconnected from it, making it easier to plug your USB cable into the Mega without removing the Mega from the breakout board.

Labelling: Finally I wanted the board to be fully labelled, to make it as easy to wire-up as possible. So the DIY PoE terminal blocks are labelled with the words “Blue” and “Brown” to help you remember which is GND and +V, and the pin assignment for each core of the CAT6 cable is labelled according to the colour of the core, assuming you wire your CAT6 to the more common T568B standard: white orange, orange, white green, blue, white blue, green, white brown, brown.

Without further ado, here is the board layout. As mentioned above I don’t have pics of the finished products, as I’m still waiting for them to be shipped from JLCPCB in China, but I’ll update when I do!

Jan 19

We finished our first bonded screed

How did you spend your Christmas 2018? We spent it finishing our bonded screed.

One electrical explosion (and a shipment of a £70 capacitor from the US), one broken wrist, a small amount of blood, a tonne of sweat, and many tears later, our rear basement bonded screed is finished. Actually the process was spread across a couple of months because we had to pause works on the self build due to this little thing called “running a business” (nothing to do with building).

See my previous blog post about the beginnings of our journey into waterproofing a basement.

Hoping it will end up looking a bit nicer than this

Broken wrist?! Yes, Anna managed to get her hand stuck in the forced action mixer. That thing is designed to ensure you don’t put your hand in, it has a safety cut-out if you try to open the lid, etc. Anna managed.

When it’s your first bonded screed – scrap that – your first ever screed… and it’s your own home, and you’ve no real experience doing anything like this before, you tend to get obsessed with making sure you don’t screw up. Every fine detail feels hugely important. The correct ratio of sand to cement to water – probably second nature to experienced flooring contractors – becomes this thing you have to research, plan, prepare, and test.

When I cook, I take a recipe from a book or the web then I re-work it according to how I need the information presented to me during the stressful stages of being in the kitchen.

Yes it’s a little OCD. But it works for me.

I find that recipes tend to skip over important details, move onto the next step assuming that “finely slicing 10 onions” will take only 3 minutes, etc., hence I need to fully assimilate the instructions and re-write them before I even start to cook. I’m a terrible bore to live with. Hopefully, my diners enjoy the end result.

I had to turn screeding into a recipe before we even got close to turning the mixer on. The benefit was that we bought almost exactly the correct amount of sand for the job (40kg short, based on over 3 tonnes of sand), and everything went smoothly – aside from some little accidents along the way.

To be fair, a bonded screed is a little more complicated than a normal screed. And our bonded screed was made worse by the substrate, concrete formed into a microcosmic version of the Rocky Mountains. An absolute nightmare to clean and clear dust, which is a critical part of getting a good bond.

Yes, I wrote a recipe for bonded screed. Jamie Oliver eat your heart out.

I won’t outline all the steps in this post – hoping to put a youtube video together as we got loads of nice footage, but here are some pics from the job:


Aug 18

Self Build – Basement waterproofing with the Delta Cavity Drain Membrane system

Anna. Standard expression on building site.

Firstly – thanks to

  • Liam from Ardex. Great advice – stretching far beyond product advice. Bought my second mixer (Baron forced action) after a conversation with him!
  • Alba from Prime Construction, our Building Inspector. Yes, seriously. They have been amazing with us, not complaining when our 6 month project turned into a 3+ year one. Alba has been so helpful in providing assistance on the best ways to do things, and of course signing-off. It’s very important to us that we do things the right way, and Alba has stepped-in to so many “situations” and helped us when other parties have made life difficult for us
  • Graham from Stonehouse Property (basement waterproofing). We didn’t go with his quotation for waterproofing the basements, as we decided we could do this ourselves with a lot of care and research. But he came to our site and gave us a lot of friendly technical advice on which I’ve based a lot of our plans in the last year.
  • Ben at Newton Waterproofing. If we could do it all again, we’d go with Newton. But our builder left us with a lot of equipment from Delta, so we decided to stick with Delta to maintain consistency.
  • The tech team at Delta Membranes
  • Screed Giant – for product advice and help. Placing our first order with them tomorrow.

How are we doing this?

We are building a home ourselves. It’s not plain-sailing. Anna and I have almost killed each other about 6 times onsite so far. This week alone we have spilled blood on bits of metal sticking out of the ground twice. We laugh, cry, and fight. We spend entire evenings trying to place an order for the correct products. We spend our night-times researching the “correct” way to do things. We are not experienced. For example, I laid out underground drainage pipes yesterday for the first time in my life. I obsessed for so long about getting the correct falls for WC vs shower that it took me 3 hours to lay one section of pipe. It’s fun.

The basement, before the roof went on

What are we doing?

Our home build has turned into a self-build. It started with us hiring a basement company to dig a front and rear basement and complete demolitions and structural works inside two floors of our house, a five-storey townhouse in London. That was three years ago, and the basement company left the project in a bit of a state. Structurally it was signed-off as sound, but a lot of remedial works were necessary.

(When I say a lot, imagine having to dig up about 20 skips worth of concrete and start again, doing it yourself.)

The basement company we used was basically a glorified groundworker who did all our demolitions and sub-contracted various installations of steel, brickwork, and the topic of this post: the installation of a Delta Membrane waterproofing system.

This post is about how we ripped out the latter, and how we are re-installing it with a number of additions, now that our ground floor extension is watertight – more or less.

For readers who don’t know what a basement waterproofing system is, or how it works, here’s the general concept.

General basement waterproofing concepts

When you build a basement, your walls and floor are up against soil. Soil gets wet, and eventually comes through the walls. This water would ruin the internals of your basement unless you deal with it.

There are two general concepts: keep the water out, or let it in – and manage it. Although our basement is really dry because we didn’t hit the water table (we’ve had two years to test this – looking at the walls and sub-base inside it’s bone dry even after flash-floods) nevertheless one is required in the UK to install a “cavity drain membrane system”, i.e. the second way: manage the water, don’t fight it.

Water tables can change, underground streams can be redirected, or the environment can change in 15 years time – so this is a reliable way of waterproofing a basement.

Also in my limited experience of trying to keep water out of buildings – forget special paints, damp proof injection systems, and basically forget anything designed to help stop water coming in. Let it in, and deal with it!

Finally, when dealing with old brickwork in our existing house, previous occupiers have done terrible things to the brick, involving locking-in the moisture which causes damage over the years. This wasn’t an issue when the house was built, when open fires were the norm and triple-glazed argon-filled windows didn’t exist! We will be putting this right.

How the Cavity Drain System works

The modern waterproofing system works like this. Instead of “tanking” the walls – applying waterproof render and hoping to keep water out, instead we install the following:

  • Plastic egg-shell like sheeting on all walls and floor. Egg-shells facing towards walls and floor, allowing water to drain down the walls onto the concrete sub base. This is called the cavity drain membrane. It is fixed with special rubber seal plugs into the concrete walls to hold it up. These plugs have screw holes for later attaching battens for stud walls. The rubber seals stop water getting out of the holes that were drilled in the membrane; the water is dripping downwards and takes the path of least resistance. It’s a clever design.
  • A big hole in the ground filled with a massive plastic bucket to collect this ground water, with a pump that pumps the water out into your sewage system. This is called the sump and pump. A decent system has dual redundant pumps, backup batteries, etc.
  • Various monitoring and protection systems to ensure that you are alerted if the pumps fail.

There are two ways of collecting the water into the sump. Some installers simple allow it to trickle along the ground into the top of the sump (additionally you can add pipes to various points in the ground that also feed into the sump, e.g. for larger areas and to prevent excessive pooling) OR you can install a set of perimeter drainage channels around the room, that lead towards the sump. Water on the floor finds its way to the plastic drains and into the sump.


Delta MS20 – thick egg shells for the floor

Delta MS500 – thin egg shells for the walls – shown here with a plug

The benefit of the perimeter drains is that any debris over the years can be flushed out, and the channels can be inspected. Note, all of this is installed underneath your floor insulation and screed.

The ground membrane is more substantial in thickness and size of egg-shell than the walls, because it must resist any uplift due to water pooling, also it needs to be structurally capable of taking the weight of the flooring without collapsing.

Why are we – the homeowners – doing this?

As with all things, you can install it the “basic” way, or the “really good” way. Our builder didn’t do a proper job of clearing the rubble from the concrete sub-floor before installing the membrane. We found cigarette butts, loose rubble, and all sorts when we lifted the membrane. After our basement company finished, we took the decision to rip it all out and re-install.

Despite the fact our builder’s sub-contractor is registered with the company who makes the system they installed – Delta Membranes – it doesn’t change the fact that the job wasn’t done well and indeed the people before them didn’t prep the area properly.

We had another company come in to quote the work, and it was in excess of £30k.

Things we want to do differently [better]

After a lot of reading, discussions with professionals and experts in the field, and testing, we are in a position of great confidence that we can now re-install the waterproofing system to a very high standard, certainly higher than it was done by the basement company we had in to do the works:

  • Completely wash-down all surfaces before installing the membrane
  • Spray the concrete walls with a special lime-resist substance. Lime from new concrete clogs up passages. This doesn’t completely stop lime coming in, but it holds it off for a really good amount of time, e.g. 10 or 20 years.
  • Install the perimeter drains mentioned above
  • Fit more plugs (fixings) in the wall membranes per square metre than were fitted before. The plugs drill through the membrane into the concrete wall, each plug has a special rubber seal
  • Lap the membrane up under the soffit to ensure water coming through at the construction joins at the top is caught properly
  • Install a second layer of membrane up against the first (with different dimple size so one doesn’t fit into the other) – just for the first 500mm of wall at the bottom, in the utility room which will be warmer and more moist than other areas, in order to catch interstitial condensation from the moist air in the room
  • Completely level the floor with a waterproof bonded screed, so that water finds a relatively equal level across the area of the floor, and into the perimeter drains. Previously the builder had left the concrete sub-base with a lot of variation in level – the lowest point was about 70mm lower than the highest point! The membrane egg-shells for the floor are 40mm, so that level of variation was unacceptable to us.
  • Pour concrete around the sump (actually both sumps, see below) as well as a good concrete base for both sumps. Previously the sumps were surrounded with soil. They don’t have a habit of caving-in with the pressure of soil and they are built to withstand a lot of mass, but still – concrete around the whole lot is recommended.
  • Build my own alarm notification system, using the high level alarm floats that come with the pumps. The alarm system you buy is £200 for the most basic thing that beeps – with an arduino, cloud-based server, and battery backup system I plan to design and build my own notification system that will tell me about any problems if I’m sitting on a beach in the Bahamas*. I am a home automation nut, and am going to integrate this into my whole-home automation system based on openHAB and MQTT.
  • Do a better job of plumbing the discharge pipes. Previously, standard waste pipe was used, and the temporary fitting supplied with the sump was used instead of a high pressure fitting. Discharge pipes should be Class C or above – this refers to how strong they are in terms of withstanding high pressures of water. Believe me – I’ve tested it – and completely soaked myself (!) – the water coming out of these pumps has some serious pressure behind it!

* I have never been, nor probably ever will go to, the Bahamas.

What we’ve done so far

Here’s what it looked like after our builders left it:

After removing the MS20 from the floor – Anna looking deflated

We took the drastic decision to dig up the old sump out of the concrete base and re-install from scratch. We found a lot of wrongness in the way they were installed.

That’s the hole – yellow thing top right is the sump that came out of it

Here’s the sump after we took it out – looks a bit worse for wear

Importantly, we also decided we wanted to have a toilet, shower, and utility room in the basement (previously we didn’t plan for this), and it turns out you must install a separate sump for foul. The groundwater sump cannot be a sealed system, but the foul sump must be, so their function cannot be shared.

Cutting in the holes for new foul pump and soil pipe trenches

So to date we’ve done the following additional works ourselves:

  • dig out the sump installed by our builders
  • scabbled the whole floor to remove high points, to minimise variation in the level. We used a rotary scabbler / scarifier (difficult to get hold of). See below pic. That was a horrendous and painful job
  • dig a new hole for a foul sump
  • dig channels for foul drainage to various points in the room
  • install new underground drainage, discharge pipework, cable ducts to both sumps, and a vent duct for the foul

Sounds simple – but the above has, in total, been about 4 weeks of solid work with 3 labourers. Excluding the removal of membrane and sump, and excluding the Scabbling Marathon. (Scablathon?) Back-breaking work I tell you!

Floor planer / scarifier / scabbler

New foul sump installed ready to test

Grey pipes are high pressure 2 inch (Class C) and white pipes are for vent and cable ducts. The foul pump shown here has cable duct, vent, and 2″ discharge. The other two pipes come from the groundwater pump the other side of the room

Tomorrow we plan to back-fill the trenches and sump areas with concrete, then we’ll make a start on the bonded screed.

Bonded Screed

We have been researching bonded screeds now for over a year, including many discussions with the good people at Ardex – ardex.co.uk – who make an excellent product that can go as low as 20mm thick and as high as 50mm. Actually we’re advised we can take it slightly lower and a good bit higher than the published thicknesses with judicious mixing and application.

Thanks so much to Liam at Ardex who has helped us hugely and chatted on the phone to us a number of times. He told us early on that we should be using a forced-action mixer to mix this screed, not a normal cement mixer. The consistency needs to be extremely good for a bonded screed at 20mm.

After about 9 months of searching, eventually we found a second-hand Baron mixer on Ebay in mint condition for £900 – about half its retail price and never used. Super. Again – I had a really useful conversation with the manufacturer Baron to learn about their different products and settled on the M80. It has the same motor as the larger version, but is suitable for smaller jobs. Actually ours is a medium sized job, but we plan to do it in sections. Look at this beauty.

Thanks to Baron – www.baron-mixer.com for the technical advice, even though I told them at the start I was hoping to pick one up second hand, they were SO helpful over the phone.

Baron M80 mixer

It may be possible to do a normal sand / cement screed, but such a screed isn’t really properly waterproof. Ardex A38 is spec’d for e.g. swimming pools. Actually after another discussion with Ardex tech support (who are extremely helpful) we have settled on Ardex A29 which has a 90 minute working time (longer – good for people who have never screeded before!) and is a lot cheaper than the A38.

A29 for bonded screed

Before applying the A29, we need to make screeding rails (so as to be able to screed to a perfect level and flat) – that should take a couple of days of messing around with bits of wood and laser levels. The Ardex data sheet says we should make up a grouting slurry to allow bonding using two other products of theirs.

We are buying the Ardex from an excellent company called Screed Giant – https://www.screedgiant.co.uk/ – thanks for the tech support and really helpful customer service guys!

After that, we will put the membranes back on the wall – not an insignificant amount of work as well! Once that’s done – we have a waterproof basement. Hurrah!

Other details

I haven’t yet mentioned that our basement also has steels under the soffit. These don’t actually hold the concrete roof up. The roof was spec’d as a suspended concrete slab, but we had these spec’d by a structural engineer and fitted by a different steel company after our contractors left due to – ahem – issues with the suspended slab. So they are a “belt-and-braces” attempt at making the slab above a bit more beefy. They are certainly putting my mind at rest, even if they aren’t definitely required.

Cost of this little project

We plan to do this work to both rear and front basements. Also because the LG floor (lower ground) of the existing house is below ground level, I want to do the same to the internal house – a large space. It’s a brick-built house, but the same system works. We will drain the LG floor into the rear basement sump. The front basement has its own water sump.

I costed the work out just for the back basement and guess what – it’s around £11,000 including labourer time at 60-100 quid a day per bloke. (Plus all of our time personally.)

So yeh – by the time we’ve done all this work ourselves it will be around the same cost as the professional waterproofing company. That said, much of this cost is to fit a new foul sump and pump and to level the floor. None of which were included in that quote. So we are spending as much, but doing a lot more.

Apr 18

The MatDuino – project ideas

Hmm, maybe I shouldn’t call it the MatDuino. But I need a name for this project.

It stems from my recent musings about how wireless devices in the home, specifically #IoT devices, are subject to so many more potential problems than wired devices.

Things that got me thinking recently:

  • Numerous comments on my YouTube videos about how I should consider using the ESP8266 instead of Arduinos wired into my network, each one I have rebutted;
  • Reading this article on the Automated Home site, which is on the subject of inconvenience and security of 2018 Smarthome devices, not really wireless – but my thoughts went off at a tangent;
  • This great video by Jon Oxer of SuperHouse.TV, who argues “wired over wireless every time”
  • This chat on openHAB community which started out as “can someone recommend an RGBW device”, ending up with the inevitable “hmm, you should probably build your own, given what you need”
  • Finally, culminating in my Yale Home Alarm being jammed from 8am this morning. This refers to the connection between wireless sensors and the bridge, which I understand works on 433MHz RF. Thanks to @PenTestPartners for writing this superb article on the subject: Alarm Systems Alarmingly Insecure, Oh the Irony

I have always loved the combination of Arduino Nano and Funduino (the W5100 network breakout board) for connected devices in the home. I’m talking about everything in the DIY #homeautomation home, for example RGBW strip drivers connected to the network, PIR sensors, temp / humidity sensors, etc.

I find housing both boards in a single enclosure is cumbersome and really takes away from the “nano” feel. My rule of thumb is: can you fit it in an electrical backbox? Yes, then we can start embedding low voltage things around the home (assuming you’re designing your house from scratch – I am).

Similarly I love the Mega for its vast IO count, and likewise one of these things with a W5100 breakout board in a wall backbox is a bit too tight for space.

Enter: the MatDuino. (Better names on a postcard please.)

The MatDuino, and the MegaMatDuino are two boards that exist in my mind – but are next on my project list – with the following design decisions:

  • Based on ATmega328 and ATmega2560 respectively. I’d be using the TQFP package, not the DIP – small is the name of the game!
    • So yeh, need to learn to solder uber-small things
  • PoE networking.
    • Will trade things like the onboard serial for PoE network using WIZnet W5500 or W5100. (Which to use? Does Arduino support W5500 in the default Ethernet library? I need compatibility with libraries, more than newness, on this one.)
  • No serial / TTL onboard, but instead, the smallest 4-pin interface practicable, which we can plug a cheap USB TTL programmer into, for bulk programming of boards (i.e. sensors across the home)
    • This saves space usually taken up by the Nano’s CH340 chip and the micro USB port, and the Mega’s chip and humongous USB port! (WHY ARDUINO, WHY?!)
  • The board will expose as much IO as humanly possible. This means we will use serial TX/RX (i.e. we can use Pin 1 in our projects) as long as we add a tiny SMD toggle switch to isolate this pin during upload of sketches
  • No interfaces for wireless – just pure IO for sensors, displays, etc.
  • The thing should be really quite small. First version won’t be too small, as it needs to work. After that, we miniaturise.
  • Oh, did I mention PoE? You know I’m crazy about including a Silvertel PoE chip so we can have 802.3af powering our projects. Take two bottles into the shower? Not me! We need one cable powering these things in the home, and it’s going to be the same one as the one we already need for a wired network device, dammit.
  • Some kind of header layout that allows for adding top-boards. I’m thinking, my wall MQTT wall control panel (ATmega2560), my yet-to-be-built multisensor (ATmega328), and whatever else. Flexible form factor for these devices should be supported.

Anyone else interested in this build?

Sep 17

Review of Crunch Accounting

Crunch Accounting provides me with an amazing accountancy service and superb web app for me to manage my everyday business accounts.

Yesterday I went on one of my regular “diversions” down an online rabbit hole, and ended up on the website of accountingreviews.co.uk who seem to provide detailed reviews of accountancy software and services.

I was surprised to see quite a bit of negativity towards my own accountant, Crunch, both in the main article (a review of Crunch) and an almost suspicious amount of scathing responses in the comments section. Experiences here seemed to be genuine, although there was a general lack of detail, citing “poor customer service” and other generic negativity.

As the internet warrior I am* I set about to try and provide a balanced view, so I posted on the website accountingreviews.co.uk. Scroll down to read my review / comment.

I checked back a day later to find my comment had been removed.

Then I looked to see who runs the site, and it’s a competitor product called Pandle.

* /mild sarcasm

The owners of this site purport to put an “independent” view across. On their about page they state:

“Whilst the website obviously helps promote our wonderful cloud bookkeeping software, it’s also a valuable resource for people looking for choice and information about different packages.

We use independent reviewers for our reviews, to give their opinions on each of the products to help potential users make a more informed decision to select the package that fits them.”

I wouldn’t for one minute wish to suggest that this website is claiming to provide independent reviews, whilst at the same time moderating (removing) any comments that place their competitors in a good light, subtly crafting a negative advertisement against competitor products.

I must admit the original review on the blog of this Crunch did seem detailed, but glossed over a lot of points and tended towards being negative towards Crunch, rather than checking facts or being rigorous in any way. See my comment below for further detail / rebuttals.

Anyway, as my comment there was deleted, I thought it only fair to make my comments public on a website that I run, so it will say online forever 🙂

Review below (mysteriously disappeared from the accountingreviews.co.uk run by competitor company Pandle)

For the sake of balance, here’s my view. I run a small limited company providing photography and IT services. 3 years ago I was looking for a cloud based accountancy firm, a one-stop-shop. A web designer friend of mine recommend two or three (based on his mates’ comments), I did the research, and I went with Crunch.

I’m extremely impressed by the software which bridges the gap between standard accountancy software (which also means you need to hire an accountant) and the accountant themselves.

For me, an all-in-one service providing software and accountancy services is like gold-dust, and the review above does not recognise this. Instead it tries to shoe-horn web app into the category of other accountancy applications. It’s a different service altogether.

The comment “overpriced compared to other options available” needs citation. I suspect the reason there is no example is that the other apps being referred to often don’t combine accountancy and support under one roof. So yes – not a fair comparison.

For example, you can’t simply say “A small amount of reports (5 in total), although there are some graphs on the different tabs of the web app.” … that’s complete rubbish. Pretty much every page on the site (which, by the way, is perfectly logical and easy to navigate) has snippets of relevant, context sensitive information that constitutes a report. Take the homepage for example. 1) a useful timeline summary showing various HMRC deadlines such as VAT payment / submission, corporation tax deadline, companies house filing deadlines, etc. (How many accountancy applications have that? None, because this is information specific to your business as well as up-to-date HMRC changes etc.) 2) Your tax liabilities are shown on the front page, so you know what your running totals are, and so it’s easy to make sure you don’t withdraw too much money or make silly decisions. 3) Sales and expenses totals for the period are shown. Invoices are split into drafts, outstanding, and overdue. Do those count in your “only 5 reports” comment? Doubt it. And that’s just on the front page of the app.

The additions in red are clearly designed to draw the reader to the conclusion that Crunch are mischievous in some way, but actually they don’t provide a good balanced view, in my opinion.

Secondly, how many accountancy apps let you do the reconciliation with your bank statements which are automatically loaded into the app itself? Maybe some do – but I suspect the cost (probably high?) of this certainly hasn’t been factored into the comparison presented here.

The review above expresses unfounded scepticism about whether the expenses app is a novelty or actually useful. I use the iphone app almost daily. It works a charm, and it means I don’t have to ensure receipts are kept in a safe place, and I don’t have to spend hours at the end of each quarter inputting receipts. This is a superb service, my receipts get attached to new expense entries (which are added under the relevant cost code depending on what the receipt was for) and I can access them online later. I am hugely surprised that this was dismissed as a novelty! It’s a MASSIVE time saver.

How many applications allow you to schedule late payment reminders, based on whether someone has actually paid you or not?

I just don’t recognise the negative comments made in the discussion here. Having dealt with Crunch quite a bit over the last few years, none of it adds up to me.

Look, it’s fine if you don’t like Crunch as a service. But I think this could be a question of expectations.

All I’d say is: if you are interested in going with Crunch, don’t dismiss it based on the review and comments on this page. As a business owner you should probably be used to assessing options in an independent manner. So therefore treat everything here (including my comments!) with healthy scepticism.

Nobody asked me to write this comment, in fact I called Crunch today about something unrelated and had to call them back, so google for their number, and was sidetracked looking at their google reviews, then came here and was compelled to write.

May 17

Mailbird 2.0 Review

I’d like to consider myself a child of the modern world, but … email. I’m a slave to it. I have a number of different enterprises that I run and look after, I administer 7 of my own Google Apps Domains not to mention looking after a few more for my clients (schools) who have typically many hundreds of email accounts per domain.

For a small business owner, customer communications are absolutely critical to my livelihood, and so choosing the right email client is important for me.

Back in the earlier days of Windows, there were really only two products for Windows users. Outlook and Outlook Express. The latter was laughable, and so I was a great lover of Outlook with its enterprise features like Public Folders, shared resources, meeting requests, etc. I loved Outlook XP when they introduced “Outlook Today” – somehow this was the pinnacle of technological progress being able to see my calendar and my emails and my task list all in a friendly view.

Then came Gmail and I never looked back. In comparison, Outlook felt bloated and slow – probably because email demands have increased over the years and we expect to keep mailboxes of 15GB and more, with everything instantly accessible.

But webmail was lacking in some ways. Firstly the hassle of multiple sign-ins, and the fact that I couldn’t keep multiple calendars from different accounts (yes I know this is a bizarre thing to need…)

For years now I’ve been using the Windows 8.1 and Windows 10 Mail client and in the most part I’ve found it excellent. But… lacking.

There’s no native access to Gmail contacts or Calendar (although it is possible to view your Gmail calendar now). It’s a very well designed interface, but it lacks configurability, such as using different views, specifying exactly how much of the last 15 years of email I’d like to download, advanced email signatures, and I always need to revert back to Gmail web interface to search my email archive. For years I’ve kept my eyes out for a new mail client.

Enter… Mailbird 2.0. The feature set was attractive:

  • A “coming of age” email client
  • All the obvious things like multiple account support
  • A really nice integration with Google Calendar and contacts
  • Unified email inbox (this has become important to me)
  • Quick, batch archiving of emails in multiple accounts (Outlook 2016 is missing this!)
  • Touchscreen support
  • Some other great integrations: a Whatsapp sidebar, Moo.do, and loads of other apps
  • Identity support, i.e. advanced multiple email signatures

As soon as I downloaded it, I loved it so I purchased it within a few hours and I’ve been running it for a couple of weeks now.

Here’s my review.


First things first. It’s fast. Searching is fast, the UI doesn’t hang randomly as I’ve come to expect from Outlook, and I love the keyboard shortcut support. I really like multiple selecting emails in the unified view and hitting E to archive them into their respective archive folders. Getting to “inbox zero” is a big thing for me, as I feel like I am sinking under email sometimes, so this is good.


An email client must not crash. Ever. Having put Mailbird 2.0 through its paces with my 10 email accounts ranging from Gmail to Office 365, each with gigabytes of mail, attachments, folders, tags, etc., I’m pretty happy on the reliability aspect.


The application supports two view styles: the traditional Outlook style reading pane at the bottom right with email list above it, and the newer style email list on the left:

I’m a configurability nerd, and I like a little more control. Whilst I can drag panes to make them bigger and smaller, it’s not amazing in this respect. But – life is too short, and it does what I need so I’m happy here.

Email signatures

Excellent support for advanced signatures. With one exception, which you may consider minor but to some it’s very important. It doesn’t allow attaching images to the signature. You can link to images online, but not attach.

Some email purists might consider this a good thing: attaching a file to every email you send makes email bigger, and takes up more storage space, increases bandwidth use, etc. For me it’s a small price to pay to ensure the signature appears correctly on the screen, as most clients block linked images by default.

I raised this with Mailbird support, their first response was that attaching images to a signature could create a security flaw as a trojan might inject a virus into the signature. I responded by saying that they should probably consider disallowing email attachments altogether in that case, not just to signatures. They responded well and said they would consider this for future developments.

Core reading and writing functionality

The main look and feel of the interface is similar to Outlook in that you can double-click on an email in the inbox list and a new window will open.

However Mailbird has this quick “in-line” email compose view:

This is the default way of responding to an email, if you hit R for reply or use the button over the email in the preview pane:

This inline view is the biggest problem with Mailbird.

To date I’ve lost a few emails, and been confounded by what to press and where, when you need to change the recipients, subject, or anything else.

Here are the problems:

  • If you “reply to all”, it only shows the primary recipient at the top, i.e. the person who sent the email. That’s fine, because at the bottom it lists all recipients

  • Now what if I want to change the recipients? You would click on the little double arrow at the bottom, wouldn’t you? No. That switches between “reply” and “reply to all”
  • So you’d click on the names at the bottom, right? No. That does nothing.
  • So you’d click on the same line as the green name at the top, right? No. That collapses the inline view and the whole email and you have to start again.
  • So you’d click on the little arrow on the right at the top? No, that brings up a context menu for the original email, which is completely useless when you want to do something with the email you are writing.
  • Ok so you click on the green name at the top. That shows what I need:

  • Let’s say you’ve gone ahead and spent 30 minutes writing a response to your email. Can you see where I’m going with this…
  • You click on a name at the top to remove it (you don’t need to CC yourself in do you?)
  • Right-click – no option to remove recipient
  • Click and press delete – woah. You just lost the email you wrote. There’s an option to “UNDO” that pops up at the bottom, but when you press it, it just un-deletes the original email, it doesn’t restore your draft!


There are a few other things that bug me about the inline view, which make it very difficult to use in my opinion. This aspect lacks polish.

Most importantly, I should never lose a draft. Ever. This is a big problem for me.

Searching is fast but I can’t do powerful searches (date ranges, field searches).

The client uses screen space very efficiently.

I’m unable to specify views. For example I can’t show unread emails. If you need to get to Inbox Zero, this makes it hard work as you’d have to search through hundreds of emails to find that one unread email to mark it as read!

I can click quickly between huge mailboxes without any lag. This is excellent.




May 16

On the Microsoft Pro-EU position – how not to write a letter

I wrote in a previous post that I have a gut feeling about the EU referendum. In fact I have a gut feeling about most things, which is all the more reason I like to subject myself to criticism. Come and knock spots off me, show me how I’m wrong. In fact I’ll go out to seek the counter argument. I’m opinionated, but I’m not entrenched. It’s entirely likely I may rebut everything I find – or everything you say – but at least give me the opportunity to do so and to have the debate. The debate is just as important as the outcome.

Which is why the media coverage of the referendum has been so frustrating to date. It hasn’t been a debate about the issues, rather one about the rhetoric of the debate. The debate is about the debate.

Anyway I’m not complaining about media representation here, I’m angry about something completely different.

You may have heard in the news that Microsoft wrote an email to their employees and business network urging them to vote to stay in the EU.

Well, it wasn’t really an “urge”, because it had nothing compelling in it whatsoever.

I suppose if you’re a huge organisation, for PR purposes you can’t possibly go too far down the road of siding with one political movement over another. Unless it’s taking a stand against outright evil, it’s best to be safe.

Here are my notes on the Microsoft Email. Michel Van der Bel, you have let me down, you have let your team down, but most of all you have let yourself down:


In the interests of balance, here’s a letter from a small online bookshop based in Lincoln that I received with a shipment last week. Forget the different political positions that Microsoft and Anybook.biz have for a second; this letter is refreshingly different from Microsoft’s letter in the following ways

a) It’s very specific about the industry they are in, rather than the business itself

b) It is laden with statements of fact. While these need fact-checking, at least there is something to pin an argument on

c) it is direct, and it says how it will affect consumers as well as the business


May 16

On Empathy, and the Referendum to Leave the EU


Many months ago and early on in the unfolding story of the British referendum to leave the EU, it was common to hear the electorate – at least presented by the media – decrying “we feel that neither side has really come up with a good enough list of reasons to” [delete as appropriate]: leave / stay in the EU.

As the months have worn on, this narrative of voters’ views presented by the media hasn’t changed, and we are still hearing that people aren’t being armed with the information they need.

Yesterday’s episode of The Today Programme was a case in point; a voter discussion group put together by global market research firm Kantar said “I just need a list of Pros and Cons for me to make up my mind”. The same message came through loud and clear from others in this research group, yet only one of the members of the group had actually picked up the leaflet that was delivered through their door and read it.

Yes this was a government leaflet which presented information from one side. But isn’t one-sided evidence a fantastic entry point for the inquisitive mind to learn about both sides’ arguments? There’s nothing like an outrageous statement from one camp to make you try and disprove it. All the better if that opening gambit is harder to disprove, as it can lead you down all kinds of other avenues of enquiry.

When my friends and family tell me they are not sure which way to vote, I ask further questions to determine whether they are like me, somewhere “In The Middle” as opposed to very much not like me “On The Fence”. Because lazy I am not, and un-engaged I refuse to be.

(Note, I’m “somewhere in the middle”, not bang in the middle, and I definitely have a gut feeling from which I will not depart.)

Being “In the Middle” doesn’t mean I am not decisive on an issue. It certainly doesn’t mean I blow whichever way the wind is blowing. It just means that I know there are Pros and Cons and although the decision is important, I consider it “swings and roundabouts”. I may be better-off in one way, and worse-off in another.

The best analogy I have for the decision – and the tone of the debate – is if my firm were deciding to switch suppliers for a major contract. Despite going to tender, and assimilating hundreds of pages of technical information about service provision, there are still unknowns. (Known ones, and unknown ones…) Colleagues will be battling out the detail, suppliers will be making false claims, it’s our job as the ones making the decision to decide on the criteria for a decision. Once that’s done, you weed out the rubbish claims and work through the good ones. There’s no right or wrong – just different.

I have sympathy with voters who feel frustrated by politicians. Perhaps deep down inside they too know there’s no right or wrong, and when politicians present their side as a matter of morality or patriotism, it turns us off. It’s not wrong to move your services from EON to Scottish Power, and we immediately switch off when someone tells us it’s something we should be scared about. Likewise we switch off to those trying to bait us by telling us the outcome is certain when we know there can be no certainty.

When I hear that people are “On The Fence”, this is what makes me shout at the radio. Of course we don’t know what the UK will look like outside of the EU, we can never have a full picture of 21st Century UK outside of the EU.

Some say “look at Norway”. No, this is Britain, it’s entirely different. Some say “the UK will be returned to pre-Cold War days”. No, this is the 21st Century, and we haven’t just fought a world war. Also Britain didn’t “join the EU”, it was an alliance member of the Council of Europe after the war and was a formative influence, since which time much has changed. Britain joined the EEC much later in the 70s.

History was my weakest subject at school, but I remember being taught the definition of Empathy. This is a pretty good version: the imaginative projection of a subjective state into an object so that the object appears to be infused with it.

So when I learn that the reason my friends are “On The Fence” is that they haven’t been presented with a clear set of Pros and Cons, I want to shout “get a grip and stop blaming your lack of understanding on a lack of evidence”. It’s EMPATHY that is required to work out whether you want to stay in a situation in which you have no experience of not being. The story of Europe unfolded over the course of decades and you won’t find hard evidence of what it will be like if we left. Arguably we need to apply just as much empathy in working out what would happen as a result of staying in the EU, as we can’t possibly know what’s going to hit us in the coming years. Either way, decisions are best made with empathy, not facts.

My suspicion is that some voters hide behind their lack of engagement in the political process by demanding facts from politicians, when they should really be taking-on the decision for themselves.

For this is the beauty of democracy: the freedom to make your own mind up. In a representative democracy, it isn’t the responsibility of our leaders to educate us in the facts.

So I have a low tolerance for voters who, when it comes to voting day, recoil and stay with what they know because they never got off the fence. That’s just damned lazy.

I’ll give you a few days during which time you can say you’re “on the fence”. After that, I’ll say outrageously illiberal things like “you shouldn’t be allowed to vote”.

Jan 16

Dynamic DNS using Linode and local powershell script

After noip.com and dyndns.org shut their doors to all but non-paying customers, I spent many years without being able to reliably access my home network from outside. Of course, it was always possible to do without dynamic DNS by making a note of the current IP address and use this for as long as the address stayed the same, but sods law I would *really* need to access home the day that the router was upgraded remotely or the address expired or whatever.

Over these years I looked at various options, and almost settled on installing BIND9 and using nsupdate on a remote machine and writing a script on the local network to check-in periodically.

This seemed like a good option because I already pay monthly for a linux VPS so there was no extra outlay. Deep down, though, I knew it was overly complicated and would probably break someday because I don’t have the time to maintain my VPS in a “mission critical” way, or I’d rebuild the server and forget it took me 4 hours to setup the solution, thus ending up not having it for another 6 months because I couldn’t be bothered to go through the effort again.

Turns out there was much more of a tidy solution for me. I use Linode.com to host my VPS, and I also use its excellent DNS manager control panel for all of my domains. Sure, you can use the DNS manager of your domain registrar and create A records and the like to point to your Linode’s IP, but it’s so much nicer pointing your NS servers to Linode and managing all your DNS settings from Linode. The interface is designed beautifully, the account security is top-notch, not to mention there’s a very sweet iPhone app that makes creating records / cloning zones a breeze.

I digress. My solution involves creating a Linode API key, pulling-out the domain and resource IDs from Linode, then having a powershell script which runs on a local Windows box update these when it detects a change of address.

I won’t bother going in to the former as you can work that out, but the latter is certainly something worth sharing here.

After nicking the IPChangeNotify powershell script from somewhere on the web, I discovered a whole load of reliability weaknesses, which I’ve pretty much accounted for. Without further ado, here’s the spec of my updated script and solution as a whole

  • relies on Windows task scheduler
  • (ironically) uses dyndns IP address checker at http://checkip.dyndns.com/
  • if for some reason the above doesn’t respond in a timely manner, it waits, tries again, waits, etc.
  • updates are of course made securely, over https
  • email notifications telling you a whole load of useful info such as:
    • how many attempts it took to discover the ip address
    • number of milliseconds it took to discover the address (for fun / to help diagnose problems)
    • old ip address
    • new ip address if changed
    • response from Linode API to confirm that the A record was updated
    • email subject based on change / success / failure to allow for sensible rules in Gmail
  • write-out the IP address to Dropbox (added bonus – you get a little Windows notification when this text file is changed) – just in case something goes wrong and you can’t be bothered to sift through notification emails

All you need to make this work is:

  • a Linode account
  • Windows machine on your local network that stays on all the time
  • the below script

(Apologies for the godawful formatting, but it should copy/paste okay!)

$scriptpath = $MyInvocation.MyCommand.Definition
[string]$dir = Split-Path $scriptpath
set-location $dir

$oldip = gc .\ip.txt
Write-Host “IP stored in Dropbox: $oldip”
Write-Host “Getting current IP…”

$firststartTime = get-date
$webpage = (New-Object net.webclient).downloadstring(“http://checkip.dyndns.com”)
$firstendTime = get-date
$timetogetpage = ($firstendTime – $firststartTime).TotalSeconds
$currentip = $webpage -replace “[^\d\.]”
Write-Host $currentip
Write-Host “That took” $timetogetpage “seconds”

if ($timetogetpage -le 2) {
$triestext = “(on first attempt)”
} else {
$triestext = “, not on the first attempt:`n`nTry 1 ($currentip) = $timetogetpage`n”
$tries = 1
while ($timetogetpage -gt 2) {
Write-Host “Let’s try again”
$subsequentstartTime = get-date
$webpage = (New-Object net.webclient).downloadstring(“http://checkip.dyndns.com”)
$subsequentendTime = get-date
$timetogetpage = ($subsequentendTime – $subsequentstartTime).TotalSeconds
$currentip = $webpage -replace “[^\d\.]”
$triestext = $triestext + “Try $tries ($currentip) = $timetogetpage `n”
Write-Host “Try $tries ($currentip) = $timetogetpage”

$smtpServer = “smtp.gmail.com”
$sender = “sender-email@gmail.com”
$users = “recipient-email@gmail.com”, “anotheruser@gmail.com”
$subject = “”

# change the below to match the ID of the given record
# change api_key and domainid below to match your Linode.com API key and ID of the domain

if ($timetogetpage -lt 3) {
if ($oldip -eq $currentip) {
# Discovery success – IP stayed the same (ideal case)
$subject = $subject + “IP address found: $currentip. No change! (discovery took $timetogetpage seconds)”
$body = “Old IP = $oldip`nNew IP = $currentip`n`nNo change!`n`nDiscovery took $timetogetpage seconds $triestext”
Write-Host “Not updating the file” -ForegroundColor Gray

} else {
# Discovery success – IP changed (important case)
$subject = $subject + “IP change detected: $currentip. Discovery took $timetogetpage seconds”
$body = “Old IP = $oldip`nNew IP = $currentip`n`nWe updated the DNS!`n`nDiscovery took $timetogetpage seconds $triestext”
$currentip | Out-File .\ip.txt -Force
Write-Host “New IP saved in file is: $currentip” -ForegroundColor Green

Write-Host “Updating DNS…”
$updatewebpage = (New-Object net.webclient).downloadstring($updateurl)
$body = $body + “`n`nOutput of the DNS Update service:`n`n$updatewebpage”
if ($updatewebpage -like “*Invalid*”) {
$body = $body + “`n`nLinode response: DID NOT UPDATE. Check Linode.com.”
} else {
$body = $body + “`n`nLinode response: UPDATED”
Write-Host “Output of the DNS update service: $updatewebpage”

} else {
# Discovery failed
$subject = $subject + “IP address kept as $currentip (discovery failed and took $timetogetpage seconds)”
$body = “Old IP = $oldip`nNew IP = $currentip`n`nI’m suspicious, discovery took $timetogetpage seconds $triestext”
Write-Host “IP address supposedly found, but it took $timetogetpage seconds” -ForegroundColor Red
Write-Host “Keeping the current IP: $currentip” -ForegroundColor Red

# Finally send the email
Write-Host “Sending an email now…” -ForegroundColor Green
foreach ($user in $users) {
Write-Host “Sending email notification to $user” -ForegroundColor Green
$smtp = New-Object Net.Mail.SmtpClient($smtpServer, 587)
$smtp.EnableSsl = $true
$smtp.Credentials = New-Object System.Net.NetworkCredential(“sender-email@gmail.com”, “email-password”);
$smtp.Send($sender, $user, $subject, $body)





Sep 15

My KeePass to LastPass Migration Woes!


This blog post details the technical difficulties faced when trying to migrate from using KeePass to LastPass. KeePass has been an excellent password companion for the last 6 years and I’ve been using MiniKeePass for iOS, loading my password safe from Dropbox quite happily. But since starting to use a Chromebook I’ve been increasingly frustrated in this area. There are a few Chrome extensions that provide access to KeePass. CKP has 4.5 stars in the Chrome app store, but I’ve found this browser extension clunky and annoying to say the least. Manual search in CKP doesn’t work properly and despite the good reviews overall the experience in my opinion is poor. Not to mention it only gives read-only access to the password safe.

So I finally bit the bullet and decided to migrate to LastPass, after months of frustration trying to access my password safe from ChromeOS.

Here I document my migration woes, for no other reason than to provide help to anyone who might be googling for this info!

The import

LastPass supports importing from KeePass. You have to export to XML then upload the XML. Sounds simple, but fraught with the following problems.

Tip #1: use Firefox. Don’t question this, just install Firefox and run the import in Firefox. This solves a lot of issues.

Tip #2: if you used folders in KeePass, consider exporting each folder as a separate XML file. If you export the whole database, the result is that *all* your folders will be in a top-level folder. There’s no obvious way to change this later.

Problem: import process hangs


  • My KeePass database had a folder structure. As per Tip #2 above, split up your export into different XML files, one per top-level folder. To do this, right click on your folder in KeePass and there’s your option to export
  • The process can still hang, and I scoured the XML file for possible issues, however I learned after much trial and error that the hanging was random and not related to strange characters. Delete the folder that may or may not have been imported into LastPass by right-clicking on the folder in the web interface. Again – don’t attempt this in any other browser than Firefox, results are highly unreliable in Chrome! Then simply re-attempt to import. For me at least, it worked on the second or third try.

Problem: Items are imported as note ITEMS, not website ITEMS

I used KeePass to store credentials for websites, banking, etc., as well as other personal info like driver’s licence info etc.

LastPass stores items as different object types. Anything you import that had something in the URL field in KeePass will be stored into a website item. Anything else will become a “Secure Note” of type “General”.

So if you’re like me and didn’t really bother putting anything in the URL field in some / many / all of your entries in KeePass, you’ll need to do the following.


What you need to do is edit your XML file before importing to give the URL field some value. I gave mine this: http:/0 as if you accidentally attempt to launch the website we don’t want LastPass attempting to send your credentials to a website that actually exists like www.null.com (yes, it exists…)

To do the above, using Sublime Text Editor:

  • Remove leading whitespace from the XML file, otherwise the following step won’t work. Press Ctrl-H to find and replace, click the Regex button, and use this string ^[^\S\r\n]+ and make sure nothing is typed into the replace box. Replace all to remove leading spaces / tabs
  • You now want to find and replace all instances of the URL field where it’s blank, but not where it’s not. Find multiline string

<Value />



Use Ctrl-Enter to split the lines in the find and replace fields.

Now hit Replace, save the file, and try the import. This time you should notice the icon next to all items is not the purple pen (secure note), but the white box (website).