00 Final Project: Foam Crawler¶
A CNC Foam Sheet Cutter¶
The Foam Crawler is a low-cost CNC milling machine that can cut 2D shapes from foam sheets up to 600 mm wide and 30 mm thick and an infinite length. These foam sheet shapes can be used to fabricate: 1. Small and medium thin foam shapes 2. Large interlocking foam shapes 3. Casting and vacuum form patterns 3. Router templates (for wood, plastic, aluminum) 4. Fixtures and jigs (foam primary patterns create rigid secondary patterns)
Work Envelope: 600 mm x 30 mm x ∞ mm Machine Dimensions: 860 mm x 260 mm x 450 mm
For my Fab Academy 2020 Final Project I designed and built a CNC Foam Cutter. I have always wanted to make a CNC foam cutter that is more capable and easier to use compared to my first CNC machine I built the PhlatPrinter.
The laser cutter is one of the most powerful and easy to use machines in a Fab Lab. However Laser cutters are extremely expensive for a individual. Laser cutters are not easy to install and run at home.
A CNC foam sheet cutter is easy to use and is easier to install and run at home. Most importantly is that a CNC foam sheet cutter can be fabricated in a Fab Lab for around $300. A foam cutter can easily process 60cm x 120cm foam sheets (2x4 feet). This is much larger than a small laser cutter, rivals a large bed laser cutter, and is about 25% the work area of a full size shop bot.
The casting and molding Fab Academy session also reminded me that large molds and patterns can be made on a CNC foam sheet cutter. Stacks of foam sheet shapes make great sand casting patterns.
This machine will be the first of a series of machines for my Fab Shop project. I call it the Foam Crawler because the twin drive rollers appear to crawl across the foam. Also this machine has a shape and look similar to a Star Wars Sandcrawler.
What it can do¶
- Cuts CAD generated shapes in foam Sheets
- Uses a rotary tool or spindle to cut the Foam into the final shape or layers of a final shape.
In short it cuts sheet foam shapes humans want.
Slide of showing two examples of what the Foam Crawler can make. Left image is a small pace car with a foam body and base that looks like a giant can of liquid wrench. All the parts to make the body were made from CNC cut foam. The right image shows Radio Controlled airplane where the entire airframe is CNC cut foam.
Above is a video of the first ever Foam Crawler CNC Machine completed and operational on 2020-Aug-19. In the video the Foam Crawler is cutting a simple example to demonstrate its basic capabilities. See below for more details on what the Foam Crawler can do and how it was designed, fabricated and built.
Things fabbed from foam sheets:¶
- Aircraft (my favorite)
- Casting patterns (for casting plastic, cool and metals..so hot!)
- Router guide patterns for cutting wood and aluminum
- Super large interlocking foam objects (large glowing LED foam sculptures)
- Vacuum Forming patterns
- Antenna soldering and bending fixtures, for complex 2D and 3D shapes (helical, circularly polarized, etc.)
Advantages of foam fabrication¶
- Can be cut on low cost cnc machines
- Material (foam) costs are low
- Cuts Fast using minimal cutting forces
- Light weight
- Easy to fill and finish with light weight spackle, gorilla glue etc.
- 2D X Y foam shapes can be stacked in Z to make 3D shapes
- Can make patterns for casting metal with lost foam and sand casting techniques
Foam patterns and fixtures¶
CNC foam shapes can be used as master patterns and templates. These patterns can be used in conjunction with a router and a ball beating guided bit to route complex shapes from wood, plastic, and aluminum. The edges and tops of the foam can be hardened by brushing on epoxy to make a more durable guide surface. The top of the foam could be laminated with carbon fiber, fiberglass, or burlap and epoxy to make more durable patterns.
Foam drill fixtures can be used to very accurately located drilled holes by using the foam base pattern to make a HDPE drill fixture. These fixtures that will accept drill bushings. The HDPE secondary pattern would be much more durable and could be used over and over in short to medium production runs. The HDPE pattern could also be used to make and aluminum pattern that would be capable of high volume production.
Project Management Timeline¶
|June 23||Basic CAD Design of CNC Foam cutter|
|July 2||Ready or purchase final control boards and touchscreens|
|July 11 - 17||Purchase timing belts, pulleys, M8 hardware|
|July 12 - 22||Purchase bushings, taps and tap drills|
|July 4 - 18||Advanced CAD Design|
|July 19 - 25||Manufacture and assemble prototype machine structure|
|July 26 -Aug 1||wire and test machine|
|Aug 2 - 8||Troubleshoot machine, iterate, improve|
|Aug 9 - 15||Present machine to Fab Academy|
Bill of Materials¶
The following surplus parts will be used to build to build Foam Crawler CNC Machine:
|127||Stepper Motor Bracket For NEMA 23|
|35||Stepper Motor - NEMA 23|
|196||MakerSlide Aluminum Extrusions 1000mm long|
|40||40x40, 20x80, 20 x 40mm Aluminum Extrusions|
|78||Quiet Cut Spindles|
The following new parts will be used:
New Parts BOM¶
|2||FAN AXIAL 60X25MM 24VDC||6.94||13.88|
|2||FAN AXIAL 40X10.5MM 24VDC||11.35||22.70|
This concept shows how the rollers will drive the foam through them and basic spindle and cutting tool position.
Above is my BOM box so far as of 2020-Jul-15.
Above are my 2 BOM Boxes as of 2020-Jul-16. Stage 1 of of virtually assembling the machine. I will make design changes during this virtual assembly to make the machine perform better and make building and maintaining the machine easier.
I have been procrastinating for weeks now… I think I am afraid of… not being able to complete my Fab Shop machines. Afraid of not being able to guide others in building machines successfully. I have a huge block to use the practical down to earth with my hands machinist skill set I learned and used every day when I was so much younger. Have I been corrupted by slowly drifting towards a Manager who works less with my hands. Have I broken my pact I made with myself years ago:
“Never stop practicing the work of the workers yourself.”
“Always do direct hands work. This will allow you to stay connected with and understand workers. Do not become those who hold the workers down with their fancy speeches, and un-worked hands and corrupted excuses of why they get more than the workers.”
I am a hard working, hands on, Midwesterner. I deeply love that kind of work, so much so it does not seem like work when I do it. I haven’t done as much of that work as I would like the past few years. My job as a Manager is important, going forward however, I will do much more hands on work and delegate, say no to work that is not hands on.
Hello hands on, I am back!
Today I return to hands on stuff, adding my new Fab Academy skills.
Yesterday and last night I got a lot of work done. Here is my assembly model as of Sunday 3:30 AM
It’s been some time since I have done virtual assembly using CAD and,,, boy is it fracking powerful. This is the first time I have explored the assembly mates that Onshape uses. They work really well once you understand them. Onshape has excellent documentation.
At this point in time I have over 60 parametric assembly mates, and a BOM of 29 unique parts and a total parts count of 118. Above are some shots of my workspace as I design, 3D print, test and assemble in real and virtual worlds.
More screen captures of virtual assembly:
Time for final checks of X, Y, Z ranges in parametric CAD. Double check drive system geometry.
All looks as good as it’s going to get!
Time to mill the HDPE side plates on the 250x250mm X-Carve I have here at home. I have 3D printed all the parts needed. I went to Home Depot and purchased PVC pipe and fasteners that haven’t arrived from McMaster yet, PVC pipe is much cheaper than from McMaster anyway.
Hold Downs Inner Milling Outer Profile Milling
Text Milling Removing hold downs
2020-Jul-21 through 23¶
Corrections and updates Side plates with flanged bearings inserted Upper roller cradles installed PVC rollers sanded and ready for grip tape glues on with 3M 90 adhesive How to mark grip tape for trimming grip tape done Lower rollers test fit Z axis hand placed Upper rollers on foam Start of drive assembly
Testing rollers with hand feed and foam inserted. PVC pine is not straight enough, leading to wobble and gaps, and loss of grip on foam. Upper rollers need to be heavier, since a quick y move causes the rollers to slip. Drive train for Y axis being added. The pulley spacing is perfect putting a slight tension on the belt loop. There is a provision for a tensioner. Eventually I will use a single serpentine belt in a inverted T shape with two idlers to reduce the number of pulleys. This will also bring all pulleys in line with each other. Here are some of the earlier version of 3D printed parts. These have all been replaced by better part designs. I love iteration of complex parts with 3D printing, it allows quick changes in order to improve machine performance. 3D printers are so quiet and pleasant to run next to my CAD CAM work station. Over time I have come to really appreciate the accuracy and exactness of the Prusa MK3S 3D Printer I have here at home.
2020-Jul-25 & 26¶
Realizing that the PVC pipe rollers were bent, I switched over to aluminum conduit for the rollers.
This required re-designing and 3D printing new roller end caps.
I also switched to 8mm ground rods for all shafts, the M8 bolts I had been using initially were not round enough and introduced wobble.
2020-Jul-27 thru 30¶
I returned to work at the Museum of Science and Industry on July 27 and worked to get our Fab Lab open to patrons through July 30.
As of July 31 my staff is now running our Fab Lab and I am off on Furlough and vacation through Aug 11. I plan to use this time to relax and get the Foam Crawler CNC milling foam sheets. I also plan on presenting the Foam Crawler to Fab Academy on Aug 5 or 12.
I completed the X and Z axis drives.
I milled and installed the spindle mount.
GRBL gSheild Setup¶
I compiled, flashed, programmed and setup the gShield cnc control using grbl.
Installing and getting USB to work with the Arduino IDE on Linux is not well documented. Here is a good post to help: Arduino IDE on Linux Mint
The GRBL wiki has good instructions on how to compile and install GRBL: Grbl wiki!
Universal Gcode Sender(UGS)¶
After wiring up my 24VDC power supply, I plugged a USB cable between my computer and the Arduino UNO with gShield.
I fired up UGS and clicked the Port: to select the port the Arduino UNO was on.
Then I clicked the “Machine” and then “Connect”… and GRBL initialized and talked back! YES!
I then executed some jog moves, they worked moving my X and Y axis along with lighting up the green lights on the gSheild stepper outputs! Although the movements were very weak. I needed to set my stepper driver currents.
Setting Stepper Currents¶
I used the procedure on the synthetos/grblShield wiki Setting Motor Current to intially set the stepper motor currents.
Later I will verify the current settings with Vref measurements. This is a good guide on that process: Setting the stepper motor current limit from this page “The gShield (version 5) uses a 0.1 ohm current sense resistor so the formula is Vref = 0.8 * I.
The maximum current the driver chip can deliver with appropriate cooling is 2.5 amps. To use this current value you would set the Vref voltage at (0.8 * 2.5 amps) = 2 volts. This is the theoretical current limit.”
Note: the gSheild stepper driver are limited to 2.5 amps
|NEMA 28 X&Y Axes KL23H251-28-4A||0.8||2.5 A||2.0 V|
|NEMA 17 Z Axis SM42HT47-1684B||0.8||1.68 A||1.3 V|
I joined the students and instructors for the Saturday Fab Academy support session. Pablo was the instructor present and we talked about our final projects. I did some more test jogs of the Foam Crawler. When the feed rate seemed reasonable I loaded a grout removal cutting end mill in the spindle and tried some test cuts for the first time ever. The Foam Crawler cut beautifully and the foam sheet did not get pulled out of the roller! Everyone cheered and clapped, it was one of the best moments of Fab Academy for me, all my years of notes and months of CAD and CAM work on this machine came together in a working machine!
Now onto tweaking the machine to get it to cut accurately and precisely.
Steps per mm¶
Next I used the GRBL settings calculator to get the correct distance movements. I also found the Norwegian Creations Tutorial: Calibrating Stepper Motor Machines with Belts and Pulleys useful for the roller drive calculations. Grbl v1.1 commands can be found here: (https://github.com/gnea/grbl/wiki/Grbl-v1.1-Commands) I also found the FABLAB León LE-CAR-BIL MACHINE documentation useful.
My steps per mm calculations:
Steps/rev: 360 deg / Step Angle 1.8Deg = 200
Microsteps: 4 micro steps per step Belt Pitch: 3mm Pulley Teeth: 20
srev is the number of steps per revolution for the motor fm is the microstepping factor (1, 2, 4, 8 etc.) p is the pitch Nt is the number of teeth on the pulley attached to the motor shaft.
srev * fm / p * Nt
200 * 4 / 3 * 20 =
800 / 60 =
13.333 steps per mm
Belt Pitch: 3mm
Steps/rev: 360 deg / Step Angle 1.8Deg = 200
Roller Diameter: 42.9mm
Microsteps: 4 micro steps per step
srev is the number of steps per revolution for the motor
Nf is the number of teeth on the final (passive) pulley
fm is the microstepping factor (1, 2, 4, 8 etc.)
Nm is the number of teeth on the motor pulley
Dr is the diameter of the roller
srev * Nf * fm / Nm * piDr
200 * 20 * 4 / 20 * (3.14159 * 42.9) =
16000 / 2695.48422 =
5.936 steps per mm
However, as expected, the variable slip vs grip nature of the grip taped Y Axis rollers needed steps per mm adjustment.
Using the helpful info GRBL Steps Per mm – How to Fine Tune Your Settings I re-calibrated.
On a 441.7 mm move the actual cut length was 444.5
Updated Steps/mm = (Current Steps/mm) x (Commanded Travel) / Actual Cut Length
5.936 * 441.7 / 444.5 = 5.899
5.899 Adjusted steps per mm
8mm Metric Acme Lead Screw This Tr8*8-2p(4 starts) trapezoidal Lead Screw results in a pitch of 8mm. Pitch of a lead screw is the distance traveled with one revolution. In this case one revolution results in 8mm movement. If you are not sure of a threaded rod pitch simply put a nut on it and rotate it 1 revolution and measure the distance moved.
Z motor (steps/rev): 360 deg / Step Angle 1.8Deg = 200
Z Microsteps: 8 micro steps per step
Z threaded rod pitch (mm): 8
Pulley Teeth: 1 (direct drive)
srev is the number of steps per revolution for the motor fm is the microstepping factor (1, 2, 4, 8 etc.) p is the pitch Nt is the number of teeth on the pulley attached to the motor shaft. For direct drive use 1.
srev * fm / p * Nt
200 * 2 / 8 * 1 =
400 / 8 =
50 steps per mm
|Axis||Steps per mm||Setting Command|
The Z axis was inverted, So I issued the following command to Invert Z:
Carefully read the documentation at: (https://github.com/gnea/grbl/wiki/Grbl-v1.1-Configuration#3–direction-port-invert-mask) and you will be able to understand how the code above works.
Max Feed Rates¶
Jogging the machine was painfully slow. So I updated the following Max rate, mm/min
Acceleration could be increased as well
Turn on and off Steppers¶
$1=255 turns the stepper motors on indefinitely after making a move holding them in position. This leads to more energy use and hot steppers, but to make sure stuff is not bumped out of position this option is helpful.
$1=25 turns off the stepper motors after 25 milliseconds (default)
For the Foam Crawler, there is significant cutting force applied during cutting and my Z-Axis is low friction I decided to use the
Note: I need to install homing switches and enable homing before this feature will work!
The Foam Crawler has a work envelope of:
X = 610mm
Y = 1220mm (max foam sheet length readily available Y Axis is actually infinite)
Z = 35mm X
5:30am another sunset, another day working on the foam crawler machine. Vinyl 3 way mirror interior case lights off interior case lights on and the workings of the machine are reveled. Time for large left side cover print Fans, power, usb and switches mounted LED’s for interior lighting Loading the 1/16 inch diameter dremel grout bit for milling depron foam for my final presentation video.
I completed my final project slide and video presentation!
Another day and a great sunrise! Today I will design a ESP32 microcontroller board that works with my large stock of gShields using kicad. I have named this the: ESP32 to gShield Board. It will be designed in KiCad I also decided I needed to take some photos of the Foam Crawler in its fully functional state:
Today I found out my ESP32-WROOM-32D raw chips would not arrive today. This required me to shift gears and design and fab a board that adapts a ESP32-DEVKITC-32D module to my gSheild. I had a lot of trouble finding library symbols for KiCad until I looked carefully at digikeys product page:
I noticed that they had a EDA / CAD model link under Documents & Media clicking this link brought me to Snap EDA which I needed to create an account for. I did that and then it unlocked a very easy to use download and guide process! I downloaded the symbol and footprint for KiCad as well as CAD 3D model to use in onshape.
I hoped to mill and stuff my ESP32 to gShield Board today, but the process of gettign back into KiCad took some time and I will need more time to complete things.
I did find the KiCad tutorials by
This is my day to present the Foam Crawler as my final project for Fab Academy 2020.
I presented the Foam Crawler to Neil and all my fellow Fab Academy instructors and students!
Above are some screen captures made by Adrián Torres of the presentation.
Final Presentation Video, to all Fab Acadaemy 2020 Includes discussion with Neil on what additional parts I need to complete for my Final project to pass.
Presentation Action Items:¶
To graduate complete:¶
- Neil: Finish custom control board using raw microcontroller chip.
Stretch goals (for additional development spirals)¶
- Neil: Add vibration exacto knife tool head per Jon Ward / OtherMachine work
- Contact Rico in Japan, he wants to build and Foam Crawler for his fab lab in Japan.
A simple milled Arduino Uno clone that connects to a gShield v5b. To keep it simple the early version of this board will run off of 5vdc via USB. However it would be great if later versions could run off of a DC to DC converter taking 24-48VDC input and outputting 5VDC.
Here are some layout concepts for in process ChiDuinoESP microcontroller that I will use in the Foam Crawler ESP:
Feedback from Nadya Peek¶
- FoamCrawler is awesome!
- like the form factor
- material rollers are great
- reminded of the othercutter
- mirrored acrylic is also extremely cool
- interface and interaction design: One thing that I think often gets overlooked during machine building is the actual interface and interaction design for using the tool. E.g. how does it help you load the material? Zero the tool? Make toolpaths? Can you make that more friendly and playful? Who might the users of the machine be, and what does friendly mean to them? What are e.g. ways they might want to do CAM?
- replicability of the work: These days with machine design one thing I’m really trying to push on is figuring out how to make it possible for others to build their own machines. The Jubilee project (jubilee3d.com) has been pretty successful in that regard, where people who aren’t working with us directly are still able to build their own.
- Part of the replicability relies on the documentation, especially the documentation of the electronics. We’re using a Duet, but some other community members are also extending to Klipper. Another group wants to use a teensy, and is porting GRBL to the teensy. I totally understand the appeal of surplussed motor driver boards, but is there a way you can document the work such that other people who will source parts differently can also build it?
My thoughts based on Nadya’s Feedback¶
- FoamCrawler is awesome! Thanks!
- like the form factor Yay! The narrow depth of the machine is awesome!
- Rollers I like the rollers too, but they have been difficult to get to position the material with my preferred repeatability. The rollers do slip at medium and high cutting speeds, so I just slow down for now. I am seriously considering bringing back my rack or tank drive ideas to index the material along the Y axis in a repeatable way at high speeds and cutting forces. A rack drive would also allow the foam crawler to cut harder materials.
- Other Cutter The other cutter vibrating hobby blade is genius and I would like to have the option to mount that style cutter in the Foam Crawler. The most likely candidate right now is this MATRIX™ Jigsaw Attachment. The code needed to rotate the back the cutter up is a bit freaky to me, but Jon Ward offered to help on that front, so it’s much less freaky.
- two way mirror film Cool! All my machines are going to feature two way mirror film for revealing innards in the future! Everyone loves the reveal of the machine guts when I power on the internal lights!
- Interface and interaction design: should be friendly and playful. I can’t agree more. I dream of creating a process flow that’s simple and logical to normal humans to mill sheet materials. I feel like we are stuck in the traditional industrial education method of setting up milling machines that we have been teaching machinists, like me, for way too long! I would like to add a low cost touch screen interface with easy to follow prompts guiding semi automatic loading of sheet material using limit switches, IR sensors. or conductive sensors. Z axis homing could be done with a small piece of copper or aluminum tape folded on the corner of the sheet material utilizing conductivity with the tool bit for x, y and z homing. Running jobs off a usb thumb drive using a touch screen would free the machine up from a constant computer connection. Right now the easiest to use design software to layout cut files for the Foam Crawler is Easel by Inventables (free version works well). However it dives me mad that it’s so much more difficult to generate cutting code for a milling style machine like the Foam Crawler compared to running a 3D Printer. Tabs are the most time consuming for complex geometry, for simple geometry auto tabs do work quite well.
- Replicability of the work: This is very important, and if the Foam Crawler is not easy to use people won’t be motivated to build and use it to make their foam objects real. The process from idea, to cad design, to cam, to running the machine should be a enjoyable and and fun. My Fab Shop Workshops would help massively with the replicability of the foam crawler locally in Chicago and possibly online with streamed builds. This site itself is the start of documentation, but way more is needed to help others build Foam Crawlers. Many of the Foam Crawler cad design choices were made with ease of user assembly and fabrication in mind. Combining multiple features into one 3d printed part was very powerful. The HDPE plates ended up being much simpler to cut and assemble then I imagined. The first and second humans to build a Foam Crawler via Fab Shop Workshops will drive documentation for replicability of Foam Crawlers in the future.
- Replicability of electronics: The electronics are very important to be reproducible, and I like to do that within a tight budget. I think that ESP32 Microcontroller Board running GRBL is the way to go. The ESP32 Microcontroller Board selected should be open source and be reproducible in a fab lab from scratch or purchasable off the shelf. I think the Grbl_ESP32 CNC Development Board by Bart Dring (who lives in Chicago) is the best option. For touchscreen control and sending g-code via thumb drive I think a MKS-TFT touchscreen running GRBL firmware would work well. A MKS-TFT touchscreen costs between $20 and $40. I found a guide for setting up these touchscreens with GRBL firmware a few months ago: GRBL firmware on MKS TFT32 TFT28 TFT24 New life for old 3D printer LCD display MKS DLC 2.0
Mainly Idea, Study, and Prescriptive Sketches. I use these sketches just before and during CAD.
My sketch repository: Foam Crawler CNC Machine Sketches
Notebook 2D Sketches¶
I do a lot of 2D Sketching in planning to make a physical object or mod an existing object. I record many of these sketches digitally, but I am going capture, and better organize and document these sketches on this site going forward.
The IDSA has a great article on the different types of sketch techniques and step to a final production product used: https://www.idsa.org/education/how-they-do-it
ESP32 Microcontroller Board Design and fabricate a board based on the ESP32 to replace the Arduino UNO. The new ESP32 board will work with the large stock of gShields I have in stock that should not be wasted.
Wall Edge Mount Change the orientation of the Foam Crawler to run hanging from the wall or over the edge of a table. This would allow chips and dust to fall out the front of the machine as well as allow the machine to be run in limited space.
- Roller Springs Add springs to apply clamp force to upper rollers. This would allow the machine to be mounted on a wall to run in limited space. This also allows for increased force on the rollers over gravity force used currently.
- Try blue ray laser shark module in place of spindle for lasering foam! Per Dr. Evil “You know, I have one simple request. And that is to have sharks with frickin’ laser beams attached to their heads!”
- Size timing pulleys to optimize stepper motor power curve.
- Add single belt serpentine drive to compact and simplify the drive train.
- Add Machine Explainer Circuit. An ESP 8266 microcontroller board that turns on lights and indicators based on sensors sensing the movements of the machine. Helps clarify complex machines for museum guests (patrons) during workshops.
- Add first surface mirror to side cover. Turn on lights inside to reveal the inner workings. Completed 2020 Aug 13
- Removable front upper roller. Shorten roller and add 3d printed U shaped holders to drop roller into for running and out for easy tool bit changes zeroing etc.
- Add 3D Printed conformal organic shaped drive train covers
- The HDPE Recycling symbol I used is from: https://suncatcherstudio.com/patterns/recycle-symbols/