EUC Chestnut Tours

I’m an avid EUC (Electric Unicycle) rider. I currently own a Begode T4 offroad style wheel and the tiny Begode MTen3. Recently my daughter, 11, started to learn on my smaller wheel. She’s picked it up very quickly, and after just a couple of days we’ve already started going on longer rides together.

Miss 11 is very very keen to explore different places around our beautiful country (New Zealand), so we came up with a cool way of making it even more fun.

Me and Miss 11 on our Electric Unicycles in Foxton, New Zealand
Me and Miss 11 on our Electric Unicycles in Foxton, New Zealand

Introducing the concept of Chestnut Tours!

Like a chestnut, a chestnut tour is just a little nut of a tour. We try to make it something we can do in a couple of hours – but how long is really up to you. CHESTNUT is an acronym for the things that we try and achieve at each new place we visit on our wheels.

  • Culture: See something with cultural significance
  • History: Visit something historical
  • Explore: Go somewhere off the beaten track (e.g. offroad, or back streets)
  • Sight: See a beautiful sight, like a lookout
  • Treat: Have a treat!
  • Nature: Visit a nature spot, or look for birds or animals
  • Unique: See or experience something unique to that place, that you can’t do anywhere else
  • Treasure: Find a treasure. Maybe a beautiful shell, flower, market item, or geocache

You can make up your own rules, but here are some of ours:

  • One spot can totally cover multiple things. For example, visiting a Maori Pa site would be Culture, History and Sight all at the same time!
  • We tend to get the same treats in each place, so that we can compare and see who has the best in New Zealand! I get an iced coffee, and Miss 11 gets an iced (or hot) chocolate.
  • We also like geocaching, so for our Treasure we try and find at least one cache.

We’ve only just started this Chestnut Tours idea, so will keep updating on how it’s going. Maybe we’ll even keep a tour map. What do you think of this idea?

Handle mod for the Gotway MTen3 EUC

My DIY ebike died a long time ago, and all attempts to fix it failed. While researching my next ebike I stumbled upon the interesting and thrilling world of Electric Unicycles (EUC). An EUC is a self-balancing one wheel personal electric vehicle (PEV) that you ride by standing on it and simply leaning in the direction that you want to go.

After some research, I purchased the Gotway/Begode MTen3. It’s the lightest and smallest wheel ever produced, but it fit all my criteria to a tee. To paraphrase my own review on, I want a wheel to commute to work (about 3km each way) and carry up an elevator to my office. I want a wheel to ride to the gym and just shove in my bag and leave in the locker. I want a wheel that‚Äôs good in a city and can come on the odd shopping trip. This wheel does all that perfectly, and is just so fun to boot. Every ride leaves me with a smile.

I’ve now done over 170km (100mi) on my MTen3, and I love it. The only problem is, although it’s not that heavy, pushing it with a handle up the elevator and into the office would be much easier than carrying it. It doesn’t come with a handle. But I come with a shed full of tools and sheer determination ūüėÄ

Handle options?

Official ‘cable-tie’ trolley handle

There is actually an ‘official’ trolley handle kit that’s available for the MTen3 that can be purchased from wheel retailers, but also online from places like AliExpress. They go for around NZ$100 (US$65).

The problem is, part of the official solution is a cable tie to fix it to the carry handle. This isn’t a great solution, and it looks… well, lets just say I think I can do better.

3D printed cable-tie replacement

This cool 3D printed part by watchmaker_Ian uses the same trolley handle as above, but replaces the cable-tie with a custom 3D printed part. This is much nicer, but unfortunately the handle still looks a bit like an afterthought rather than part of the wheel.

Inmotion V8 handle mod

VasekPro designed this Inmotion V8 handle mod, including some custom 3D printed parts. This handle unfortunately requires some hefty modifications to the case which would seriously degrade the water resistance of the wheel.

Inmotion V5f handle mod

The Inmotion V5f handle is a slick, curved unit that suits the MTen3 pretty well. Some riders have tried to adapt it for the MTen3 with a bit of duct-tape, cable-ties or hose clamps.

After a bit of a think, I decided this was a good place to start for my own mod.

Improved Inmotion V5f handle mod for the MTen3

Here is what I ended up with:

As you can see, it fits the MTen3 very well. It sticks out the back a little bit, but I plan to get the handle bent on a sharper angle at an engineering shop (I don’t have any rollers or other bending equipment).


There are a couple of downside of this mod:

  1. Most of the LEDs are obscured, leaving only those at the front
  2. It’s harder to reach the cut-off switch with the handle down, unless you have big hands! (you can open the handle and then carry it, though)
  3. The handle protrudes out the back a bit. I do intend to fix that later by re-bending the handle

Instructions for making the V5f handle mod

1. Purchase the V5f handle kit

I purchased an Inmotion V5f handle kit from AliExpress for about NZ$90 (US$60) including taxes and shipping. I was pleasantly surprised by the high quality of the parts. It even came with a hex key.

2. Dismantle the handle

Using the supplied hex key (or your own if your handle didn’t come with one) undo the single small screw under the handle mount, and take all the handle hinge pieces off. Also remove the two screw holding the clip in place, and take that off, too.

3. Cut the base to fit the MTen3 handle

I have an angle grinder with cut-off wheels, but I thought that would be too course for this job. I used a Dremel tool with small cut-off wheels. Luckily I had a whole container of spare blades, because I used about 20 to get through this job.

The aim is to cut off the two edges and end up with just the curved base, as flat as possible.

I mounted the base in the vice, using some wood offcuts to protect the aluminium. I cut off the edges, then used various files to remove more material, finally finishing off with a small grinding wheel on the Dremel to get a nice finish and to get rid of the sharp edges.

Update Jan 2023: Make sure you remove all of the edges and leave the handle base flat. Originally I left tiny (1mm) ledges (like you see in the photos), but these cause problems later on. File and grind until the ledges are completely gone!

4. Test fit

Test fit the handle. You can see that the shape is very close to the MTen3 handle!

Update Jan 2023: Even though the fit is very close, it is not exact. To get a better fit, use a soft mallet and a small block of wood, and hammer the handle base a little flatter to fit the curve of the Mten3 more exactly. Hammer a little at a time and keep test fitting in between until you have it as close as you can get it. This means that the mounting tape will get a much better grip.

5. Repaint the base

After cutting the base it was pretty scratched up. Even though it wouldn’t be visible I had some paint handy, so decided to spray the base. I masked the handle mounting part and then used a couple of applications of Dulux Duramax Black Enamel in a semi-gloss.

6. Shorten the handle (optional)

As you can see, the handle protrudes about 80mm (3″) out from the back of the wheel. I will eventually re-bend the handle to fit more snuggly, but in the meantime I removed about 30mm (1 1/4″) of the start of the handle. You should just be able to remove the two small screws to take the handle off, but unfortunately mine were too tight and I had to drill and cut them out! With hindsight I would not have shortened the handle, knowing it would be so much work.

However in the end I shortened the handle, and it sits a little closer to the wheel.

7. Mount the handle

After considering alternatives like black hose clamps, I decided to just try double-sided tape to mount the handle. Not just any mounting tape, though, some Scotch extreme outdoor foam mounting tape with super-strong adhesive.

The benefit of the mounting tape is that it has a few mm of thickness (1/16″) which very nicely fills up the tiny gap between the V5f handle and the MTen3 handle. A quick clean to both surfaces with some white spirits first (allowing time to flash off), and then carefully apply the tape.

I was a little worried that it wouldn’t hold very well, but for the purposes of this handle it works a treat! I’ll try to remember to drop a comment in a couple of months to see how it is holding up.

8. Cut through-holes in the bodyguard

My MTen3 has a bodyguard from I absolutely recommend getting one, and if you don’t like black, you can get a fully custom one with colours and graphics to your design! I’ve dropped the wheel so many times while learning, and the bodyguard has kept the case pristine. The foot pedals are all scratched up, of course, but my plan is to get some nice studded honeycomb replacements once I’m over the learning phase.

I’m not super-happy with my modifications to the bodyguard. I cut one the hole for the clip a little large. However, I plan to order a new bodyguard with the holes machine-cut and already in the right spots!

That’s it

Aside from painting, this took me an afternoon all up. I still intend to re-bend the handle to better fit the shape of the MTen3, and I will report back on how the Scotch mounting tape holds up – though I am really impressed by rigidity of the handle.

Happy riding!

One-month update (Jan 2023)

The handle detached in a few days after a couple of spills (Mten3 doesn’t do well on off-road pine needle trails!). In the workshop I inspected closer and made some changes, and since then the handle has remained rock solid, even after many more falls.

  1. In step 3 (Cut the base to fit the Mten3 handle) you need to ensure that both of the edges are completely removed, and that you are left with a flat (well, curved but flat) surface underneath. My original handle still had tiny ledges (1mm high or so). I thought that these would be ok, but they caused a slight gap between the handle base and the Mten3, and the tape couldn’t get proper purchase.
  2. In step 4 (Test fit). take a small block of wood and a soft mallet, and slightly flatten the curve of the handle base to fit the MTen3 as closely as possible. Test fit the handle and see where the high spot is, then give it a few taps with a soft mallet using the wood block underneath. Repeat the process until the curve of the handle base exactly matches the Mten3.
  3. Now attach the handle to the MTen with the extreme mounting tape. It will provide a really solid hold.

Getting TTGO ESP32-based T-DISPLAY to work

I’m a fan of microcontroller boards, and have quite the selection now – mostly Arduino clones and (my favorite) Teensy boards.

However, I recently picked up a cheap ESP32-based development board from AliExpress – the TTGO T-DISPLAY. It comes with a 135 x 240 pixel ST7789 LCD display and two built-in buttons, all in a package about the same footprint as my thumb (should that be thumbprint?).

Installing the development environment

There are a couple of IDEs you can use to develop for ESP32, one of them being the Arduinio IDE with the ESP32 extensions installed. However, I prefer VSCode (Visual Studio Code), and the team at Espressif have developed a nice VS extension which took me no time at all to get working.

Creating the LCD display tutorial

Once the ESP32 extensions and tools are installed in Visual Studio you have access to a huge number of examples. To access these, go to view > command palette and start typing show ESP examples, then select ESP-IDF: Show Examples Projects from the list.

The example you want is peripherals > lcd > tjpgd. Go through the process of creating the project.

Setting the correct pins and display size

You should have an example project now with several files in it. The main one is lcd_tjpgd_example_main.c

First of all, set up the #defines to the correct pins for the TTGO board. I’ve only listed the ones that you need to change:

// STEP 1 of 3
// Change the following defines for compatibility with the TTGO T-DISPLAY

#define EXAMPLE_PIN_NUM_DATA0          19
#define EXAMPLE_PIN_NUM_PCLK           18
#define EXAMPLE_PIN_NUM_CS             5
#define EXAMPLE_PIN_NUM_DC             16
#define EXAMPLE_PIN_NUM_RST            23
#define EXAMPLE_PIN_NUM_BK_LIGHT       4

#define EXAMPLE_LCD_H_RES              135
#define EXAMPLE_LCD_V_RES              240

Unfortunately , the ST7789 display that ships with the TTGO T-DISPLAY is a special beast. It has a non-standard display size of 135×240. As well as the general setup, it requires additional code changes to work.

Setting the correct display RAM offsets

The display RAM for the first pixel (and all subsequent pixels, of course) is offset by a certain amount.

Important! The offsets below (52,40) work for the display in it’s ‘normal’ vertical orientation, but they change if the display is rotated (using hardware rotate). So be wary of this. The best place to look for answers is the Adafruit ST7899 driver source code ūüôā

// Step 2 of 3
// Change the "display_pretty_colors" near line 60 with the following code

static uint16_t *s_lines[2];
static int xoffset = 52; // EDIT: Add this
static int yoffset = 40; // EDIT: Add this
static void display_pretty_colors(esp_lcd_panel_handle_t panel_handle)
    int frame = 0;
    // Indexes of the line currently being sent to the LCD and the line we're calculating
    int sending_line = 0;
    int calc_line = 0;

    // After ROTATE_FRAME frames, the image will be rotated
    while (frame <= ROTATE_FRAME) {
        for (int y = 0; y < EXAMPLE_LCD_V_RES; y += PARALLEL_LINES) {
            // Calculate a line
            pretty_effect_calc_lines(s_lines[calc_line], y, frame, PARALLEL_LINES);
            sending_line = calc_line;
            calc_line = !calc_line;
            // Send the calculated data. EDIT: The line below is the only one that has changed
            esp_lcd_panel_draw_bitmap(panel_handle, xoffset + 0, yoffset + y, xoffset +  + EXAMPLE_LCD_H_RES, yoffset + y + PARALLEL_LINES, s_lines[sending_line]);

Updating the “pretty effect” code with correct screen size

If you try to build/flash/run this, you’ll notice that the display seems to work, but is full of garbage. There’s still one more thing to change.

In the source file pretty_effect.c there are a whole lot of values hardcoded to 320 (width) and 240 (height). Open the file and change all occurrences of 320 to 135. I added defines at the top of the file for width and height, and my file now looks like this:

// Step 3 of 3
// Update the width and height to match the display 

#include <math.h>
#include "pretty_effect.h"
#include "sdkconfig.h"
#include "decode_image.h"

#define PIX_WIDTH 135
#define PIX_HEIGHT 240

uint16_t **pixels;

//Grab a rgb16 pixel from the esp32_tiles image
static inline uint16_t get_bgnd_pixel(int x, int y)
    //Image has an 8x8 pixel margin, so we can also resolve e.g. [-3, 243]
    return pixels[y][x];

//This variable is used to detect the next frame.
static int prev_frame=-1;

//Instead of calculating the offsets for each pixel we grab, we pre-calculate the valueswhenever a frame changes, then re-use
//these as we go through all the pixels in the frame. This is much, much faster.
static int8_t xofs[PIX_WIDTH], yofs[PIX_HEIGHT];
static int8_t xcomp[PIX_WIDTH], ycomp[PIX_HEIGHT];

//Calculate the pixel data for a set of lines (with implied line size of 320). Pixels go in dest, line is the Y-coordinate of the
//first line to be calculated, linect is the amount of lines to calculate. Frame increases by one every time the entire image
//is displayed; this is used to go to the next frame of animation.
void pretty_effect_calc_lines(uint16_t *dest, int line, int frame, int linect)
    if (frame!=prev_frame) {
        //We need to calculate a new set of offset coefficients. Take some random sines as offsets to make everything
        //look pretty and fluid-y.
        for (int x=0; x<PIX_WIDTH; x++) xofs[x]=sin(frame*0.15+x*0.06)*4;
        for (int y=0; y<PIX_HEIGHT; y++) yofs[y]=sin(frame*0.1+y*0.05)*4;
        for (int x=0; x<PIX_WIDTH; x++) xcomp[x]=sin(frame*0.11+x*0.12)*4;
        for (int y=0; y<PIX_HEIGHT; y++) ycomp[y]=sin(frame*0.07+y*0.15)*4;
    for (int y=line; y<line+linect; y++) {
        for (int x=0; x<PIX_WIDTH; x++) {
            *dest++=get_bgnd_pixel(x+yofs[y]+xcomp[x], y+xofs[x]+ycomp[y]);

esp_err_t pretty_effect_init(void)
    return decode_image(&pixels);

Build, flash and run

You can now build the code, flash it to the board and run it, and you should see the correct result. Note that the display is much smaller than the image it is trying to display, so you’ll only see a partial image, but at least it works!

Compiling Rive-Tizen (Rive and ThorVG) on windows

I’ve been an avid Flash and Actionscript developer for a long time. With the decline of Flash there was nothing really suitable to replace the scalable vector graphics that was the major benefit of Flash. But now, along comes Rive to the rescue, providing a fantastic, open, vector creation tool and format, and ThorVG, providing a small, powerful vector drawing engine with no external dependencies.

Both of these projects are still in early stages of active development, but both look very promising, and have dedicated and passionate contributors behind them.

Rive-Tizen is a small project that connects the two, allowing you to render Rive animations using ThorVG. Based on my experimentation, I’ve jotted down some tips for compiling the rive-tizen project on windows using Visual Studio. Note that you’ll get the best results using the clang-cl compiler rather than the built-in msvc compiler.

I run Visual Studio 2019 Community Edition on Windows 11, but it may work for other combinations as well.

Install prerequisite tools (ninja, meson, clang-cl)
  • Install clang-cl as a Visual Studio component using these instructions
  • Install both meson and ninja build systems. There is an msi installer that does both provided by meson.
Clone and prepare the code
  • Clone the rive-tizen repo to your machine
    • Install the submodule dependency (rive) using your favorite git tool (I use GitKraken. and it is awesome), or use the git command line and enter git submodule update --init --recursive
  • Clone the thorvg repo to your machine
Edit the rive-tizen meson build file

There are some edits required to rive-tizen/ to support windows. Here is what I did:

  • Add the compiler flag _USE_MATH_DEFINES so that math related defines like M_PI are available.
  • Change how meson looks for the thorvg dependency by specifying the path to the ThorVG source files instead. Make sure you change the path to match where you cloned the thorvg repo!

This is what file looks like now. Be careful, depending on when you read this it may be out of date, so make sure to just take the changes you need.

    default_options : ['cpp_std=c++17'],
    version : '0.1.0',
    license : 'MIT')

add_project_arguments('-DRIVE_FILE_DIR="@0@/example/resources/"'.format(meson.current_source_dir()), language : 'cpp')

# changes start
thorvg_dep = dependency('thorvg', required : false)
if thorvg_dep.found() != true
    thorvg_dep = declare_dependency(include_directories : include_directories('../thorvg/inc'))
    if thorvg_dep.found() != true
        error('ThorVG dependency not found. Looking for ../thorvg')
if host_machine.system() == 'windows'
    add_project_arguments('-D_USE_MATH_DEFINES', language: 'cpp')
# changes end

# ... rest of file
Run and configure meson
  • This works best using the VS command prompt, so open a visual studio command prompt (instructions).
    • I do this by typing command in the windows search bar, and selecting the result called x64 Native Tools Command Prompt for VS 2019.
  • Change directory to rive-tizen folder. For example, mine is here:
    cd C:\Projects\rive-tizen
  • Change the compiler to clang-cl
    set CXX=clang++
  • Run meson
    meson build
  • Enter the build folder
    cd build
  • Change some configuration options to build a static lib and specify that it’s a release build. The last option suppresses a warning about “non-virtual destructor”. because there are a LOT of these.
meson configure -Ddefault_library=static -Dbuildtype=release -Doptimization=2 -Dcpp_args=['-Wno-non-virtual-dtor']
  • Hint: There are many more things you can tweak. To see all the config options available, type
    meson configure
Compile the static library
  • Still in the command prompt, run ninja
    ninja -C .
  • Now you should have a compiled static library!

Adjustable snare cajon

I’m a bit of a dabbling musician, and I’ve¬†wanted to make a cajon for a while.

Apart from the snares, which were a cheap purchase from AliExpress, everything else is made from left-over materials I had lying around.

The body (top, bottom and sides) are made from 12mm poplar ply. It’s not the best ply as it has a few voids in the layers, but it looks nice and¬†sounds ok.

The tapa is 4mm 3-ply birch (model ply, or aircraft ply).

Unlike a more traditional cajon, I made the sound hole in the side instead of the back, and attached a second tapa to the back. I plan to attach a drum pedal which strikes the rear tapa so that I can play with my foot while sitting on the cajon and playing guitar.

Usually the rear is¬†thinner than the sides, but not as thin as the tapa (usually it’s about twice as thick). The thinner¬†rear has given my cajon more of a resonant bass tone –¬†a little more like as bongo than a classic bass drum, but it still¬†sounds nice.

The knob on the side allows me to engage or disengage the snares from the tapa.

The body is varnished, and both tapas are oiled.


Table-mounted jigsaw

Inspired by Mistry MakeTool on YouTube (videos:¬†table, guide), I decided to make my own jigsaw table. I don’t currently own a¬†bandsaw, or even a scrollsaw, so this is my interim solution.

The¬†top is 400x400mm (~16″ x 16″) and 200mm (8″) high. The box is made from 18mm MDF, with a 4mm hardboard top (smooth side up). Everything is glued (Titebond III) and key parts, such as¬†where the guide attaches to the box, are also screwed.

I’m using a Ryobi 600W jigsaw that I purchased specifically for this project for around US$80. The foot of the jigsaw has been completely removed, and¬†I’ve bolted the jigsaw directly to the underside of the table using the bolt hole for the foot. A couple of blocks either side of the jigsaw are there just to keep it aligned.

I pulled apart a very old Black & Decker jigsaw and used the blade guide wheel from that as the new blade guide for the table.

The build took around 4 hrs (mostly waiting for glue to dry).


My experience after a¬†bit of use is that this tool is great for cutting thinner (12mm or less) thicknesses of timber, but it feels pretty dangerous when cutting metal. I’ve been cutting 3mm aluminium plate, and I would not recommend using the jigsaw table for that. The blade wants to try and lift the work piece from the table on the up stroke, and¬†I had to hold¬†the work piece down very firmly and be extremely careful when cutting. This doesn’t seem to be as much of a problem with timber.

Secondly, this¬†model of jigsaw (Ryobi 600W 85mm, RJS850-K) allows the blade to twist/rotate quite a bit. My battery jigsaw (Ryobi +one) holds the jigsaw blade absolutely rigid, but due to a different locking mechanism, this particular jigsaw model allows the¬†blade to twist by up to about 30 degrees! If you’re planning to build a table like this, look for a jigsaw that holds the blade absolutely rigid.

Drill lathe

One of my other projects required some wood turning. Not owning a lathe, or having done any sort of turning in the past, I reached out to the local wood turners association, but unfortunately got no response.

So I decided to make my own (very simple) lathe.

I mounted an old, cheap drill I had into a jig. The workpiece was simply bolted tightly to a large bolt and inserted into the chuck.

The American Black Walnut light surrounds turned out beautifully. very happy with my first ever wood turning experience!

Table-mounted belt sander

I needed¬†to do a bit of sanding for a wood turning project (see drill lathe), so¬†I made a jig to mount my belt sander at 90 degrees to it’s own table. This makes a handy belt sanding table¬†– I used it for both wood and aluminium.

The belt sander is held in place with a large clamp so that it can be easily removed. In the future I may look at building a custom clamp for this.

The lines on the surface are guides at 90 and 45 degrees.

I’ve since¬†attached the sanding table to the top of a small cabinet on castors so that I can move it around. It’s one of¬†the most used tools in the shop now!

How to fix old LEGO train wheels

If you¬†had a LEGO train set in the 80s or 90s, chances are that some of the wheels have come off by now, and they just won’t attach to any¬†of the common LEGO axles.

These are the wheels I mean. They have small metal axles and attach to a thick 4×2 block. In my wheels, all the little axles are long since missing, and all that is left is a wheel with a small hole through it.

Lego train wheels

What I did to fix mine is drill the holes out to fit¬†standard LEGO wheel axles, like in the image below (see ‘the plan’).

The plan

Train wheel plan

You’ll need:

  • A drill press*
  • A 3.2mm drill bit (optional**)
  • A 3.5mm drill bit
  • A 4.5mm¬†drill bit

* You could try this without a drill press, but you¬†won’t get consistent results, and you may get some tight wheels and some loose.

** The 3.2mm drill bit is used to set the depth stop to the perfect depth without trial and error. You can do this with a ruler or something else if you need to.

The steps are:

  1. Enlarge the hole all the way through the wheel with the 3.5mm drill bit
  2. Insert the 4.5mm drill bit and set the depth stop using the 3.2mm drill bit
  3. Drill the hole larger part way through the wheel until the depth stop is reached

The wheels should now snap perfectly onto the axle and spin smoothly without being too tight or too loose.

1. Enlarge hole to 3.5mm

Insert the 3.5mm drill bit in the drill press. Place a block of wood on the platform to ensure you don’t drill into the platform itself. Carefully but tightly hold the LEGO train wheel in place with one hand, and very slowly drill through the centre of the wheel all the way through. Because there is already a hole, the drill centres itself and ensures the hole is¬†perfectly vertical.

Drill 3.5mm hole


  1. Although I wouldn’t normally recommend just holding the work piece between fingers, if you hold it steady and drill slowly you shouldn’t have a problem. The¬†plastic is soft and shouldn’t snag.

2. Set up 4.5mm drill bit depth

Insert the 4.5mm drill bit in the drill press. Now lay the 3.2mm drill bit on the block of wood directly under the inserted bit and lower the drill press until the inserted bit sits on the 3.2mm drill bit. Now set the depth stop so that the drill press will not drill any deeper than that.

Setting the depth stop


  1. A depth of 3.2mm gives the perfect depth for the lego axles to click in place and allow the LEGO train wheel to freely spin. 3.5mm results in a tight wheel and 3mm allows the train wheel to move (too much slop).
  2. If you don’t have a 3.2mm drill bit, use the 3.5mm drill bit from the previous step, and then carefully lower the drill press a tiny bit more before setting the depth stop. It is best to drill the hole too shallow than too deep. You can always drill it a tad deeper later if the wheel is too tight.

3. Drill the 4.5mm hole

Finally, drill the 4.5mm hole in each wheel, lowering the drill press until the depth stop is reached. Remember to drill from the front of the train wheel towards the back!

Drill the larger hole


  1. Make sure you drill from the front of the LEGO train wheel to the back, like in the photo.
  2. Hold the¬†LEGO train wheel securely, and drill slowly. You do NOT want the plastic shavings to snag and pull the train wheel upwards, or you’ll get a hole all the way through¬†the wheel and it will be ruined.
  3. Drill down to the depth stop, not all the way through the wheel!


Hopefully your wheels now snap onto the axles and spin nice and freely! Have fun.

Caravan fun

I haven’t posted in a while – mostly because I’ve been busy on all my other projects – so here is a very quick update of progress with some pictures ūüôā

First job was installing the roof.  Carbonised bamboo on either side, with a panel of Lawson Cypress in the middle and remote-controlled 12v LED down lights.

Roof raised ready for work on ceiling
Roof raised ready for work on ceiling

Working on the electrics for the downlights
Working on the electrics for the downlights

New ceiling is in!
New ceiling is in!

Roof raised under carport to work on ceiling
Roof raised under carport to work on ceiling

After a few camping trips, Wife and I were ready for a better bed. We decided to put in a a permanent (almost) full-size double bed to replace the folding table and squabs.  The mattress was made to order by a local bed manufacturer and is only 3cm shorter and the same width as a full double.  We also removed the wardrobe to get extra room for the bed.

The bed folds upwards to allow access to all the storage room underneath.

The kitchen was removed because we never used it and we always cook in the awning. ¬†This allowed room for the bed, too, and I’m making new cabinets to fit the smaller space.

Out with the old table and bed
Out with the old table and bed

Half-way through making the new bed
Half-way through making the new bed

The next job were a few interior modifications. I added a shelf at one end¬†for baskets (clothes etc) that folds up against the wall. We’re removing the wardrobe, so we need extra storage. Another shelf is planned for the other end, but hasn’t been done yet. ¬†Also added a side for one of the beds – our girl was only 1yr old at this stage and we didn’t want her falling out!

Folding shelf - up
Folding shelf – up

Folding shelf - down, with baskets
Folding shelf – down, with baskets

Side on bed for baby
Side on bed for baby

Next up was a new floor to match the ceiling.  The old lino floor looked pretty horrible compared to the ceiling!

Out with the old floor
Out with the old floor

New floor cut to shape
New floor cut to shape

New floor glued down
New floor glued down

New floor finished
New floor finished

Currently I’m building the¬†new¬†cabinets to replace the kitchen that was removed (kept the fridge) and prepping the interior for painting!