Cool that you got it working. What I learned from this video series however was how to do it easier: do it like the little video snippet shown using a suction device near the spindle and have the machine move the parts around. So easy and simple. No arduino needed. Just two binary output signals from the Tormach controller, one for activating the suction action and one for activating the hold down clamp.
John, Real glad you got it working, even better you now understand the concept of standing on your own shoulders (your comments about switches controlling different parts / sections of code). There's always a step further to take the automation. Great job!
Impressive... there was no doubt that you would make it work in the first place... but seeing how exited you are makes it more than worthwhile to follow you through all the steps. A lot of lessons learned and valuable info for simple automation. My personal highlight... you would power the wheel on the outside (toothed belt) and with the USB i/o one could easily use a $5 buck stepper motor and a switch or sensor on the perimeter. Very well done and thank you for sharing all those little insides! ;)
With the drive machanism on the outside you can have an open centre of the rotating disc to mount the pneumatic clamp and create more room for moving during engraving. Nice job. Getter' done!
Hey John, not sure if it was mentioned already. For the initial positioning you could use a magnetic switch sensor to open or close a relay for the perfect load position and have an initial piece of code that rotates the table slowly till it is triggered then drops down into your loop to machine the parts. Also another tweak could be to use an opto switch to shoot a beam where the part is positioned for engraving and if it is open it throws an error and stops the machine from engraving air and flash a light / siren. Your imagination is the limit and it is fantastic to watch you succeed.
That is very nice automation indeed, thanks for doing and sharing it! One very minor suggestion. You can replace the "while(RunProgram==LOW)" in the main loop section with an interrupt routine. I think that would be much cleaner for the code. loop() would be empty, or do some other housekeeping, and all the smart'ness would be in the ISR. attachInterrupt(11, ISR_code, RISING)
I loved that you got it working. I also like how much enthusiasm you have towards what you do. I know you do so much with Excel, but I would comment the heck out of the Arduino program. I usually include instructions, connections, explanations, etc. so everything is pretty much in one place. I know you are not done with the project yet (they never really are), but I assume you will add a sensor to detect when you are out of parts. Good job and keep the videos coming!
this is mad John, this is what I love about automation and robotics, so cool! I have been watching this from start and everytime you released a video I was waiting to see it all going and it's running so cool, great work mate.
Love it!! I'm not sure but since you have it working so well, perhaps an LED emitter/detector combo to detect position for the platter. That would get rid of the manual alignment and you could also use it so detect the final position of the platter for engraving. Basically, it would run the platter 360 degrees, know the exact position of engrave point and derive everything else with math.
This is really cool. Could you post another video of it running a few consecutive parts once you get it totally complete? I'd love to see it keep going!
Hello congratulations for your project that is the secret automation that reminds me when I was in the industry of sewing I manufectur of the automatic equipment I was very exiting of the results when one sees the product in progress
I think I did mention edge driving it in a comment on the first video (-: I was involved in a project that should have been edge driven. The rotating table was ~800kg and had to rotate 120 degrees in about 1.4 seconds. The gearbox center drive broke several times before it all got sorted out, and the cost and time overruns were *government* level.
About your last comments "Flipping switches to decide which code to run": You could have the Hopper implement a connector that flips the switches for you. This would let your choice in part Hopper decide the code that is being executed. I still think the bicycle chain around the outside should be tried. Maybe it is noisy. Maybe not.
About the motor that rotates the circle. As you suggested you should use a different motor, there are some inexpensive motors at eBay, search for "high torque gear motor". To sense/know the position, I would recommend a "Reflective Opto Sensor Photoelectric Switch Sensor" ish. By making holes in the plate you could build a giant encoder with really good precision for a low price.
Great idea.... Thanks for the pointer I now know how to drive my 4th axis. I can use a programmable anamatronic stepper card that I have in a box somewhere. It moves a predefined number of steps per button press, link it to a relay and a spare output pin, sorted. Many thanks. Great channel keep up the good work!
Hi John, will the parts in the feeder also not scratch by the spinning plate on top? or will you also stick that film on the top of the plate? Cheers Johan
This may be the coolest thing you have done so far man, great job! I hope to see you do more arduino videos and it would be cool if you get more into the arduino code a bit, Im an electro-mechanical engineer/technician turned small business owner, now I work from my small machine shop at home making custom computers and parts and accessories, I cant wait to setup this kind of thing for my production parts on my cnc router. Ignore the haters and keep being awesome!
Wow! So cool! I really like your DIY automatic videos! The next level could be use another CNC, one that is for engraving only or build a box and make it a product!
now that you have the basics working for it ,, do you think you will improve a pawn it ,, or just leave well enough alone :) ? another thought maybe instead of indexing VIA the stepper motor ,, maybe use a rocker switch for reference position,( just a little bump out on the outside edge of the platter) that way you could use it so you don't have to put it at the 12 o'clock to start :) .. just a thought :)
Well, I can afford to buy one, but Id hate to dump all that cash at once. I guess I would enjoy learning fun methods to make my monthly payment using the machine, and still have it predominantly for my tinkering. I am sure there are others that cannot afford a machine like this all in one shot, and would benefit from your experience.
Once you have prototyped the board, the next step is to make a PCB with all of the connections on one board and housed. You may be able to find a four poled double throw switch somewhere for the USB control. Mechanically, the USB port will wear over time. I know you aren't going for the while "industrialised, bullet proof" thing but why not go the next step? It will be a great experience for you to know how to do this in the future. :)
take the next step up and mill the PCB on the tormach! not sure how well fusion would handle the gcode on that though I gave it a try once but it looks like flat cam is still the winner for pcd milling
There are bunch of gerber->gcode converters, you don't need fusion in the loop at all. Once you have the pcb in some gerber capable program (most, if not all, EDA programs are), export the gerber and convert.
I love automation!! very nice work, John! I getting my hands dirty with Fusion 360 for my 3D printer it's sweet software! I'm use to wire frame in AutoCAD 2015. it was a bit of a learning curve going from wire frame to solids but I'm getting much better. I would love to get into CAM and get an XCARVE or Shapeoko XXL and do some stuff in my shop.
Nice work, I am not a huge Tormach fan, but that little USB gcode dealy is admittedly pretty sweet! Were you using a different camera on this video? Something looks different, older, darker not exactly sure what it is.
Seems to me you shouldn't have to creep up on the part loading position that slowly. Since you have very good position control, you should be able to just tell the Clearpath to whip round to the home position and stop there long enough for a part to drop in.
I have been considering making a work loading system for a robot polishing cell. Currently, the parts have to be moved from a box to a rack that only holds 56 parts.Once done the parts are loaded back into the box. Why not grab the part with the robot? The part has to always face down. I see that there are ways to solve this issue as you have where the 2 components talk to each other with simple I/O.if this works out I could load 144 parts in less time.
This is huge, thanks for putting this automation stuff out there. Always put a big capacitor on the Arduino power input to smooth power. Also, I had to put my cnc controller on an Isobar power strip with isolating electronics because the spindle automation was creating brown-outs, maybe one of these would help?
J Com I was thinking similar to you, possibly a ground loop occurring hence why it worked when removed. Sometimes it's easier to give it its own power supply so one doesn't need to worry about star grounding on the machine and arduino.
Great job John, I have to ask. Where did you get your basic understanding for Arduino function libraries? Do you have a background in C++? I'm working on a arduino stepper controlled z axis motor replacement for a waterjet head using 4 buttons, 2 for rapid up and down and 2 for feed up and down and I'm having an incredibly difficult time wrapping my head around the code. I have movement but when i start to code in the buttons understanding where the variables/functions come from given the various libraries just baffles me. Thanks
Good programmers copy :) I would focus on two things. Write down your pseudo-code and really check all the logic conditions. Second, make tons of little test functions. If you're not sure what a function or variable does in a library, test it in a small program, not your main one. Only make one change at a time. My experience with the Arduino IDE is that it is a bit painful to do incremental development but with patience, it's possible. But yeah, I would personally copy copiously from other folks examples.
This is a great video mate, i'm getting into arduino and i love watching your machining skills! Just thinking that another sheet of that protecting film on the top side of the platter would be good so it doesn't scratch the underside of the stacked pieces might be good.?
yes, LinuxCNC can do that, variables, math, logic, all available. But, you would have to hand code that since the postprocessor does not know how to do that.
Idea. Put a small notch in the moving platter and have a switch with a cam follower (something like this www.amazon.com/uxcell-Switch-Roller-Momentary-Action/dp/B0052ITO8O) and have the notch placed so on startup the platter will home itself at at 6 o' clock. You can add another switch that is in your hopper stack and when it's actuated the cycle halts. You don't need all the parts to be out of the hopper stack but once the stack gets below the point of the switch the switch changes state. You could even have the arduino sound a beeper to alert you that it has stopped the cycle. The arduino should have enough IO ports to support this. You can also have the arduino check for home position for each cycle so you don't or at least decrease the chance of getting out of position.
SRM In that case he should just outsource the whole thing to china... No. That's not the bigger point. He was already making his desired profit loading them previously one at a time. This was just mostly a personal endeavor he wanted to do. If all you do is buy some pre made gadget or outsource it to someone else, you never learn how to do things yourself.
christopher bacon Kind of doubt it, because the io lines don't look like they're serial, so you have to somehow decode the signal. I do know that John Grimsmo engraves serials on his knives and he was doing it on a Tormach originally.
Anonymouspock ohhhhh yeah because if they were serial you could probably just rewrite the code every time just by adding offsets in a known code for numbers. yeah I know grimsmo does it but if I remember well he change the code for every part manually. but there, it's way too fast to do that. now I wonder if there's an interface to pathpilot to post a code every cycle...
Hey John, for your Arduino code you should look at attachInterrupt() this will allow you to do things based on the state of a pin without having to deal with the "loop" www.arduino.cc/en/Reference/attachInterrupt
Your next endeavor should be to grab Eagle (now from AutoDesk) and learn how to mill and drill PCBs for your projects. It's a relatively simple process and you already have the equipment you need. www.autodesk.com/products/eagle/free-download
John, just remember the old quote: The person who says it cannot be done should get out of the way of the person doing it.
Nice work.
Cool that you got it working. What I learned from this video series however was how to do it easier: do it like the little video snippet shown using a suction device near the spindle and have the machine move the parts around. So easy and simple. No arduino needed. Just two binary output signals from the Tormach controller, one for activating the suction action and one for activating the hold down clamp.
Great job, John! A combination of imagination, perseverance, inspiration and perspiration!
Glad you were able to complete this project in time for the open house! Really look forward to meeting you next week!
John, Real glad you got it working, even better you now understand the concept of standing on your own shoulders (your comments about switches controlling different parts / sections of code). There's always a step further to take the automation. Great job!
Congrats! You got her done!! Really exciting project you have done and graciously share with your hard core viewers!
You crushed it this time John! Great job! I'm anxious to see what comes out of the SMW "Skunk Works" next!
Impressive... there was no doubt that you would make it work in the first place... but seeing how exited you are makes it more than worthwhile to follow you through all the steps. A lot of lessons learned and valuable info for simple automation. My personal highlight... you would power the wheel on the outside (toothed belt) and with the USB i/o one could easily use a $5 buck stepper motor and a switch or sensor on the perimeter.
Very well done and thank you for sharing all those little insides! ;)
congrats. I'm really glad it's working. that pneumatic clamp was definitely the key!
Great... I love using not just 'high tech' but 'appropriate tech' to get the job done. ... Thanks for sharing your efforts!
With the drive machanism on the outside you can have an open centre of the rotating disc to mount the pneumatic clamp and create more room for moving during engraving.
Nice job. Getter' done!
Slowly, step by step, but you did it! Congratulations John! Thanks for your videos and true machining passion!
Hey John, not sure if it was mentioned already. For the initial positioning you could use a magnetic switch sensor to open or close a relay for the perfect load position and have an initial piece of code that rotates the table slowly till it is triggered then drops down into your loop to machine the parts. Also another tweak could be to use an opto switch to shoot a beam where the part is positioned for engraving and if it is open it throws an error and stops the machine from engraving air and flash a light / siren. Your imagination is the limit and it is fantastic to watch you succeed.
That is very nice automation indeed, thanks for doing and sharing it!
One very minor suggestion. You can replace the "while(RunProgram==LOW)" in the main loop section with an interrupt routine. I think that would be much cleaner for the code. loop() would be empty, or do some other housekeeping, and all the smart'ness would be in the ISR.
attachInterrupt(11, ISR_code, RISING)
vilts Right on
Awesome to see it working and a very well done video. Seeing the project all the way thru was fun!
I loved that you got it working. I also like how much enthusiasm you have towards what you do. I know you do so much with Excel, but I would comment the heck out of the Arduino program. I usually include instructions, connections, explanations, etc. so everything is pretty much in one place. I know you are not done with the project yet (they never really are), but I assume you will add a sensor to detect when you are out of parts. Good job and keep the videos coming!
Passion is everything and that is exactly what I see always in this Sr.
Thank you John for sharing this
this is mad John, this is what I love about automation and robotics, so cool! I have been watching this from start and everytime you released a video I was waiting to see it all going and it's running so cool, great work mate.
That was an awesome insight of arduino integration with the tormach.
That's really cool John! Awesome job!
really happy you got it running. love arduino stuff you've / doing.
keep up the great work.
Love it!! I'm not sure but since you have it working so well, perhaps an LED emitter/detector combo to detect position for the platter. That would get rid of the manual alignment and you could also use it so detect the final position of the platter for engraving. Basically, it would run the platter 360 degrees, know the exact position of engrave point and derive everything else with math.
This is really cool. Could you post another video of it running a few consecutive parts once you get it totally complete? I'd love to see it keep going!
Awesome work John! Try limit switches for position control
Awesome work John! Glad to see this performing soo well. I like it when you can set it up and let the machine make money.
Thinking outside the box... again. Good work John.
THAT is AWESOME! have been following this build and was just thinking of how you were going to clamp the parts.
Great work!
Nailed it! Nice work John!
Hello congratulations for your project that is the secret automation that reminds me when I was in the industry of sewing I manufectur of the automatic equipment I was very exiting of the results when one sees the product in progress
I think I did mention edge driving it in a comment on the first video (-: I was involved in a project that should have been edge driven. The rotating table was ~800kg and had to rotate 120 degrees in about 1.4 seconds. The gearbox center drive broke several times before it all got sorted out, and the cost and time overruns were *government* level.
John,
Great WW. You have the loader finally working. :-)
This is a killer project! Really glad you did this one so we could learn from it.
About your last comments "Flipping switches to decide which code to run": You could have the Hopper implement a connector that flips the switches for you. This would let your choice in part Hopper decide the code that is being executed. I still think the bicycle chain around the outside should be tried. Maybe it is noisy. Maybe not.
Pretty slick, good work John. I'm going to have to try something like this. Looks fun
“By seeking and blundering we learn.” ― Johann Wolfgang von Goethe
Nicely done. Thank you.
About the motor that rotates the circle. As you suggested you should use a different motor, there are some inexpensive motors at eBay, search for "high torque gear motor". To sense/know the position, I would recommend a "Reflective Opto Sensor Photoelectric Switch Sensor" ish. By making holes in the plate you could build a giant encoder with really good precision for a low price.
Nice job John, pretty slick!
Great idea.... Thanks for the pointer I now know how to drive my 4th axis. I can use a programmable anamatronic stepper card that I have in a box somewhere. It moves a predefined number of steps per button press, link it to a relay and a spare output pin, sorted. Many thanks. Great channel keep up the good work!
Glad to see it up and running. Any thoughts on using an Electro-magnet, embedded in the table, to hold the part, instead of the pneumatic clamp?
Hi John, will the parts in the feeder also not scratch by the spinning plate on top? or will you also stick that film on the top of the plate?
Cheers
Johan
Very cool. Much better than a fancy robotic arm I think.
This may be the coolest thing you have done so far man, great job! I hope to see you do more arduino videos and it would be cool if you get more into the arduino code a bit, Im an electro-mechanical engineer/technician turned small business owner, now I work from my small machine shop at home making custom computers and parts and accessories, I cant wait to setup this kind of thing for my production parts on my cnc router. Ignore the haters and keep being awesome!
That's badass John, really cool stuff!
hey John. press CTRL + T in your arduino ide. thank me later :)
yeah, the code formatting sucks, just making life hard for yourself
Per - I was about to say it needed some code style, but automatically doing it is awesome.
one thing i would change . would be that engraver , i would buy a 9nine insert engraver. it makes it look that more professionel. but nice job John
Wow! So cool! I really like your DIY automatic videos! The next level could be use another CNC, one that is for engraving only or build a box and make it a product!
now that you have the basics working for it ,, do you think you will improve a pawn it ,, or just leave well enough alone :) ? another thought maybe instead of indexing VIA the stepper motor ,, maybe use a rocker switch for reference position,( just a little bump out on the outside edge of the platter) that way you could use it so you don't have to put it at the 12 o'clock to start :) .. just a thought :)
Nice work John! Very cool.
ITS ALIVE! Well done. Would love you to talk about financing machines, especially on the high end hobbyist end (1100)
Evan Parent I seem to recall that he's very anti debt, so that would be your quick answer.
Yes, this is true.
Well, I can afford to buy one, but Id hate to dump all that cash at once. I guess I would enjoy learning fun methods to make my monthly payment using the machine, and still have it predominantly for my tinkering. I am sure there are others that cannot afford a machine like this all in one shot, and would benefit from your experience.
John this is fantastic!
Once you have prototyped the board, the next step is to make a PCB with all of the connections on one board and housed.
You may be able to find a four poled double throw switch somewhere for the USB control. Mechanically, the USB port will wear over time. I know you aren't going for the while "industrialised, bullet proof" thing but why not go the next step? It will be a great experience for you to know how to do this in the future. :)
take the next step up and mill the PCB on the tormach! not sure how well fusion would handle the gcode on that though
I gave it a try once but it looks like flat cam is still the winner for pcd milling
There are bunch of gerber->gcode converters, you don't need fusion in the loop at all. Once you have the pcb in some gerber capable program (most, if not all, EDA programs are), export the gerber and convert.
Nice job John!
I love automation!! very nice work, John! I getting my hands dirty with Fusion 360 for my 3D printer it's sweet software! I'm use to wire frame in AutoCAD 2015. it was a bit of a learning curve going from wire frame to solids but I'm getting much better. I would love to get into CAM and get an XCARVE or Shapeoko XXL and do some stuff in my shop.
Nice work, I am not a huge Tormach fan, but that little USB gcode dealy is admittedly pretty sweet! Were you using a different camera on this video? Something looks different, older, darker not exactly sure what it is.
Looks good from here.
Now to set it up and run it lights out!
After you manually home it at 6:00 clamp the platter, and drill-ream a slip fit dowel pin hole.
Then it's
Seems to me you shouldn't have to creep up on the part loading position that slowly. Since you have very good position control, you should be able to just tell the Clearpath to whip round to the home position and stop there long enough for a part to drop in.
I have been considering making a work loading system for a robot polishing cell. Currently, the parts have to be moved from a box to a rack that only holds 56 parts.Once done the parts are loaded back into the box. Why not grab the part with the robot? The part has to always face down. I see that there are ways to solve this issue as you have where the 2 components talk to each other with simple I/O.if this works out I could load 144 parts in less time.
This is huge, thanks for putting this automation stuff out there. Always put a big capacitor on the Arduino power input to smooth power. Also, I had to put my cnc controller on an Isobar power strip with isolating electronics because the spindle automation was creating brown-outs, maybe one of these would help?
J Com I was thinking similar to you, possibly a ground loop occurring hence why it worked when removed. Sometimes it's easier to give it its own power supply so one doesn't need to worry about star grounding on the machine and arduino.
can you recommend any beginner series of videos on CNC?
Great job John, I have to ask. Where did you get your basic understanding for Arduino function libraries? Do you have a background in C++? I'm working on a arduino stepper controlled z axis motor replacement for a waterjet head using 4 buttons, 2 for rapid up and down and 2 for feed up and down and I'm having an incredibly difficult time wrapping my head around the code. I have movement but when i start to code in the buttons understanding where the variables/functions come from given the various libraries just baffles me. Thanks
Good programmers copy :) I would focus on two things. Write down your pseudo-code and really check all the logic conditions. Second, make tons of little test functions. If you're not sure what a function or variable does in a library, test it in a small program, not your main one. Only make one change at a time. My experience with the Arduino IDE is that it is a bit painful to do incremental development but with patience, it's possible. But yeah, I would personally copy copiously from other folks examples.
This is a great video mate, i'm getting into arduino and i love watching your machining skills! Just thinking that another sheet of that protecting film on the top side of the platter would be good so it doesn't scratch the underside of the stacked pieces might be good.?
You're a beast man. Awesome work!
Now you need to cut an indexing slot in the table and use an optical sensor to auto index the turntable.
if path pilot is capable, you could write parametric programs. where you may have if-then statements in your program to skip sections of code.
yes, LinuxCNC can do that, variables, math, logic, all available. But, you would have to hand code that since the postprocessor does not know how to do that.
David the Swarfer Wait, pathpilot is tweaked LinuxCNC? That's awesome!
Very cool John!
Is two way communication possible on your Haas?
Awesome!
you can use uhmw sheet to your catch bin
Yea a 250$ clear path servo is over kill for that but good job man. Arduinos are awesome.
pretty cool you got it working! cheers.
Have you considered a Universal Robot? Not that it's better i just like to see you using it :)
Idea. Put a small notch in the moving platter and have a switch with a cam follower (something like this www.amazon.com/uxcell-Switch-Roller-Momentary-Action/dp/B0052ITO8O) and have the notch placed so on startup the platter will home itself at at 6 o' clock. You can add another switch that is in your hopper stack and when it's actuated the cycle halts. You don't need all the parts to be out of the hopper stack but once the stack gets below the point of the switch the switch changes state. You could even have the arduino sound a beeper to alert you that it has stopped the cycle. The arduino should have enough IO ports to support this. You can also have the arduino check for home position for each cycle so you don't or at least decrease the chance of getting out of position.
very cool, but once you factor in the cost of materials and time (time is money) spent, wouldn't a laser engraver have been cheaper?
SRM not the point.
Point was he wanted to build something himself.
yeah, but isn't the bigger point to run a business and make money?
SRM
In that case he should just outsource the whole thing to china...
No. That's not the bigger point. He was already making his desired profit loading them previously one at a time. This was just mostly a personal endeavor he wanted to do.
If all you do is buy some pre made gadget or outsource it to someone else, you never learn how to do things yourself.
Occams Sawzall. oh no! you just summed up out societal conundrum. yea, it was that easy.
Bill Greathouse
Not sure if sarcasm or?.....
Good job!
Well done
so satisfied.
Oh hell yeah!
would it be possible to use the Arduino to to trigger a change in the g-code so you could put a serial number on the part?
christopher bacon Kind of doubt it, because the io lines don't look like they're serial, so you have to somehow decode the signal. I do know that John Grimsmo engraves serials on his knives and he was doing it on a Tormach originally.
Anonymouspock ohhhhh yeah because if they were serial you could probably just rewrite the code every time just by adding offsets in a known code for numbers. yeah I know grimsmo does it but if I remember well he change the code for every part manually. but there, it's way too fast to do that. now I wonder if there's an interface to pathpilot to post a code every cycle...
Anonymouspock I want to say that I watched a video about serialization. I think it was a Tormach short video on how to serialize with pathpilot.
Check out this link for some possibilities: www.tormach.com/engrave-sequential-serial-number-g47/
Love it
Hey John, for your Arduino code you should look at attachInterrupt() this will allow you to do things based on the state of a pin without having to deal with the "loop" www.arduino.cc/en/Reference/attachInterrupt
Nice!
grats!
Factorio IRL
Your next endeavor should be to grab Eagle (now from AutoDesk) and learn how to mill and drill PCBs for your projects. It's a relatively simple process and you already have the equipment you need.
www.autodesk.com/products/eagle/free-download
Capitalism 3.0