Maslow Home Maslow Community Garden Newsletter

The Maslow Manual V 0.001

Maslow was created by @bar as a way to bring cnc to the average user on a budget.

Chapter 1 Overview and Frank Discussion

A Maslow system is a community-supported, open-source, computer-controlled wood-cutting router mounted on a frame controlled by three DC motors. It takes input from gcode generated from a number of different CAM software programs. It is built on a tilted frame to minimize the footprint and hangs with two of the motors controlling chain length for position control and one motor controlling the height of the router for depth of cut. Targeted at one full sheet of plywood or mdf as a cutting piece, Maslow can be sized up or down to fit the desired user cut area. Control software consists of two machines working in concert. The motor controller is currently an arduino Mega that takes gcode lines one-by-one from a computer to which it is USB tethered. The firmware on the arduino is specific to Maslow and the Ground Control or Web Control software running on the control computer is also specific to Maslow. Both source codes are available and can be modified as the user desires. Several small businesses supply parts or kits which include motors and electrical hardware, sleds, rings, chains, etc. to help a user get set up and started, but there is no “Maslow customer service” department standing by to take a call, which is why the cost is so low. There is no guarantee it will work and the purchaser must build the system. The average builder, with all the parts on hand, can make a frame in a day. Putting the electronics together, mounting the motors and controller may take a couple hours. Calibrating, building the temporary sled, cutting the sled, and then building the full sled may take half a day to a day, so it is expected if done continuously, the build time is roughly 3 days. The user’s ability to be precise in construction the frame and assembling the controls will largely determine later how accurate and precise the system will be. This manual is an attempt to help a new or potential user find answers and perspective on the system and its use and configuration.

While on the subject of cost, it must be mentioned that the advertised price of Maslow is for the unassembled kit, which may or may not include the router. Some kits include a sled, some do not and have basic instructions on how to make one. The price of admission is low, but it is not the whole story. A new user must plan on frame material costs, electrical switches (if desired) for the various components. Emergency shutoff switches are recommended, but not required and additional upgrades that will become apparent once improved functionality or reliability is desired. There is always another upgrade or an improvement that can be made and turn-key just isn’t part of the vocabulary in this community with respect to this system.

A potential Maslow owner must have patience and an interest in making things work, solving minor problems and experimenting. A Maslow is NOT a turnkey high-speed industrial CNC mill. One of the most common complaints is that the Maslow is slow. It is limited to 48 inches per minute feed rate because of the control system and motors that were chosen to keep costs down. Professional systems start at roughly 10x the cost of a Maslow for much smaller cut sizes and have professional tools and support standing by. The good news about Maslow is that it is user owned, operated, and supported. Those who help have an interest in improving the platform. While the Maslow community is not paid customer service, it is a collection of individuals, hobbyists, professionals and interested folks who share a common interest in the system. The community survives because each has something to offer and some experience that is of value. Sharing earned knowledge and wisdom with the new users who are working to get going is encouraged. Any user can provide welcome input to improve system capability. With respect to design sharing, ideas, suggestions, and other discussions, the forum and community garden are evidence that there is a wealth of information available for free with tips and suggestions for how to best get the desired results.

To build a standard Maslow, a cube roughly 10’ wide x 5’ deep x 8’ high will be required. Users have installed these in garages, basements, workshops, outside, and in various rooms in areas larger and smaller than the cube mentioned. While the standard frame can hold a full sheet of plywood, it is generally accepted that one can only cut to within 6" of the edge to keep the sled from tipping off the side. There are frame modifications to allow more complete use of the work piece. With the standard 10’ beam, cutting in the lower corners also becomes a challenge without user intervention. If a full size sheet is the desired work-piece size, consideration should be given regarding upgrading to a 12’ top beam. A nice calculation tool that provides data in a google spreadsheet regarding chain force and sled weight is available here. (LINK)

In summary, a Maslow is an open system with the flexibility to be fully customized by the user, it is low cost, and can provide a savvy user great value once the time has been put in to build the system.

2 Likes

Chapter 2 General Setup Information

Congratulations, on getting your Maslow. Now that you have committed to this project, be aware there are some design choices that should be considered when building a frame. The frame build instructions are simple, but not exactly precise. The desired work piece slope is 15 ° from vertical. When building the frame, the system will function +/- 5 ° of this. If too steep (< 10°), then the router sled will tend to tilt away - the top will pull back from the work surface making a shallower cut- when it is near the top center of the work area when the chains are pulling at the sled from the sides. If the frame angle is too high of an angle (> 20 °) then the sled weight contributes more to friction and impedes the sled movement often resulting in irregular cuts in the lower corners because it sticks (diagram here).

Sled considerations. Most use wood,


some use metal,

some put plasic for lower friction and still others totally customize their sled

Understanding the center of gravity of the sled will help with proper ring height adjustment and weight selection for maximizing cut area and minimizing sled tilting or pulling away from the work area. For consistent cuts, the router sled surface must remain in close contact to the work piece / sloped frame surface. Forces that pull the sled in a tipping motion will disrupt the bit penetration angle and cause irregular cuts. Set the ring height based on the “hanging test.” Then set the motor distance from the work piece for the ring height so the chains are equidistant from the work piece between the motors and the router and don’t pull the router away or into the work piece (diagram here). When assembling your sled, please be aware of ring height, total weight, smooth z-axis motion, absolutely centering the ring and the router and how that router z axis motion will allow dust collection.

Much time, effort, and angst has been expended on the z axis of the sled. There are several options including

a metal c-channel,

the beefy z,

a wooden “meticulous” option,

a 3D printed option,

and the

standard z-axis for the rigid router.

Attaching the router to the z-axis movement can be accomplished with a 3D printed clamp option, a metal clasp, or a wood clamp mechanism for either a c channel or a meticulous axis.

For routers other than the rigid, the standard z-axis may not be recommended. With the rigid router, don’t forget the [bungee] to keep the position copressed down to maintain consistent height whether moving up or down (Z-Axis Bungee To Ensure Correct Depth).


If you experience issues with your standard Z-axis, please be sure the clamping mechanism is closed, but not tight to prevent movement. Some suggest and use dry lube on the router body to help avoid binding during z-axis movement. If your movement arm is having trouble with too much slop, please check here for options to repair or improve its function.

A dust collection / vacuuming can be a great help in maintaining a clean safe work area. There are several approaches. If a channel is cut in on the bottom of the sled, that channel can serve as a suction cup to make moving the sled very difficult. Any rough edges on the bottom of the sled should be rounded or at least chamfered to prevent the sled from catching on uneven cut surfaces. Many of the options offer a 3D printed vacuum hose attachment option for dust removal.

Assembling the electronics is simply plugging in the cables. Plug them in all the way. Plug the power into the shield, NOT the arduino plug (picture). Use a USB cable shorter than 6’ for best signal. route your router power cord away from your z-axis wire.

Chain guides to avoid gear jumping are an option. Be sure to mark your chains after they are fully extended for that one time when you have to reset the chain lengths. This will save you time from the entire recalibration process. A sharpie mark or nail polish on the chain over the 12:00 link after the first extension will save much time later. Additionally, when hanging the sled, use the second roller. The one with the pin in it, NOT the first one because the first one can come loose. There is risk of creating a pendulum out of your router and the only time it will tell is doom.

2 Likes

Chapter 3 Software Installation and Options for Maslow Control

This section discusses finding and installing the latest software for controlling the Maslow system. The system operates with two required pieces: The microcontroller or controller (Arduino Mega) and the interface system that is some other computer the controller connects to via USB. The user interface is a program executing on the interface system and it can either be groundcontrol or webcontrol. GroundControl has a programmed user interface that can be accessed and manipulated with a mouse/trackpad and keyboard, touch screen or stylus.
WebControl runs as a server and the user can interact with it through a web browser pointed at the interface system IP address on port 5000 (192.168.1.x:5000 where is is the local ip address for examlple). Webcontrol and Groundcontrol perform the same function which is to send designed gcode files line by line to the Maslow controller. The controller moves the motors and keeps track of the sled location and calibration information. Designing and generating gcode will be covered in the workflow section discussed in Chapter 4.

##Controller Firmware
The Arduino mega 2560 runs compiled C source code that is available [here (MaslowCNC)] (https://github.com/MaslowCNC/Firmware) or [here (Madgrizzle)] (https://github.com/madgrizzle/Firmware). This is what needs to happen: You will need to download the source code, unzip it into a folder. Install the Arduino program if not already installed, Open the source code in the Arduino program. Set up the target device to match your controller, compile the source code, and transfer it to the Arduino.
On the github download pager are instructions for setting up the Arduino Integrated Development Environment (IDE). Before following those instructions, click on the green CLONE button.
image
To save a copy of the repository, select Download Zip.
image
Unzip the file into a directory and then follow the instructions.

Using Arduino IDE

  1. Download Arduino IDE 1.8.1 or higher
  2. Install Arduino IDE and run Arduino IDE
  3. Navigate menus: File, Open
  4. In the file chooser navigate to the cloned repository and choose the “cnc_ctrl_v1.ino” file to open
  5. Navigate menu: Tools, Board, change to “Arduino/Genuino Mega or Mega 2560”
  6. Plug in your Arduino USB cord, select where to find it in Arduino with Tools -> Port
  7. Navigate menu: Sketch -> Upload (or use the right arrow on the toolbar).image

When completed, the arduino program should say “upload complete.”

Ground Control

Ground Control used to be the standard method for you as the user to control and communicate with Maslow.
Please use Web Control.

Web Control

Web Control is a python program that runs a web server so user interaction with Maslow is with a web browser either on the same machine or connected to the same network. The machine running Web Control is connected to the Maslow via USB. Web Control can be served from most common computers and operating systems including single board computers like the raspberry pi or other linux operating system variants. To date, it does not run on android or ios, though android and ios devices can be used to control the Maslow by viewing the web page.

General Installation Overview

  1. visit the webcontrol github page maintained by @madgrizzle.
  2. click on the release version
  3. download the appropriate version for your operating system
  4. unzip the file, for example:

tar -zxvf “file name” (in linux)

  1. in the webcontrol folder, execute webcontrol (click on it or call it via command line: python webcontrol)

Installing on the Raspberry Pi

There are two version of Web Control: the older “docker” version and the newer pyinstaller version. It is recommended that the pyinstaller version be used because it is easier to upgrade. To get web control:
To set up your RPI, you have 2 options for the basic OS called Raspian:

raspian Lite (current version is Buster)

or

raspian (current version is Buster)

the first option does not have the ability to display graphics. It is a command line interface (CLI) with just the cursor and looks like a terminal window. The second is the full desktop and since you have a touchscreen this would be the option.

In both cases, you do open a terminal window if you are on the desktop version or simply type in the command line (don’t type the "$ ". It represents a command line command):

mkdir webcontrol cd webcontrol
wget https://github.com/madgrizzle/WebControl/releases/download/v0.927/webcontrol-0.927-rpi-singledirectory.tar.gz tar -zxvf webcontrol-0.927-rpi-singledirectory.tar.gz

(927 is the version as of today. Verify the newest version here). Run the program:

cd webcontrol ./webcontrol & disown %1

Web control as a service

once you are certain it functions and you want it to run whenever the rpi is on, you can make it run automatically as a service

$sudo nano /etc/systemd/system/Maslow.service

You can name it whatever you want. Maslow.service, webcontrol.service… totally your call.

paste this in that file and adjust the Description, working directory, ExecStart if necessary:

[Unit]
Description=webcontrol
After=network.target

[Service]
ExecStart=/home/pi/webcontrol/webcontrol
WorkingDirectory=/home/pi/webcontrol
StandardOutput=inherit
StandardError=inherit
Restart=never
User=pi

[Install]
WantedBy=multi-user.target

then exit and save with CTRL+X, Y, Enter
to start it, type

sudo systemctl start Maslow if it works, then enable it and it will start automatically when you reboot. sudo systemctl enable Maslow
if you change the “Restart = never” line to “restart=always” then it will try to restart whenever it crashes, but it won’t allow itself to shut down when you click on the upgrade link. you will have to manually stop it.

Once you have the server side running, if you are on command line, you are done for now. To open the web browser on your desktop version, use your mouse to open the webpage and use “http://localhost:5000” as the web page address and you should be able to interact with it.

Type $ ifconfig in a terminal window, you can get your IP address and use that on your phone with :5000 at the end and control Maslow from your phone via webcontrol. Do the same on your design computer (whatever the type) and you can upload gcode to it. Import your groundcontrol.ini file using the actions->import button in webcontrol, to avoid recalibrating.

Adding SAMBA file share server to drag and drop gcode files

Another nice option is if you set up /home/pi/.WebControl/gcode as a shared SAMBA folder (instructions here), and give that folder permissions, you can open the folder from your design computer and drag and drop your gcode in without uploading via the web page. This is not entirely necessary, but I find it easy to do. More recently, when I generate gcode, I have it save there directly so no copying or uploading is required.

Configuring Web Control

FYI: settings and information are stored in the hidden .WebControl folder in a file named webcontrol.json

Upgrading from Ground Control: in your ground control folder, locate your groundcontrol.ini file and using the web page, upload the information to webcontrol. That should do it.


if you have more than one webcontrol machine, you can copy the webcontrol.json file between the systems to avoid recalibrating.

Web Control offers a number of features such as triangular calibration, optical calibration, holey calibration, quick configure, test motors/encoders, the ability to set up buttons or LED’s (when using raspberry pi).

All of the software in this section is free and the source code is available to modify if a specific feature is desired, and you don’t know how to add it, you can learn or you can post and ask if anyone else would be interested in it as well and maybe someone will add it.

3 Likes

Chapter 4 Design and Workflow options

Designing a cut-file and generating g-code is the goal of the work flow. A computer aided design (CAD) program or a vector drawing program can be used to create new designs. Once the design is finished, it must be translated to machine locations and speeds to create the cuts. A computer aided manufacturing or CAM program makes this translation. The translated file is made up of lines of text called g-code. There are several options for going from idea -> CAD -> Cam -> gcode -> Web Control -> Arduino / Maslow -> product. The software options are varied in capability, price, and ease of use. Some are web-based with cloud storage while others are commercial packages or even open source and available for free. Choosing a design path is typically influenced by prior design experience or lack thereof. If you are selling your creations, then you have fewer options that are free.

When ready to cut, one of the first lessons learned is how fast a bit can travel before it burns up. what kind of bits/mills will work
what materials and feed rates (system constraints)

1 Like

*Chapter 5 Calibration (covered in another wiki)

Chapter 6 Upgrade options
hardware (z axis or motors)
software (webcontrol)
electronics (controllers)

Appendix A: Troubleshooting

Appendix B: Contributors

(Author note: this is a wiki entry. Please edit this and not post after it. I wish I had a better manual so I could have help others by referencing it. Having been able to read something like this would have helped me get started. Perhaps your experience was similar. Share the gems you learned along the way or insert a link to your favorite forum post that discusses the topic you are interested in. - extra details to consider:

“Made the top rail very ridgid from top to bottom, figuring the sled hung from it. During initial setup the chain goes from one motor to the other and tensions the chain a lot. This bowed the top rail toward the front causing an error message. Stiffening it front to back cured that… Some of the downloading was a little cryptic especially the things on Github. A lot of choices that advanced users might understand. A screen shot highlighting what file to click on would make it easier…The bungy on the router trick for Z should be in the general instructions. The side lock on the router is a source of initial errors until you discover the issue. A specific workflow example would be nice…How to draw a part, how to create a tool path, how to generate a G code, how to get it to the Maslow. Which program allows design, tool path and post processor export. I tried a bunch, Fusion 360 required too much prior process knowledge, Easel too simple. Cut2D was just right for me. A little picture of a profile cut and a pocket cut told me what was being discussed…How to export a toolpath for Maslow. What Gcode to use, Gcode ATC in” isn’t the right one but I didn’t know ATC was automatic tool changer…I couldn’t get Ground Control to function reliably so I switched to Webcontrol. Good so far…Maybe a little trouble shooting info. My left motor wouldn’t measure out the chain for connection to the sled. At times during calibration the motors would turn in the opposite direction. A restart fixed it. Are those a function of the Arduino firmware or ground control."

1 Like

“Made the top rail very ridgid from top to bottom, figuring the sled hung from
it. During initial setup the chain goes from one motor to the other and
tensions the chain a lot. This bowed the top rail toward the front causing an
error message. Stiffening it front to back cured that…

the motors should be mounted so that the sprockets and chains are not very far
out from the front of the top beam, so you should not have problems with it
bowing towards the front. people commonly have problems with the mounts slipping
a bit, but not with bowing.

A specific workflow example would be
nice…How to draw a part, how to create a tool path, how to generate a G code,
how to get it to the Maslow. Which program allows design, tool path and post
processor export. I tried a bunch, Fusion 360 required too much prior process
knowledge, Easel too simple. Cut2D was just right for me. A little picture of
a profile cut and a pocket cut told me what was being discussed…How to export
a toolpath for Maslow.

I’m a bit leery of this. We got a lot of people off on the wrong path by giving
examples with inkscape/makercam, people got the idea that that was the only way
to do things and we had people asking how to export designs out of fusion 360 to
get them into inkscape or into .svg so they could use the ‘proper’ tool of
makercam…

as noted, some people like one approach, some like another. We need at least a
couple of examples before I would be happy with any there.

What Gcode to use, Gcode ATC in” isn’t the right one
but I didn’t know ATC was automatic tool changer…

If there is no explicit maslow option, grbl is probably going to be the best
choice you have.

I couldn’t get Ground Control
to function reliably so I switched to Webcontrol.

I think we are very close to the point where we should push webcontrol and
describe Ground Control as a depriciated version.

Good so far…Maybe a little
trouble shooting info. My left motor wouldn’t measure out the chain for
connection to the sled. At times during calibration the motors would turn in
the opposite direction. A restart fixed it. Are those a function of the
Arduino firmware or ground control."

probably settings, we have a number of troubleshooting things on the wiki
already, and a lot more in the forums. It would be great to have someone go
through the longer forum posts and make wiki pages of the troubleshooting
described

thanks @dlang for the responses. This was a post I got from facebook about things he would like to see included in a manual, so I dumped it at the end of the manual for reference to address. Thank you for your input. If ok with you, I’ll incorporate your response in the wiki above.

you have my permission to do whatever with what I post.

David Lang

1 Like