Introduction: Toy Wood Mazes (with G-codes)

  • This is my first instructable, so if you like it please vote for me in the CNC contest.

Please forgive the pictures being grouped at the beginning of each section and the g-code files at the end. I could not figure out how to place them where they would naturally go.

Our woodworking club and others in our retirement community make toys for underprivileged children. We distribute them among 7 different local charities. Most are given as Christmas presents, but others are given to traumatized children to help comfort them.

My woodworking skills are marginal at best, so I decided to use my Chinazone 3040 CNC router to make some wooden mazes. The same process of drawing up the maze could be used with a hand router, but that is way beyond my skills.

I couldn't find any existing program to create wooden mazes, so I had to create the g-code manually. Anyway, here is the process and the decisions I made to create ever more complicated mazes.

First, I realized that the printed mazes that you use a pencil to go from start to finish use thin lines and wide pathways, while for wood we need discrete 3D blocks to form the walls. This meant I couldn't use any preprinted maze.



All the supplies can be ordered from Amazon or eBay.

* BB's are cheap and plentiful. Use gold colored BB's--they look better.

* Plywood delaminates producing an ugly, rough pathway, so it was eliminated. Wood is preferred, but with the pandemic, our shop was closed, so I had no access to the tools necessary to plane it to the proper thickness, etc. Half-inch thick MDF is cheap, widely available, machines well, and is already at a good thickness for quarter inch deep channels.

Acrylic or polycarbonate sheet is relatively cheap, so it was used for the cover.

* Clear Gorilla glue was used to glue the plastic to the MDF. It is available everywhere.


* Saw to cut the MDF.

* CNC router or (if you are and experienced hand router user) a hand router.

* Mach 3, or other control software.

* Sandpaper, if there is any roughness after machining.

* Sharpie, pencil, thin paint brush, etc. to mark the start and finish areas.

* Gloves when handling glue.

Step 1: Drawing the Maze

Standard BB's are 0.187 inch in diameter. A 0.25 inch down-cut router bit provides a perfectly sized channel with no finish sanding required.

Using different sizes for the wall and channel thickness just makes things too complicated, so a grid was drawn using quarter inch squares. Luckily, I had some graph paper with quarter inch blocks. Excel or a drawing program could also be used to draw up the grid.

My method was to draw the path through the grid and then color the blocks for the walls. Then, the nodes (places where there is a change in direction) are numbered. Above is the drawing of my first maze. It is 6x6 inches.

    Step 2: Generating the G-code

    Per convention, X=0, Y=0 is placed at the bottom left corner. A 0.25 inch border around the maze was used. Mach 3 places the center of the bit in the center of the block, so the thickness of the router bit must be taken into account. For instance, for node A (I started with letters, but quickly ran out) the bottom left of the square is X=0.25, Y=0.25. However, because the center of the bit must be in the center of the square, for node A, X=0.325, Y=0.325. This applies to every node. The X and Y values are shown at the top and right sides of the grid.

    The start and finish areas are drilled 0.025 inches deeper than the channels to allow the BB to come to rest there.

    To generate the g-code, I used Mach 3's excellent editor. I took the start and finish "boiler plate" g-code from an existing program, erased the existing g-code, and saved the file as "g-code starter". Then, I tediously added each and every X, Y, and Z value. The rule of thumb says that the depth of cut should be 1/2 of the bit diameter, which would be 0.125 inch. This is not deep enough for a 0.187 inch BB, so 2 passes are necessary. I used the comment feature (parentheses) on each line to name the node for these points. This made troubleshooting and modification easier.

    Step 3: Making the Mazes

    At his point, it was necessary to make several "dry runs" using Mach 3. I would click the "cycle start" button and switch to the "tool path" screen for a better view. The more nodes, the more passes are usually required to debug unless your eyes don't cross as often as mine did while entering all X, Y, Z values for the nodes. For example, once I forgot a decimal point and saw that one node was 5 inches outside the maze. So, take your time. Watch the path as the as the virtual tool moves and don't forget to watch the Z values, too. Experience and ruined maze speaking.

    After you are convinced that there are no errors make the first one. Adjust as necessary.

    I let my daughter try my first 6x6 maze. She said that it was too easy for kids raised on video games, so I made a 6x6 maze which starts and finishes in the center.

    This still wasn't hard enough, so I made a 5x8 inch maze and used multiple paths. The instructions stated, "There are at least 10 different paths from start to finish. How many can you find?"

    Lastly, I made an 8 1/2x11 inch maze (the size of my acrylic sheet). Unfortunately, after I had made 2 mazes, my supplier went out of business and I had to buy and cut 12x12 inch sheets of polycarbonate.

    The g-code was too long for Mach 1 to process on my machine, so i had to divide it in half.

    The g-code files are given below.

    To finish, color the start and finish areas and glue the cover to the maze.


    • The sawdust from MDF is apparently kind of sticky. After the mazes are cut, there will be sawdust left in the channels. Vacuuming isn't enough to remove it. I used a bamboo skewer to run along the edge of each of the walls of the pathways to dislodge it. Then, it can be removed by vacuuming.
    • I tried various methods of marking the start and finish locations. None were ideal. Sharpies are too big and mark the side walls without covering the entire area. Paint would be too much of mess. I finally used a soft lead pencil.
    • Acrylic is easily broken to size. Just use a straight edge and a sharp blade to score a line where you want it to break. For me, scoring 5 times was enough. Then, place it on the edge of the workbench with the scribed line on the edge, hold the larger side down on the surface of the workbench and quickly press down on the smaller side. It will snap easily. If it doesn't, scribe it several more times. The polycarbonate had to be sawn.
    • Clear gorilla glue works well to attach the plastic to the MDF. It also allows adequate time to adjust the position
    • A round-over bit should be used to soften the edges of the plastic and the MDF to prevent cuts.
    • PLEASE NOTE THAT WHEN CUTTING THE 8 1/2 X 11 MAZE THERE IS AN OFFSET! Use the editing portion of Mach3 to read the heading to correct for an arithmetic error. Another good idea is to always cut your blank oversize and cut to final size after cutting the maze.

    That's it. Good luck making your own. If you make a harder maze, I would love to see it.

    CNC Contest 2020

    Participated in the
    CNC Contest 2020