Cutting foam sheets... with a needle!

jhitesma

Some guy in the desert
Mentor
Cutting depth it's important to get your zero right - which it's important to have your work flat :) Make sure the needle is fully extended when setting your zero - it's easy to bump it and then you wind up cutting deeper than you thought.

Setting up marlin to enable a servo output doesn't affect use as a normal CNC. It's just there when you need it. As long as you don't send the gcode commands to enable and set the servo it doesn't do anything. If you search this thread for my posts with 'servo' in them you should find details on how I set it up.

Same for the vacuum table, I've posted photos and I think even a link to an OnShape project for cutting it. It's just 3 sheets of foam board. One with horizontal strips cut out, one with vertical, and one with holes where the strips intersect. I cut all three out with the needle cutter then glued them together. Then I cut some openings in the side to fit a vacuum plenum that I think @rockyboy shared previously. Again - search on our posts with 'vacuum' and you should be able to find it.
 

RHill051

New member
Cutting depth it's important to get your zero right - which it's important to have your work flat :) Make sure the needle is fully extended when setting your zero - it's easy to bump it and then you wind up cutting deeper than you thought.

Setting up marlin to enable a servo output doesn't affect use as a normal CNC. It's just there when you need it. As long as you don't send the gcode commands to enable and set the servo it doesn't do anything. If you search this thread for my posts with 'servo' in them you should find details on how I set it up.

Same for the vacuum table, I've posted photos and I think even a link to an OnShape project for cutting it. It's just 3 sheets of foam board. One with horizontal strips cut out, one with vertical, and one with holes where the strips intersect. I cut all three out with the needle cutter then glued them together. Then I cut some openings in the side to fit a vacuum plenum that I think @rockyboy shared previously. Again - search on our posts with 'vacuum' and you should be able to find it.
ahh yeah, I have seen that!! I was more curious if that's how you went about it :) I'll make that my next project. Also, I didn't realize till today that is actually possible to search within a thread so I'll be doing a lot more of that and less posting since I know you guys have all answered these questions many times over. Either way thanks so very much for the guidance and advice.
 

graza

Member
Being computer nerd, I've gone down the OpenJSCAD route for the design of some components for my machine. OpenJSCAD is the Javascript version of OpenSCAD. As I was writing the code for different elements, I realised I was repeating myself so it was time to put it into a generic function. Here is a function called "plate" that accepts a list of holes to be drilled, with x/y coordinates and a diameter. It creates a 'plate' that has all those holes in it. Then you can just download the STL and print. An additional feature is the ability to create a counter-sunk/recess or a pillar at the site of the hole.

It seems like a common operation that others building CNC machines would find useful, so I'm sharing here.

JavaScript:
// title      : Drilled plate for needle cutter
// author     : Graham Agnew
// license    : MIT License
// revision   : 0.001
// file       : plate.jscad
function ccircle(r) {
    return circle({r:r,center:true});
}
// drillList is an array of arrays. Sub-arrays should have three or five elements.
// The elements are the drilled hole x, y, diameter and optionally a
// recess depth and its diameter. If the recess depth is negative then it's a pillar.
function plate(args) {
    const DEFAULT_THICKNESS = 3;
    let thickness = args.thickness || DEFAULT_THICKNESS;
    let drillList = args.drillList || [];
    let h = [];
    // Create the hull for the plate
    for (let i = 0; i < drillList.length; i++) {
        h.push(ccircle(drillList[i][2]/2 + thickness).
                        translate([drillList[i][0], drillList[i][1]]));
    }
    let p = hull(h).extrude({offset:[0,0,thickness]});
    // Add the drilled holes
    for (let i = 0; i < drillList.length; i++) {
        let recess = drillList[i][3] || 0;
        if (recess > 0) {
            p = difference(p, cylinder({r:drillList[i][4]/2, h:recess}).
                    translate([drillList[i][0], drillList[i][1],thickness-recess]));
        }
        if (recess < 0) {
            p = union(p, cylinder({r:drillList[i][4]/2, h:-recess}).
                    translate([drillList[i][0], drillList[i][1],thickness]));
        }
        p = difference(p, cylinder({r:drillList[i][2]/2, h:thickness-recess}).
                        translate([drillList[i][0], drillList[i][1]]));
    }
    return p;
}

function main () {
    let wp = 80; // width of plate
    let hr = 20; // height of rail
    let dw = 25; // diameter of wheel
    let db = 5; // diameter of bolt
    let m3 = 3;
    let de = 7; // diameter of eccentric nut
    let tp = 3; // thickness of plate
                // also used as the thickness of the plate beyond the hull
  
    let mm = 31; // motor mount spacing for NEMA 17

  return plate({drillList: [
        [-wp/2,dw/2,db], [wp/2,dw/2,db], [0,-(dw/2+hr),db]
        ,[-mm/2,0,3,-13,10],[mm/2,0,3,-13,10],[-mm/2,mm,3,-13,10],[mm/2,mm,3,-13,10],[0,mm/2,25]
        ,[-mm/2,-mm/2,db],[mm/2,-mm/2,db]
      ]});
}

The code above can be pasted into OpenJSCAD.org, and then modified to your liking and the STL downloaded for printing. The sample here looks like this:

1599338263104.png
 

Springer

Member
A cautionary tale: when I built my needle cutter/CNC machine, I got 6 ft lengths of extrusion and cut them down to allow for the X axis and Z axis mechanisms. All was well until I added the needler to the mix. The additional couple of inches added meant I couldn't cut a full 48" sheet of MPF . I rearranged templates and files to shorten them for a while. But then I wanted to cut a 33" Blu baby and couldn't get it to fit 24x45" sheet. Finally got the idea to extend the 1" foamular spoiler board past the fwd end of the frame. No vacuum holes in it, but the sheet still lays nice and flat. A bit rube goldberg, but it works!

The moral? Make sure you are positive of your extrusion needs before you cut them!
 

Attachments

  • 20200905_194410.jpg
    20200905_194410.jpg
    854.5 KB · Views: 0

dkj4linux

Elite member
Okay… today was laser day.

Remember the “20W” laser I “zapped” with static a while ago? I ordered a new controller off Ebay that looked as though it should work.

I set up the “zapped” laser module for retest… to confirm what I was seeing before setting it aside.


Sure enough it was acting the same way… Grbl gcodes M3S0, M3S10, M3S100, M3S500, M3S1000, M3S0 seems to be working… but the laser output was pitifully weak. So I removed the old laser controller board and installed the new. Fully expecting to see the laser at full power again… I was disappointed the see that the new one acted exactly as the old one did. So, now I know the laser diode itself is what suffered the static damage. Oh, well.

Here are a few photos of the board replacement. The test set up with just the laser power and PWM outputs hooked up (not seen is the Pi 3B+ and CNC.js I’m using to control things)…

20200909_154313.jpg


The replacement laser controller board in the middle…
20200909_154720.jpg


Old controller and fan disconnected from board…
20200909_160744.jpg


The old controller board (bottom) and new (top)…
20200909_160831.jpg


The new controller board has been installed and powered up…
20200909_164108.jpg


As noted, the new board acted exactly as the old one… it recognized gcodes, but the output was pitifully weak. So, one mystery “solved” (that is, I know what’s wrong with it)… and on to the next.

I received a second Neje 6W laser module this past week, finally catching up with @geodave… <nah-nah-na-nah-nah!> ;) And, though I had ordered and received the 5v to 3.3v level converter boards as well, I still questioned the need for them. So I revisited all the Neje laser module webpages I could find once more, seeing time and again the 3.3v - 12V PWM claim on the modulation input… and since I had a working lashup sitting there on my “bench” I decided the heck with it. So I unpackaged one on the Neje modules and hooked up the power pins to +12V and GND… and the PWM pin to the same +5V PWM I use with all my other lasers. And, voila! A working laser.

Time will tell, of course, but I’m pretty sure the Neje laser modules PWM input is relatively “bulletproof”… in the least, handling +5V PWM okay. This pretty much sets my mind at ease and, providing these work as well as hoped, it’ll be nice to have a line on a relatively inexpensive, and reasonably powerful, diode laser module. Thanks, Mike (@dart1280) on the V1Engineering site, for providing a link to these laser modules!

– David
 

dkj4linux

Elite member
So you have experience with 2.5, 6 and 20 watt lasers. What are the pros and cons/capabilities?
Hey, Mike. Actually, no... I don't. The 20W unit really was only ~5.5W and the Neje 6W unit seems to be more like 2W-2.5W, at best.

Remember the muscle car horsepower "wars" from the 60's... with everybody fudging the numbers and claiming more horsepower than their competitor? It's kinda like that with lasers now... they're actually quoting the *input* operating power... not the actual laser output power. The Neje 6000 runs on 12V at about 0.5 amp... wait for it, 6W! And the 20W unit did, in fact, have significantly greater power... until I blew it up with static. But the largest single diode lasers are about 5.5W, as I understand it... and guess what? Operates on 12V at a little less than 2A... or, 20W! Wow! :rolleyes:

I really would have liked to play some more with the 20W unit but I don't really feel "led" at this point to pay $100+ for a new one. So, I'll muddle around with these lesser ones for a while and see what gives.

-- David
 

dkj4linux

Elite member
Oh. to answer your question... the Banggood/Eleksmaker 2.5W and 3.5W lasers I have are, I think, actually rated more properly. I find, however, that I seem to be able to do as well with the 2.5W as the 3.5W... I think because of a smaller spot size for the 2.5W unit. I simply cannot get the 3.5W unit focused as tightly as the 2.5W one... and it's better IMO to have 2.5W concentrated on a unit area than 3.5W spread over 2-4 times that area.
 

Springer

Member
Ha! Not Led..... interesting on the ratings. That sounds like what I was reading back when banggood started proliferating laser modules. Higher ratings, but they all worked about same. So what's the difference, efficiency? We get scammed by higher input power, for less efficient unit? Is this some natural barrier, or are "real" uses just not needing more power? Like dollar tree foam properties are defined by the gazillion used for posterboard and garage sale signs, not the hundreds of sheets used for model planes.
 

dkj4linux

Elite member
Ha! Not Led..... interesting on the ratings. That sounds like what I was reading back when banggood started proliferating laser modules. Higher ratings, but they all worked about same. So what's the difference, efficiency? We get scammed by higher input power, for less efficient unit? Is this some natural barrier, or are "real" uses just not needing more power? Like dollar tree foam properties are defined by the gazillion used for posterboard and garage sale signs, not the hundreds of sheets used for model planes.
Talking through my hat, I'm pretty sure it's the size and shape the chunk of laser material and the fact that the "beam" is not really round/circular, but more rectangular... if you defocus the beam a bit I think it's pretty easy to see. I also think I remember reading that the most powerful single laser diode currently made is only about 5.5W... and gets physically larger -- and with a larger spot size -- the more powerful it is. So, though a higher powered laser puts out more total energy than a lesser powered one... its energy is spread over a larger area and not really that much more effective, if any, than a lower powered one...

I'm pretty sure this is what I was seeing when I first tested a Banggood 3.5W laser and found it a bit disappointing that it didn't seem any more powerful than my 2.5W unit...
 

JCKET

New member
All,

Thurmond "Tritium" Moore informed me that several FliteTest "residents" ("RAM", "Bricks", "Tritium", etc.) had discovered my CNC-driven foam cutter... I found their posts in the "$150 Laser Cutter" thread. After snooping around a bit more, it appears there is interest in an economical alternative to lasers, modified plotters, sewing machines, etc. for cutting foam sheets.

Basically my foam cutter is a very fast reciprocating needle -- like a sewing machine -- mounted on your CNC machine. Set in a feed rate that yields 10-15 strokes/mm and you can cleanly cut DTF (paper on), blue-cor fanfold foam, etc. Pin a sheet of foam board onto the bed of your CNC, load in the plane's gcode, set the origin, and start the machine. Twenty minutes or so later you have a sheet of parts that are accurately cut, easily punched out, and hot-glued together. Score cuts are no problem.

The foam cutter itself can be built and easily adapted to your CNC machine for less than $20 worth of parts (less if you're a scrounger) and a little bit of your time. If you are interested in building one for yourself, I'm more than happy to monitor this thread, answer questions, and further interact here but rather than repeat *everything* I'll also provide (in a following post) links to other threads/sites that deal with the active design/development of this foam cutter and Ryan "Allted" Zellars' fantastic Mostly Printed CNC... and provides you with all the information you need to build and adapt one to your needs. -- David "dkj4linux" Johnson

All,

Thurmond "Tritium" Moore informed me that several FliteTest "residents" ("RAM", "Bricks", "Tritium", etc.) had discovered my CNC-driven foam cutter... I found their posts in the "$150 Laser Cutter" thread. After snooping around a bit more, it appears there is interest in an economical alternative to lasers, modified plotters, sewing machines, etc. for cutting foam sheets.

Basically my foam cutter is a very fast reciprocating needle -- like a sewing machine -- mounted on your CNC machine. Set in a feed rate that yields 10-15 strokes/mm and you can cleanly cut DTF (paper on), blue-cor fanfold foam, etc. Pin a sheet of foam board onto the bed of your CNC, load in the plane's gcode, set the origin, and start the machine. Twenty minutes or so later you have a sheet of parts that are accurately cut, easily punched out, and hot-glued together. Score cuts are no problem.

The foam cutter itself can be built and easily adapted to your CNC machine for less than $20 worth of parts (less if you're a scrounger) and a little bit of your time. If you are interested in building one for yourself, I'm more than happy to monitor this thread, answer questions, and further interact here but rather than repeat *everything* I'll also provide (in a following post) links to other threads/sites that deal with the active design/development of this foam cutter and Ryan "Allted" Zellars' fantastic Mostly Printed CNC... and provides you with all the information you need to build and adapt one to your needs. -- David "dkj4linux" Johnson

Have you hear about the Laser paper cutting machine?
Laser paper cutting machine is mainly applicable to process non-metallic materials, such as paper, rubber, plastic, cloth, leather, wool, crystal, organic glass, ceramics, jade, bamboo products, wood products.
This type of laser cutting machine features fast processing speed, high processing effect, and good processing quality. Therefore, it finds wide applications in clothing, leather, cloth toys, models, crafts, bamboo and wood products, advertising decoration, packaging printing, paper product processing.
 

RHill051

New member
Anyone ever have a bearing fall apart? I'm sure I'm not the first lol I guess the cheap bearings I bought off amazon just won't cut it when it's spinning 9000 times a minute haha
 

RHill051

New member
Yesterday was a good day! :) I was able to use pin 53 of my Archim v1 board to trigger a relay board in order to turn the shop vac off and on. I did have to wire in a 5v buck converter to get power to the relay board though. Ultimately I took a single gang outlet box and wired the black wire of an old power cord to the relay and then to the outlet so whatever I plug into the outlet will be triggered off and on by the board. Added
M400 ; Wait for moves to finish before continuing
M42 P53 S255 ; Set Pin State
to the end of my script and it now shuts the shop vac off when the job is all done. I've been using CNCJS to control the CNC so I just added a macro to turn the shop vac off or on so I can start it to suction my foam board to the table before running a job. I've got a plan to use one of pwm van controls to manage the needle cutter and when I finally get that working I'll be able to shut everything down automatically when the cutting job finishes.
 

RHill051

New member
Just a follow up for anyone else out there who might have an MPCNC that uses the Archim V1 (or V2) board. I finally figured out how to control the ESC from my control board. The trouble came from a lack of active PWM pins on the board. Ultimately I had to modify the firmware to enable the servo pins and set the number of servos and the servo_delay array accordingly. Here are the steps I followed:
MarlinFirmware/Marlin/blob/2.0.x/Marlin/Configuration.h#L2407
  1. uncomment line 2407 in the above-referenced config file for the Archim V1 and change the number to 2 since there are only 2 servo pins listed in the Archim_pins file
  2. change line 2412 to the following (since you have 2 servos you need two values in the array)
    #define SERVO_DELAY { 300, 300 }
In summary, make the two modifications to the one config file and you can control a servo on pin 20 or 21 using M280 P0 or M280 P1. I’m pulling the power from pin 23 and 24 which are the bottom two pins of the board
Snap1.jpg
 

graza

Member
I'm getting closer to actually cutting some foam-core. The machine moves and the BLDC motor spins. The 'wheelie' motor mount by CapnBry doesn't quite work with the 2212 I have because the shaft is too long. Some redesign required. I want to try using some bearings I have with a 3mm ID but they might end up being too heavy? Or is it just a matter of enough counter weight?

IMG_4339.jpg IMG_4338.jpg

When I was trying to get the RC servo moving up and down, I thought I could power it from the ESC's BEC output. That kinda worked but was weird when I started running the machine - M3 Sxx commands would move the servo from 0 when the machine was stationary no worries, but as soon as the machine was running any other G-code the servo would just return back to 0 straight away. I solved it by feeding the 5V supply from the CNC shield.

I'm using a branch of GRBL which includes the RC servo code changes but is based on GRBL 1.1h. I had to modify the M3 Sxx commands to much greater values than used by the Timsav gcode. Also some tweaks to the config.h for the servo PWM signal range to be more in line with what my servo was expecting. It works well otherwise.

Here's a time lapse of one of the FliteTest model G-code running without actually cutting anything.

 

dkj4linux

Elite member
I'm getting closer to actually cutting some foam-core. The machine moves and the BLDC motor spins. The 'wheelie' motor mount by CapnBry doesn't quite work with the 2212 I have because the shaft is too long. Some redesign required. I want to try using some bearings I have with a 3mm ID but they might end up being too heavy? Or is it just a matter of enough counter weight?

View attachment 180993 View attachment 180994

When I was trying to get the RC servo moving up and down, I thought I could power it from the ESC's BEC output. That kinda worked but was weird when I started running the machine - M3 Sxx commands would move the servo from 0 when the machine was stationary no worries, but as soon as the machine was running any other G-code the servo would just return back to 0 straight away. I solved it by feeding the 5V supply from the CNC shield.

I'm using a branch of GRBL which includes the RC servo code changes but is based on GRBL 1.1h. I had to modify the M3 Sxx commands to much greater values than used by the Timsav gcode. Also some tweaks to the config.h for the servo PWM signal range to be more in line with what my servo was expecting. It works well otherwise.

Here's a time lapse of one of the FliteTest model G-code running without actually cutting anything.

I must have been dozing when you introduced that CNC machine. I love it! Seems to be a "minimalist" conduit design... initially I thought ZenXY but obviously not. Never heard of IKEA Kvartal (I don't get out much... :oops:)... can you tell us more about it this really interesting design? Are STL's available for the printed parts?

Fantastic work! Looks like you are getting really close to cranking out planes... :)

-- David
 

graza

Member
Thanks David.

It was a thought experiment that started off a few months ago when I was looking at making a pen plotter. The "IKEA Kvartal" refers to a range of affordable curtain rails that I had spare. I was considering using them in a CoreXY design for the pen plotter using some 28BYJ-48 5V stepper motors. At the time, I only had the ULN2003 drivers. To keep things simple I was just going to use the curtain system's own glides/sliders.

The torque didn't look great, the power setup I had wasn't gonna keep up, and the play in the sliders was huge. At a similar time I missed out on the TimSav kit. Shipping from China was $2.50 for most things in the TimSav BoM. So I've effectively merged the projects.

The Kvartal rail has a channel on both sides. One side was narrow enough to support some standard shower screen rollers while the other side is slightly too wide.
IMG_4340.jpg

So my Y axis looks the part but is really only relying on gravity to keep things running on the track. The roller on the bottom isn't gripping the curtain rail much at all.
IMG_4344.jpg IMG_4345.jpg

For the gantry, gravity wasn't going to do, so I placed two of the rails back to back with the narrow channel facing out. This allowed me to adapt the "TimSav wheelie" design with an eccentric nut on the lower side holding a shower screen roller. I didn't modify the wheelie's STL's though - a 7mm drill through it did the job!
IMG_4347.jpg

The ends of the curtain rails are supported by some 3D printed brackets. I have a newer design that incorporates the slots for the GT2 belt but for now I'm just clamping the belt in place.
IMG_4341.jpg IMG_4343.jpg

Once the bones of the machine were together it was a matter of adding NEMA 17 steppers, an Arduino + CNC shield + DRV8825 drivers kit, GT2 gears and idlers, GRBL, Universal Gcode Sender (and a bunch of fasteners) and wire it all up (messy!). Plus the 2212 motor and servo of course.
IMG_4346.jpg

Everything seems fine and runs nicely in the dry-runs. I expect to have challenges when I add the fly wheel and needle. CapnBry was using a Volcano printer nozzle, while I only have a standard 'v6' style one. I will 'suck it and see' as my grandfather used to say.

It's really not a very rigid machine and flexes up and down slightly as the gantry gets to the middle of the Y axis travel. In the X direction those same rails flex sideways under load. But probably good enough for a needle cutter? If not I have a couple of ideas how to make it more rigid.

I've put the STLs on Thingiverse, although when I view the thing the print details etc aren't as I set. My guess is that it's the CDN they use not replicating to me locally.

Cheers,
Graham