ERC TimSav - Cheap DIY CNC Foamboard Cutter

CapnBry

Elite member
I can't fly because we're under stay-at-home and also all the parks are shut down as well, so I decided to finally start printing pieces and putting parts together. So far I've had everything I need to build my TimSav right in the pile of junk in the box labeled "Printer Parts" that's been in my growing in the closet for years now. I even had an official Arduino Uno with stickers and a clear plastic base that comes with it now? Neat! The only problem I've run into is that I only have the larger size Kysan NEMA 17 steppers that are 48mm tall so they don't fit.

I'd suggest altering the design to add 4mm more to Left and Right end plate height and the X-Axis support which means 48mm steppers will work, with about 1-2mm of clearance over the floor. I just printed some 4mm tall, 5mm wide strips and glued them to the bottom of the left and right end plates as well as printing a V-wheel that's a larger diameter by 8mm for the X axis support wheel. Actually, this would probably be even better if the X-axis support was shorter and a larger diameter wheel could be used on the end which would roll more easily.
2020-04-06.jpg


I'm using a RAMPS 1.4 connected to the Uno to drive the steppers and I'll be modifying the GRBL I've already modified the GRBL source code to allow for 2x PWM servos to eliminate the need for a separate servo tester to run the brushless motor. Finally I am going to use some old PCB drill bits I have instead of a needle cutter and just run them in a brushless motor like a CNC would. I've done some testing with them and a Dremel router attachment and had some good results but I'll probably need to get some smaller bits considering the smallest I used was ~1mm. I see that yesterday someone posted a similar setup on the Facebook group.

No your eyes aren't messed up, my build is only 40cm x 40cm-- I'm still waiting on my longer extrusions to come from OpenBuilds.

So a question for the more experienced users, why a needle cutter instead of 0.6mm end mill bits? You may lose 0.3mm to kerf but the drive mechanism is a lot more straight forward. My hand cuts probably aren't accurate to half millimeter precision either.
 
Last edited:

Tench745

Master member
So a question for the more experienced users, why a needle cutter instead of 0.6mm end mill bits? You may lose 0.3mm to kerf but the drive mechanism is a lot more straight forward. My hand cuts probably aren't accurate to half millimeter precision either.
I was wondering the same thing as I was trying to dial in my needle cutter on a different platform. My assumption is that the needle cutter pulls the cutter out of the work as it goes where a mill does not. Meaning a milling bit on a spindle will probably lag worse if there is any slop in the frame/drive of your cutter. Just a speculation at this point though.
 

Guy S.

Well-known member
I can't fly because we're under stay-at-home and also all the parks are shut down as well, so I decided to finally start printing pieces and putting parts together. So far I've had everything I need to build my TimSav right in the pile of junk in the box labeled "Printer Parts" that's been in my growing in the closet for years now. I even had an official Arduino Uno with stickers and a clear plastic base that comes with it now? Neat! The only problem I've run into is that I only have the larger size Kysan NEMA 17 steppers that are 48mm tall so they don't fit.

I'd suggest altering the design to add 4mm more to Left and Right end plate height and the X-Axis support which means 48mm steppers will work, with about 1-2mm of clearance over the floor. I just printed some 4mm tall, 5mm wide strips and glued them to the bottom of the left and right end plates as well as printing a V-wheel that's a larger diameter by 8mm for the X axis support wheel. Actually, this would probably be even better if the X-axis support was shorter and a larger diameter wheel could be used on the end which would roll more easily.
View attachment 164695

I'm using a RAMPS 1.4 connected to the Uno to drive the steppers and I'll be modifying the GRBL I've already modified the GRBL source code to allow for 2x PWM servos to eliminate the need for a separate servo tester to run the brushless motor. Finally I am going to use some old PCB drill bits I have instead of a needle cutter and just run them in a brushless motor like a CNC would. I've done some testing with them and a Dremel router attachment and had some good results but I'll probably need to get some smaller bits considering the smallest I used was ~1mm. I see that yesterday someone posted a similar setup on the Facebook group.

No your eyes aren't messed up, my build is only 40cm x 40cm-- I'm still waiting on my longer extrusions to come from OpenBuilds.

So a question for the more experienced users, why a needle cutter instead of 0.6mm end mill bits? You may lose 0.3mm to kerf but the drive mechanism is a lot more straight forward. My hand cuts probably aren't accurate to half millimeter precision either.
For me I get better cuts, with much less fuzz on the paper with the needle cutter than I did with milling cutters. And I can make my own needles for next to no $. I’ve done a few things to stiffen my ERC TimSav up, but I don’t think mine would like the side loading that a endmill or drill would put on it. Especially out on the end of the X. I didn’t want to spend the money for a good .8 endmill, so I was using a carbide PCB drill. It would work ok, but they would break unexpectedly often. Again just my experience
 

CapnBry

Elite member
. I’ve done a few things to stiffen my ERC TimSav up, but I don’t think mine would like the side loading that a endmill or drill would put on it. Especially out on the end of the X.
That's a really good point about the side loading. In my test I was just pushing the tool around by hand and it seemed to work really well apart from some fuzz and like @Tench745 says the needle just pulls out instead of removing material so it probably makes a cleaner cut.

I'm still going to give it a try with the milling bit, since I have all the parts I need to make that work. Well, actually carbide PCB drills, but that should inform me if I just need to get some actual teensy mill bits or if I should get the welding tip and bearings and try to make some needles. Oh hey I think I even have 0.041" wire so that I'm partially there already! Wow. When did I collect so much junk?
 

Guy S.

Well-known member
That's a really good point about the side loading. In my test I was just pushing the tool around by hand and it seemed to work really well apart from some fuzz and like @Tench745 says the needle just pulls out instead of removing material so it probably makes a cleaner cut.

I'm still going to give it a try with the milling bit, since I have all the parts I need to make that work. Well, actually carbide PCB drills, but that should inform me if I just need to get some actual teensy mill bits or if I should get the welding tip and bearings and try to make some needles. Oh hey I think I even have 0.041" wire so that I'm partially there already! Wow. When did I collect so much junk?
If I hadn’t built a ERC TimSav I would still be cutting planes on a milll with PCB drills. I don’t remember where I saw it, but I did see someone having good success with a small 1 flute endmill. It would actually produce a chip, instead of just kinda melting its way though. I was also having a hard time finding a endmill in the .8mm diameter range with enough flute length that I wanted to pay for. The parts were more dimensionally accurate with the mill, but needed a fair amount of cleanup with some fine sandpaper to get rid of the fuzz.
 

CapnBry

Elite member
If I hadn’t built a ERC TimSav I would still be cutting planes on a milll with PCB drills. I don’t remember where I saw it, but I did see someone having good success with a small 1 flute endmill.
Oh wow that is awesome, exactly what I was looking for. That's probably better than the results I'm going to get from my setup, but I feel like I have to try it out before I move on to buying parts.

Quick question: Is the servo's 0 position with the gantry lowered, i.e. 1000uS position = lowered 2000us = raised? Just making sure I don't have something backwards here.
 

CapnBry

Elite member
I sort of messed around with a redesigned gantry / X plate today. Instead of having the Plate A, B, C and Motor Mount V1 w/ Servo Kicker, I integrated it all in one unit with the bearings from some V-wheels and a little 3D printing. The OD Green plate will be swapped out for a plate that holds the motor, and there will be a backplate, but I don't have any 20mm extrusion so I'm just testing with 40mm. I also do not have any full size V-wheels on hand currently so I designed it with mini V-wheels with the idea that I can stretch it out a little once I have the full sized versions. I've also gone with a more traditional GT2 belt attachment with a couple of zipties to secure it instead of weaving it through the printed part. Should make it super easy to adjust the tension especially with the existing X-idler.
sliding-carriage.png

DSC06967.JPG


A quick video showing the same things I've said, for people who like reading less. The 3D printed wheels I should have made with more than 36 sides, because you can see it doesn't slide exactly smoothly but the spacing is adjustable so I can make it so the plate just falls right through while barely touching the wheels.
 

delli1221

New member
First time poster. Looking forward to receiving the ERC TimSav kit and to finally start down the maker/CNC path. This looked like the perfect kit to get my feet wet and learn some new skills! Thank you Edward for developing this kit and kudos to you for making it appeal to both the beginner and advanced hobbiest/Maker/Tinkerer.

I've asked @CrazyFastFlying to print the STL files for me. I already get the feeling that this endeavor is going to snowball as I'm pretty keen to get my first 3D printer in the near future. So here I sit at home waiting for the bits and bobs to arrive, so I figured i would start learning the software side of things to keep me busy and learning as much as I can.

I have a modest chromebook running crouton/ubuntu which is also still very new to me. I've been learning a little bit about the CLI and have managed to install inkscape .92 along with the JTech laser plugin and arduino succesfully from the command line.(Ok, I actually used the GUI to add the JTech extension.) I've also had time to import some flitetest PDF plans into inkscape and followed the guide that @dkj4linux posted earlier PDF to Gcode for CNC Needle-Cutters which was very helpful. Thank you for that David!

However I've hit my first hiccup when trying to put the Grbl Controller onto Ubuntu. I've followed the instructions for Linux on the Github site, but I dont understand the file type and the commands necessary to install the package. Is anyone else using the Grbl Controller 3.6.1 in Linux along with inkscape .92/Jtech? Did you run into any issues installing the Grbl Controller 3.6.1? Is there another software option that is compatible with the ERC setup and robottini_0.9i?

Looking forward to being part of this awesome community!

Thank you,
Daniel
 

CapnBry

Elite member
However I've hit my first hiccup when trying to put the Grbl Controller onto Ubuntu. I've followed the instructions for Linux on the Github site, but I dont understand the file type and the commands necessary to install the package. Is anyone else using the Grbl Controller 3.6.1 in Linux along with inkscape .92/Jtech? Did you run into any issues installing the Grbl Controller 3.6.1? Is there another software option that is compatible with the ERC setup and robottini_0.9i?
Welcome! I've not used that under Linux before, but I have been using Linux for decades so I might be able to help you decypher the installation instructions. It is saying to make sure you have the prerequisites installed (however, the page is 6 years old so it is HIGHLY likely the packages have changed since then), then make sure the installation is executable, then run it
Code:
# Install prerequisites
sudo apt-get install "^libxcb.*" libx11-xcb-dev libglu1-mesa-dev libxrender-dev
# Make sure the installer is executable (or GrblControllerLinuxInstallerx86-3.6.1 if your system is 32bit)
chmod 755 ./GrblControllerLinuxInstallerx64-3.6.1 
# execute installer
./GrblControllerLinuxInstallerx64-3.6.1
# Look for installed executable
ls ~/GrblController

Back to my stuff! I've finished my gantry and it works smoothly with an adjustable screw to remove the toolhead or adjust the height, along with a place to actually screw the servo in to hold it. When was the last time I used the mounting screws that came with a servo? It has been ages! However the motor + drill bit for milling would need to be exactly where the adjuster screw is. I'll probably switch to 2x 3mm screws instead. I'd hate to have to extend the gantry to be taller to move the servo up, which means extending the toolplate, etc etc.
DSC06974.JPG

I also ran into another issue. I can't just adjust the height of the end plates up 4mm to make my motor fit. The X and Y motor shafts touch tips and bend the motors 1-2 away from each other. I'll have to recreate the bottom plate and move the bottom motor in 10mm or so to prevent them from touching. Or maybe move that motor to the left or right end plate?

Me: "Oh I'll just use some spare steppers I have."
The maker gods: "Commence the 7 trials of redesign!"
 

delli1221

New member
Thanks for the welcome and your help with my Linux questions @CapnBry

CapnBry said:
Welcome! I've not used that under Linux before, but I have been using Linux for decades so I might be able to help you decypher the installation instructions. It is saying to make sure you have the prerequisites installed (however, the page is 6 years old so it is HIGHLY likely the packages have changed since then), then make sure the installation is executable, then run it
I have the dependencies as well as changed permission on the file with chmod 755. I was missing the execute part lol. But now I get
Code:
~/Downloads$./GrblControllerLinuxInstallerx64-3.6.1
./GrblControllerLinuxInstallerx64-3.6.1:
error while loading shared libraries: libxcb-sync.so.0:cannot open shared object file: No such file or directory

This what it looks like when i use
~/Downloads$file GrblControllerLinuxInstallerx64-3.6.1
GrblControllerLinuxInstallerx64-3.6.1:
ELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux), dynamically linked, interpreter /lib64/l, for GNU/Linux 2.6.24,
BuildID[sha1]=d1f86e6215b8dd66402764d795a8d51cff3add6e, not stripped

And when i use
~/Downloads$ldd GrblControllerLinuxInstallerx64-3.6.1
libxcb-sync.so.1 => /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1 (0x00007eb34cda6000)
My system is 64 bit.
Not sure where to go from here. Do i need to move the file to same directory as libxcb-sync.so.1?
Wait... after typing that last line I realized these are different.
Whats the difference between libxcb-sync.so.0 and libxcb-sync.so.1?


Thanks,
Daniel
 
Last edited:

CapnBry

Elite member
Look at you knowing about `ldd`! Yeah it is weird that it is looking for .0 but ldd says you've got .1. The number is just a version number and would indicate that the libraries are incompatible. I found this issue that indicates you can link .1 to .0 and it works though:
Code:
cd /usr/lib/x86_64-linux-gnu
sudo ln -s libxcb-sync.so.1.0.0 libxcb-sync.so.0
 

delli1221

New member
Awesome, the learning continues! I was able to link that file, then tried to execute the file again. Same deal but different file this time. No problem, just had to repeat the process, and again once more. So I thought this was going to be it! Nope haha. Now I'm getting
Code:
~/Downloads$ ./GrblControllerLinuxInstallerx64-3.6.1: symbol lookup error: 
./GrblControllerLinuxInstallerx64-3.6.1: undefined symbol: u_strToLower_48
So I'm farther down the rabbit hole, still not discouraged but starting to wonder if this is going to work?
 

CapnBry

Elite member
So I'm farther down the rabbit hole, still not discouraged but starting to wonder if this is going to work?
Aww dang I don't think it is, at least not this route. Usually the reason that they create a new major version number for a library is because functions are added or removed/replaced. Looks like in this case u_strToLower_48 is no longer in the library. I'm afraid I can't be any more help, because I don't have any experience with it.
 

yusufiga

New member
II've already modified the GRBL source code to allow for 2x PWM servos to eliminate the need for a separate servo tester to run the brushless motor.

Hi, could you possibly share how did you edit the GRBL to allow for 2x PWM servos? I would also prefer to not use servo tester. Thanks in advance
 

delli1221

New member
CapnBry said:
I'm afraid I can't be any more help, because I don't have any experience with it.
Thanks for helping me get that far at least. I learned some things along the way that will come in handy. I'm going to look into the v1pi image, if only for an excuse to finally start tinkering with a RaspberryPi!

I'm curious, what will you'll be using for your G-code sender?
 

CapnBry

Elite member
Hi, could you possibly share how did you edit the GRBL to allow for 2x PWM servos? I would also prefer to not use servo tester
I sort of hacked it in. I tried to make it so both M3 (spindle CW) and M4 (spindle CCW) would work without affecting each other, but there's a lot of weird interaction where setting one would turn off the other and I didn't want to spend all day figuring it out so the code is "least effort fix". Use M3 to set the regular servo, and M4 to set the secondary servo. M5 sets BOTH M3 and M4 to 1000uS, so if you want to just disable one you have to use M3 S0 or M4 S0 instead of M5. Since it is using hardware PWM, I had to use Y-STEP to generate the PWM, so I swapped Z and Y axis which should be fine because TimSav does not use Z.

Hardware changes: Simply move your Y stepper driver into the Z stepper slot, and move the Y stepper wire to the Z stepper output. The Y-Step pin is the new second servo output.

I've attached the source code, which is grbl 1.1, not 0.9. Just upload it the same way you did for the 0.9, using the examples/grblUpload.ino sketch. There's also a diff in there dual_servo.patch if you want to see the hackness in action. Make sure the $$ configuration is right after upload, I'm not sure if the settings will be retained going from 0.9 to 1.1.

I also added a wifi module to my Uno because I didn't want to have to bring a laptop in to control it, via an Adafruit HUZZAH I had on hand. It runs JCW's esp-link and I literally just connected the RX/TX, RST, and power pins to make it work. Sure, one device is 3.3V and the other is 5V, but I saw "on the Internet" that you could just connect them and it would work. I was skeptical but hey it works! I was using the Uno's 5V supply to power the HUZZAH's LDO, but the Uno's regulator was 60-65C so I added a step-down from Vin to 3.3V. That only lowered the regulator temperature to 50C (at 12V Vin) so I don't think this is really needed. I can flash new firmware from the Arduino IDE over wifi, and control the TimSav over telnet, or a web page. I'd build the jog controls into the web pages, but there is not a lot of space left in the Uno's flash so I probably won't try.
DSC06976.JPG

Please excuse the crudeness of the photo, it is hard to get the camera in there. Where do all the wires go? To the RAMPS board on the opposite side. It is a mess but it works. Why a RAMPS? Everyone say it with me... "because it is what I had on hand". :-D I ordered a CNC shield to clean it up but who knows how long that will take to get here given the current circumstances.

Finally, @delli1221 I didn't forget about your question! I have tried using GrblController from my PC but it is janky as errr a tail-heavy plane so I am not sure yet. It sort of kinda works, and I am not sure if it is because it is going through the network or because I do not understand this program. I mean how is Close Serial Port and Reset the same button? I don't think there's enough flash on the ESP8266 to store gcode files, so I may be stuck with using the laptop. I'll probably try to set up an OctoPrint instance to control it before I do that.

What's left on my build? I just got an email saying OpenBuilds shipped my extrusion, but that probably won't be here until next week so I'll most likely build a 40mm extrusion version of my carriage (which works like a flippin' champ I might add) in the meantime. I wired it up to my Taranis and a receiver and pushed the head around while using the Taranis to control the spindle speed and servo up/down and the only problem I had was that the work piece can easily push my [currently] mini TimSav around so I'll have to make something to hold it down. Or I guess put some weights on it.

I'm happy to answer questions if anyone has any. I am a member of the Facebook group but I don't post there because it is a pretty awful way to share information beyond sharing status updates. Can you imagine reading this post in a giant block of tiny text, and then how would you find it later? Just scroll, scroll, scroll, scroll, scroll, scroll, scroll, scroll, scroll, scroll, scroll, scroll, scroll, scroll, scroll, scroll, scroll, scroll, scroll, scroll, scroll, scroll, scroll, scroll, scroll, scroll, scroll, scroll, scroll, scroll, scroll, scroll, scroll, scroll. Terrible!
 

Attachments

  • grbl-1-1h-dualservo.zip
    155.2 KB · Views: 0

CapnBry

Elite member
Thanks for helping me get that far at least. I learned some things along the way that will come in handy. I'm going to look into the v1pi image, if only for an excuse to finally start tinkering with a RaspberryPi!
I should offer, I have a ton of old Pi in my lab if you want an older model for free. I have an original Pi A, a B+, or a Zero W that the UART doesn't work on (but USB is fine). I know a new Pi 3B+ or 4B isn't that expensive, but I'd be happy to send you any one of those if you want, although I will say that if you want to use the Pi desktop, they are all almost unusably slow for that.
 

yusufiga

New member
I've attached the source code, which is grbl 1.1, not 0.9. Just upload it the same way you did for the 0.9, using the examples/grblUpload.ino sketch. There's also a diff in there dual_servo.patch if you want to see the hackness in action. Make sure the $$ configuration is right after upload, I'm not sure if the settings will be retained going from 0.9 to 1.1.

Great! Thanks for taking your time and sharing.
 

delli1221

New member
CapnBry said:
I should offer, I have a ton of old Pi in my lab if you want an older model for free.
I was pretty close to ordering the Pi zero W without the UART the other day. I was thinking it would be fun to learn how to ssh into it without a GUI. If you don't mind sending it up north to Canada I'd love to take ownership of the little guy!