Maslow Home Maslow Community Garden Newsletter

Summary of Initial Experiences

Just wanted to share some notes from my initial experiences in case they’re helpful to others.

MaslowCNC_Notes.docx (3.8 MB)


reformated your word doc so people can read it online easier:


In this document, I’ve made a bunch of notes related to my initial experiences with the Maslow. Hopefully they’ll prove useful for future newbies :blush:.


I incurred the following costs to get everything up and running:


  • Scrap MDF used for first cuts
  • Vacuum cleaner for dust extraction
  • EMO button + necessary cabling
  • Clamping – you can always screw your workpieces to the waste board, but I wanted to experiment with something else. There’s more on this later.


Router models use different names in Europe compared to the US. In retrospect, I should have already known / realized this, but it took me a while to get there. For example, the DeWalt 611 1.25hp (MakerMade recommended choice) is called the “DeWalt D26200-GB 900W” in Europei (which – despite my use of “z” in realized is where I’m based).

From the router manual (for reference purposes):


I opted for the standard frame as described in “Assembly_6.15.2019.pdf”. This was mainly because I didn’t have the wall space available to secure the frame described in “10ft-Standard-Frame-Guide-v1.pdf”.

If I was doing things again …

  • I’d probably opt for the 12’ top beam with 15’ chains for improved accuracy closer to the edges.
  • If I stuck with the 10’ top beam, I’d likely make the top beam a little longer than recommended 10’ to accommodate the screws used to mount the XY motor housings a bit more comfortably. An extra inch would already be plenty.
  • The kicker struts that support the waste board and ultimately the stock material can be clipped by the bricks. At the bottom-left and bottom-right areas of the working area, the sled comes quite close to the kicker beams, and both bricks straddle the kicker.

The picture above is obviously contrived, but it’s intended to illustrate the point. If the edge of the sled was closer to the bottom of the waste board in the negative y-direction (which is absolutely possible), we’d have one brick on one side of the kicker while the other brick is on the other side of the kicker. If one opts to make a pure move in the positive x-direction, the left brick will collide with the kicker beam. This could of course be resolved by changing the angle of the bricks, using smaller bricks etc. Ultimately, I ended up replacing the bricks with 2x smaller format 2kg weights.

  • In Ireland, the 4”x2” lumber lengths were 17’. It was therefore possible to cut all necessary frame parts using 5 lengths. Additionally, the 4”x2” lengths were actually 3.75”x1.5”.
  • At step 3/4C of “Assembly_6.15.2019.pdf”, the back legs are rotated outwards.

Prior to this, the back legs were centered w.r.t. the front legs using a single screw.

When I rotated each of the back legs out, the top corner on each extended beyond the front face of the front leg, i.e. where the waste board is going to be mounted. I ended up having to cut these two protruding pieces off in order to secure a flush surface for the waste board.

This issue could be avoided by offsetting the “rotating screw” relative to the center of the front leg. The most likely reason for this is because the 4”x2” lumber is actually 3.75”x1.5” as already mentioned.

  • During the build it states:

I personally found it easier to leave the legs standing.

  • In “10ft-Standard-Frame-Guide-v1.pdf” (which I did use for the mounting of the electronics), the following is stated:

I believe the 62” referenced should be 47”:

  • The distance from the motor to the nail is 15in.
  • The distance from the nail to the “thumb loop” is 16in.
  • Therefore, I would have expected the total chain length from sprocket to nail to be approx. 15in + 2x 16in = 47in.

That said, the actual chain length doesn’t appear to be that critical at this step. I actually ended up increasing the length beyond 47” as it made it much easier & (I felt) safer to connect the spring tensioner between the two sprockets. As a sanity check I used the following figure from step 12D of “10ft-Standard-Frame-Guide-v1.pdf”:

Knowing the top beam is 10’ long, I could roughly calibrate myself as an extra sanity check. I ended up with ~60” which is very close to the 62” mentioned in the instructions. This means the thumb loop needs to be at ~23” instead of 16”.

  • Given enough workshop wall space, I’d definitely opt to mount the top beam to the wall per “10ft-Standard-Frame-Guide-v1.pdf” rather than building the (older) standalone standard frame.


I initially thought it almost impossible to set the final height for the ring carriage until the frame had been built and everything had been put together. The ring carriage height is set to ensure that the chains are held equidistant across the working area of the board in order to keep to chains and motor sprocket co-planar.

Shortly afterwards I realized it is possible to calculate knowing (in the z-direction):

  • The distance from the sprocket to the top beam (~15mm) (+ive)
  • The thickness of the top beam (1.5”) (+ive)
  • The length of the 7” beam (7”) (+ive)
  • The thickness of the front leg (3.75”) (-ive)
  • The thickness of the waste board (0.75”) (-ive)
  • The thickness of the sled (15mm) (-ive)

Total = 15mm + 1.5” + 7” – 3.75” – 0.75” – 15mm = 4”

Actual distance measured from the top surface of the sled to the ring = 3.75”, meaning that if I typically operate with 0.25” material (~6mm), then things are well aligned. If I operate with thicker material, then the ring would need to be lowered closer to the top surface of the sled. I think it’s pretty marginal at this point, so I’m happy enough. I’ve also seen a design (from MeticulousMaynard I think) where the top beam can be adjusted in the z-direction to accommodate different material thicknesses.



I did not see the following per the “Calibration-Makerverse-1_1_2.pdf” instructions:

Rather my connection was simply labelled as “COM6 Microsoft” (no biggie). The actual connection worked fine.


(see Maslow | Makerverse Docs for help on the calibration)

NOTE: When I initially started the calibration, I was a bit nervous about the z-axis, so I wanted to retract it close to the end of its physical travel. I ended up hitting the z-axis soft limit however but didn’t know what had happened for a while. This is where “Reset” and “Unlock” buttons in Makerverse became my friends.

I also ended up temporarily changing the value of the soft limit as well as completely disabling the soft limits by entering the following in Makerverse’s console window :

$20 = 0

Here, I should probably just permanently change the value of $92 to, e.g. 30mm which then allows me to change the router bit comfortably without removing the router and re-enable the soft limits.

“$92”: {

“name”: “$92”,

“value”: “12.700”,

“units”: “mm”,

“message”: “Z-axis minimum travel safe distance”


This section outlines the calibration values I ended up with.

  • Chains are 11ft long (=> full length = 3360mm). In the on-line help for the calibration 12ft chains are referenced with the same 3360mm, which is incorrect. This should read a chain length of 11ft. The value of 3360mm which is more important is correct.

  • Rotation disk radius = 139.1mm (standard M2)

  • My sled weight (including router + bricks) = 1 stone 10lbs (I didn’t have a scale in kg at the time)

1kg = 2.20462262185lbs => 1lb = 0.4535923699997kg

1stone = 6.35029kg

Total weight = 6.35029 + 4.535923699 kg = 10.8862137

kg to Newton = 9.80665 => total weight in Newton = 106.7572876

I later replaced the 2x bricks with 2x 2kg weights bringing the total weight to 10.2kg = 100N.

  • Stock width and height are standard (8’ x 4’), though the actual measurement in the longer direction was slightly different. I used the actual measurement in the end.
  • Distance between center of motor sprockets

= 3012mm (first measurement)

= 3013mm (second independent measurement)

I used 3012.5mm in the end.

  • Distance from center of motor sprocket to top of waste board

= 410mm (do not use !! - first [poor quality] measurement)

= 431.5mm (improved measurement … several repeats confirmed the

same value)

  • After setting the chains (***** I used white tippex at 12 o’clock position of sprockets *****), the distance from the top of the waste board to the top of the sled

= 713mm

  • Offsets relative to center of waste board after this step in the setup:

x = ~1mm

y = ~2.5mm

Edge Calibration

This step measures the distance from the edges of the waste material to the sled.

No drilling / milling involved.

Due to the curved shape of the sled edge, there will be an inherent inaccuracy in the measurement that is corrected in the next step.


Setup: I opted to drill 1mm deep holes 231.5mm from the edge (9.1") of the waste board.

This is to prevent that the bottom of the sled hits the kicker beams on which the waste board is supported (as mentioned earlier)

  • Router speed = 5 (1 would have been equally as good)
  • Router bit = 1/8" straight cut

At some point in time (days after my initial calibration), $102 changed from its default of 472.5 steps / mm to :

“$102”: {

“name”: “$102”,

“value”: “918.750”,

“message”: “Z-axis travel resolution”,

“description”: “Z-axis travel resolution in steps per millimeter.”,

“units”: “step/mm”


I noticed this on 30-May-2021, but I’ve no idea how it happened. I had checked it previously during the calibration setup and it was set to its correct default value.

For subsequent “Precision” re-calibrations I ended up using pieces of masking (painter’s) tape at the approximate locations of the previously drilled holes in order to distinguish the new holes from the old.


Date: 25-May-2021


“chainLength”: “3360.000”,

“distBetweenMotors”: “3014.500”,

“motorOffsetY”: “428.500”,

“leftChainTolerance”: “-0.103”,

“rightChainTolerance”: “-0.197”,

“sledWeight”: “106.800”,

“chainOverSprocket”: “2”,

“rotationDiskRadius”: “139.100”,

“chainElongationFactor”: “0.0000051685”,

“machineHeight”: “1219.200”,

“machineWidth”: “2438.400”


Date: 01-Jun-2021 (with new 2x 2kg weights)


“chainLength”: “3360.000”,

“distBetweenMotors”: “3014.500”,

“motorOffsetY”: “428.500”,

“leftChainTolerance”: “-0.103”,

“rightChainTolerance”: “-0.197”,

“sledWeight”: “100.000”,

“chainOverSprocket”: “2”,

“rotationDiskRadius”: “139.100”,

“chainElongationFactor”: “0.0000051685”,

“machineHeight”: “1219.200”,

“machineWidth”: “2438.400”


Date 04-Jun-2021 (after using the physical measurement of the waste board and performing a “Precision” calibration)


“chainLength”: “3360.000”,

“distBetweenMotors”: “3011.500”,

“motorOffsetY”: “427.500”,

“leftChainTolerance”: “-0.128”,

“rightChainTolerance”: “-0.255”,

“sledWeight”: “100.000”,

“chainOverSprocket”: “2”,

“rotationDiskRadius”: “139.100”,

“chainElongationFactor”: “0.0000051685”,

“machineHeight”: “1219.200”,

“machineWidth”: “2439.500”




I currently use Carbide Create to define the tool paths (& LibreCAD to create the initial drawings).

Make sure the following settings are used in Carbide Create:

  1. Set the “Zero Height” to “Top”. This might feel a little counter-intuitive but does make sense and more importantly perhaps - works !

NOTE: The absolute zero in the z-direction should still be set to the surface of the waste board material as part of the initial setup.

  1. Under “Edit  Select Post Processor”, select “Basic G-Code”. I’ve tried GRBL expecting that to work, but when running, the system errored out with “invalid gcode id 25”.

Update 02-Jun-2021: I’ve since experienced this error again – even when using the Basic G-Code post-processor on a file that had previously run perfectly before, so perhaps simply resetting the board would have fixed the issue the first time around with the GRBL post-processor.

Update 13-Jul-2021: Having experienced this situation multiple times since, I find that sometimes disconnecting and reconnecting solved the issue while other time re-generating the g-code file appeared to help (I think this was more coincidence than causal).

  1. Speeds and feeds wise, the following settings appeared to work comfortably with MDF:
  • Plunge speed: 100mm / min
  • Feed rate: 500mm / min
  • Spindle speed: 16000 RPM


  • The 3x starter bits have a 1/8" (3.175mm) shank.
  • Wood engraving:

One of my earliest cuts involved engraving “Hello World” onto a piece of scrap MDF. In general, I was pretty happy with the results, but it was also clear that at some points the wall thickness was insufficient to hold the letter in place. I’d either have to use a smaller diameter bit or increase the font size.

So, then I found this:

These router bits do not appear to be available in Ireland however. They were available on, but not for shipment to Ireland.


For now, I opted for the “Cen-Tec Systems Quick Click 95237 32mm Vacuum Cleaner Power Tool/Sander Dust Extraction Adaptor Set (19-58mm)” (see link) together with a standard household vacuum cleaner. I actually only needed two pieces from the set together with some kludging, but I thought the other pieces might come in handy someday anyway for other power tools.

I then used silicone to stick the piece that I cut to the acrylic dust cover as well as mounting the dust collection bracket and feeding a cable tie through it and around the adapter piece for additional support. The silicone has since detached itself.

I might eventually transition to something like the “ONCCI Professional Filter Separator Cyclone Dust Collector Extractor/Vacuum Separator/Suction Vacuum Cleaner Separator with Accessories Set (Typ-1)” but as yet I’ve no real need to do so.

I actually noticed at some point during a “Precision” calibration that the dust collection system was creating a vacuum between the sled and the waste board (no work material was mounted at the time). I ended up turning the ring shown below to adjust the air flow in order to reduce the vacuum force somewhat, but it was still noticeable afterwards.

NOTE: The vacuum cleaner I’m using doesn’t have a variable suction setting.

I’m not sure yet if this is effectively increasing the weight of the sled and perhaps needs to be included in the math?? Either way it doesn’t appear to be affecting the cut results (yet).

I can imagine that during a negative y move, it acts to reduce chain sag but also make the motors work harder due to the increased tension, while for a positive y move, the chain sag increases??


A really nice clamping idea can be found at How to make the Ultimate Worktable Clamps - YouTube (Marius Hornberger). I think this is a really elegant solution which ensures the clamp is always below the surface of the work material for work pieces with thicknesses > 12mm – which really appealed to me.

Instead of using the copper pipe idea from the original design, I opted for M6 x 13mm inserts with a 75mm XY-spacing on the waste board. The main reason for this was because I figured I’d be able to use the inserts for the type of clamping illustrated below should the original plan not quite work as desired (though the clamps would then protrude above the surface of the work material).

M6 insert (see here). I drilled 8mm holes in the waste board to accommodate these guys.

M6 bolt (see here).

Washer (see here).

In order to cover the full waste board, I’d need a lot of them so I “strategically” placed a few to begin with. There are two versions of the clamp in Marius’s template: an original and a mirrored version. I found out the hard way that the mirrored version was required under certain circumstances in order to avoid situations where the handle would otherwise need to be over the material surface in order to achieve locking. The “B” version of the clamp in the photo below is my mirrored version which resolves the described “issue” in those specific circumstances.

Front side of waste board (top).

Front side of waste board (bottom).

Back side of waste board showing M6 insert (with bolt inserted).

I ended up taking the DXF provided and modified it to suit my needs. Installing the clamps is obviously much slower than with the copper pipe, but that doesn’t bother me.


  1. Use the g-code viewer at to make sure everything looks ok before starting a cut.

  2. If you don’t want to start from the absolute (0,0), make sure to use these buttons to set a working zero, once you’ve manually positioned the sled where you want it.

  3. I found the following article on speeds and feeds both interesting and helpful (Technical - Speeds & Feeds). If you didn’t already know it before taking the Maslow plunge, then the Maslow feed rates are probably right at the bottom of the food chain, so most – if not all – of the calculators out there won’t be very helpful.

  4. The max quoted feed rate for the Maslow that I found in various forum discussions is 48 in/min which translates to 1219.2mm / min. “Typically”, people have reported using 30in / min. I’m opting for ~19.7 in / min here.

  5. It’s important to make sure that you use a plunge speed that is lower that what the M2 is actually capable of. Otherwise, the XY movement may start before the z-move plunge is complete. I use a pretty slow plunge speed of < 4in / min.

  6. I was a little surprised I couldn’t find some kind of “best known methods” table for the feeds and speeds people are already using for different materials / thickness / bit combinations. I did manage to find a couple of forum discussions on the topic, e.g. Speed and feeds questions and Shopbot PDF: Selecting the Right Bit; Feeds & Speeds Chart - #3 by zaneclaes together with a reference to a WiKi page that looks like it was intended exactly for this purpose (Stock Materials · MaslowCNC/Mechanics Wiki · GitHub), but is not fully populated.

  7. Early on, I noticed that the feed rate in the x-direction appeared to be slower than in the y-direction. I let this slide for a while, but eventually did a test using the following G-code:




M0 ;T102




M0 ;T102


M0 ;T102






[mm] Requested Feed Rate

[mm/min] Move Distance

[mm] Move Duration

[sec] Actual Feed Rate


So even though a feed rate of 500mm/min is reported in the “Status Reports” section of the MakerVerse GUI, it would appear that the physical feed rate is different.

After changing the feed to 762mm/min, I got the following results:


[mm] Requested Feed Rate

[mm/min] Move Distance

[mm] Move Duration

[sec] Actual Feed Rate

0,0  500,0 500 500 48 625
500,0  500,500 500 500 30 1000
500,500  0,0 500 707 60 707

So, in terms of scaling:


[mm] Expected Scaling


(762 / 500) Measured Scaling


The full story can be found at Feed Rate discrepancy in X and Y


I’ve tried 3mm wide and 1mm high for 6mm plywood  Result OK


My initial setup (described previously) was all performed on a Windows 10 64-bit system that I also use for everyday tasks. As I didn’t want to be constantly moving the laptop around or having it in a dusty environment, I decided to resurrect an old Windows Vista laptop to run Makerverse on.

While I won’t go into every nitty gritty detail, below are some of the highlights:

  • Because the laptop was so old, it would only support an upgrade from Vista to the 32-bit version of Windows 10. I later discovered that Makerverse requires a 64-bit installation.
  • I therefore decided to turn it into a dual boot system – Windows 10 and Linux. This was possible because the laptop did not support UEFI.
  • I installed v18.04.5 of Lubuntu as this distribution of Linux was recommended for low end systems.
  • I then booted from the USB stick and closely (but perhaps not exactly) followed the instructions outlined at How to Install Lubuntu 18.01 Alongside Windows 10 to get the Linux installation up and running.
  • I still planned on using the higher end (daily use) 64-bit Windows 10 system for CAD / toolpath generation, but then needed a common share between the Linux and Windows 10 systems to facilitate file transfer. To achieve this, I followed the steps outlined at This includes installing a SAMBA server on the Linux system.
  • I then installed the Linux version of Makerverse for 32-bit systems from Release Makerverse v1.1.2 · makermadecnc/makerverse · GitHub (see the file with “app-linux-ia32” in the name) where the “ia32” indicates Intel 32-bit.
  • It was then necessary to change the permissions on the USB port in order to allow Makerverse to communicate with the Arduino board. This was achieved using:

sudo chown a+rw /dev/ttyACM0

where “ttyACM0” corresponds to the port name.


i This is the router I’m using myself.

1 Like