I ordered the 6mm GT2 timing belt and 320mm long 8mm rails first and printed the models while I waited for the hardware to arrive.
I used the source files at https://www.thingiverse.com/thing:2716152 for the belt tensioner.
Once the hardware arrived, I took off the magnetic print mat, then the thumbscrews and springs from the print bed, and finally the print bed itself.
The print bed hardware was put aside while I removed the original Y carriage.
The mounting screws at the front and rear for for the rail mounts came off next. After a fair bit of maneuvering, I found that the grub screws holding the rail mounts on were not fully tightened on mine and managed to loosen them enough to slip the timing belt off the pulleys.
Loosening the grub screws on these mounts and sliding the rails out the rear of the Y carriage would probably be easier than the way I did it!
Once I had removed the belt tensioning spring, I put the Y carriage, original rails, rail mounts, belt tensioning spring and screws aside.
First I tested the fit of my parts by push-fitting the rails in.
I fed the new timing belt though the holes in the front end and used cable ties to hold them together the same way I had seen on the original Y carriage. I fed the other end though the small part of the belt tensioner assembly and back through onto itself.
I was pretty happy with the result, so I removed the front end, slid the rails through the bearings and replaced the front end again.
I ran the timing belt through the pulleys in the same way it had been run before and pulled it through the belt tensioner before cutting off the excess.
I happened to have some washers exactly the right size to place on top of the printed parts of the new Y carriage to distribute the load from the levelling springs, so I put those under the springs before replacing the build plate.
Once the build plate was back on, I replaced the magnetic print mat.
I used one of the original rail mounts at the rear of the new rail to mount the belt tensioner on and used an M3 screw to complete the belt tensioner assembly.
I connected a USB cable to my PC and used Arduino IDE to open a serial monitor terminal to the printer.
After levelling the bed, I entered the command M211 S0 into the Arduino window an pressed Enter to disable the software endstops.
I then used the LCD menu to move along the Y axis and check the available print area before the stepper couldn't move further. This turned out to be 220mm. I also tested the limits of the X and Z axes and found them to be 130mm and 110mm respectively.
I also ran the M115 and M501 commands and copied the output to a text file for reference, as some of this information might be needed later.
Configuring and flashing Marlin firmware
Please note, modifying the firmware on your printer may render it inoperable if you are unsuccessful. I take no responsibility for damage caused if you try the steps below, although they worked for me.
This was my experience at the time of writing - yours may differ.
If you are new to firmware upgrading, this mod may not be for you! If you don't feel like tinkering with the code as much as I did, a good place to start is by reading about how to compile and install Marlin at http://marlinfw.org/docs/basics/install.html, and I have heard good reports about TH3D's unified firmware working well for others.
Armed with the bed size information, I set about downloading the customised Marlin 1.1.9 firmware at https://github.com/thisiskeithb/Marlin/tree/1.1.9-Wanhao-Duplicator-i3-Mini and unzipping it.
I then copied the sample configuration files for the Cocoon Create Model Maker into the Marlin folder.
I ran the Marlin.ino file and customised the configuration.h with my new bed dimensions.
After compiling the firmware and uploading to the printer, I checked out the shiny new menus, used them to auto home the print head and confirmed I could move the full travel distance along all axes.
I then put in an SD card and found that it didn't work!
I also found that the load and unload filament options were missing from the menu, which are somewhat important for a Bowden extruder.
A bit of digging found that the SD card issue had been discovered and a solution found by another Github user, so I made the suggested edits to ultralcd.cpp.
I then added the options for advanced pause, loading and unloading of filament to configuration.h and configuration_adv.h
I added myself as the author of the firmware version, gave it a new number, renamed the printer from the generic "i3Mini" and copied the printer's original UUID from the text file I'd saved earlier.
For good measure, I also gave the printer a new name and copied the enabled manual probing to try and return to the "business card" levelling method I was familiar with. This last change wasn't successful, but the rest were.
Configuring the new print area in the slicer
With my firmware update completed, I needed to set my slicer up to reflect it.
I happen to use Cura, so I went into Settings|Printer|Manage Printers... and renamed the printer there. I then clicked Machine Settings and changed the print area settings to match the new settings.
The first thing I decided to print after a successful calibration cube was another rear section for the Y axis extension, as I had some under-extrusion issues with the original one.