The controller is an Arduino Mega. The software on the controller is based on rsteppercontroller. The software to make the PCB layout is Eagle. It generates HPGL which is then converted to g-code by hp2xx. The software to sent the g-code to the Arduino is ardGcodeWriter, a python utility.
I have made PCBs with SOT23 and 0805 SMD parts on them, but a 8mil track is beyond the capability of this unit. The pens I use have a 0.4mm (15mil) line width and require at least 4mil clearance. The limitation is imposed by the 3.6deg/step motors and the pen holder. With better parts at hand, and a better pen I guess it could be possible.
Well done Dirk! You are a (rare) example of a REAL engineer. Merging every aspect of engineering to achieve a goal: electrical, mechanical, software, chemistry! I love it. No sure what you are doing for etching but I found very small quantities of HCL + H2O2 is very effective, inexpensive and clean.
Began learning about arduino last June but only recently started looking into stepper motors. I came across some videos of XY plotters but thought I'd try using a marker pen instead to draw small circuits. This way I'll reuse old dvd/cd drives, learn cnc and build something useful. Your work will be my main guide and I just wanted to leave a comment because I found your pen holding mechanism really, really clever. Glueing the top ring to act against the servo horn is so simple but effective. Thank you for sharing
Dirk that was simply amazing man. You my friend will survive the fall of man, zombie apocalypse. Very inspirational work, wished people post more work like this. Thanks for sharing.
Nice working prototype. Thanks for sharing. Just an idea, how about using the drying time to drill the holes in the pads. Should minimize any damage to the pads due to mechanical adhesion of the copper prior to the etching process while making for an even faster turn around time. Do it manually or automatically by replacing the ink pen with a Dremel tool or equivalent using the same CNC, eliminating any registration problems. Any problems with debris or anything else should be an easy engineering fix. Just a thought.
I thought of that, but I ran into two problems, first: the nylon based drive can't handle the load, and I was not able to produce g-code with any tool that would allow to nest those commands into one nc program.
Dirk Herrendoerfer Dirk, thanks for responding. Yes, weight would be a factor unless a different drill motor is used if one exists or a different drive system is used. Maybe, a gear reduction setup for example? When I like something, I try to see the full potential of a project. That is just the engineer within me. Now, software is another issue, entirely. I see usefulness in your project. Parts being recycled instead of being thrown away into a land fill. I wrote this post for the world to see so someone would have better workarounds for you. You do not have to respond to this post.
Nice work. In my experience, the ferric chloride gets a bit under the marker lines. You could try painting the whole board and than removing marker with the CNC, using a pointy tool. Of course, you'd be "printing" in negative. Best of luck!
Its a Mega board with the 2560. It could well be anything else - it just needs 8 IOs for the steppers and one PWM for the servo. The cool thing is that it thinks that it is a full-on CNC machine, so I expect to re-use it a couple of times.
For the holder of a pen... Roll the pen in paper, and hot glue the paper into a solid tube. A chick layer of hot glue all around, to make a "cocoon". To reduce pen wobble even further - The paper can be bent closer to the tip of the pen. It keeps the pen from falling out, downward, as well. The wiggle is minimal, as the paper tube is fitted on to the pen, and the hot glue holds it in place. The contraption can be hot-glued to any carrier plate... generous amounts of hot glue will form a solid block of stiff plastic. It's almost like like 3D printing.. This looks childish, but it works. And you can make a new tube for any size and diameter of a pen, literally, within minutes. No drilling, no nothing - hot glue and a peace of paper (preferably slippery paper of lower friction).
Yes, definitely a good way to do it - I found that adding a mask for the tip of the pen will greatly enhance accuracy - but I agree that your build is very simple and efficient. I dont think it is childish, the first 3D printers were basically hot glue guns on wheels -
I have been toying with the idea that an old citizen printiva printer that is made to take very thinck print media and is ribbon based might be good for printing PCB's. It's also very accurate since it prints each color separately.
Friend Dirk Herrendorf, could post the measurements of this first cnc of wood that you did, I'm sure it would satisfy the taste of many who are following your videos, because we do not have a 3D printer to print the pieces. Congratulations on the beautiful design of the CNC. Grateful
Excellent work! Instead of the pen why don´t use a original head inkjet printer? I mean to achieve more accuracy!! (sorry if my idea sounds impossible!! i know just a little bit about hardware and electronics) But excellent work!!! you´re a genius!!!
Hello guys. Modifications to Python 3.4: from tkinter import * import serial import time import os # import tkMessageBox from tkinter import messagebox import tkinter from tkinter.filedialog import askopenfilename
I assume you are using a fishing line, instead of a toothed belt? I looks like you made a few loops around the stepper motor shaft, can you show more details how you rigged it up? Nice video by the way, hope to see more.
It's nylon string rated at >50N. It is wound 4 times around the steppers motor shaft. There is no slippage, except when the pen holder runs into an end position, so it's ok to keep things from breaking. I saw this design back in the late 80s on a HP plotter. I am planning to make a video once I make my next PCBs, I'll try to get in some detail shots.
Dirk would you like show us a detailed arduino tutorial based on the stepper motor 28byj 48 because there bunch tutorials about this but when you try the code is just buzz the stepper😢. Thanks for your tutorials
Excellent work .. Keep Going Sir. So just let me ask you what you need to know to do this project, i mean, i guess you are a mechatronic engineering but if somebody who doesnt know about mechanics (Im electronic eng and i dont know nothing about mechanics parts), it is possible to do this project by myself without this knowledges?
Hiya Dirk. Great project! Do you have a website/forum anywhere to assist builders with troubleshooting? I've breadboarded all the electronics, but software seem seems slow and unresponsive AT TIMES. And I feel wrong using YT as a forum... Thanks
Hello Dirk. Thank you for your video. Can you please explain how do you use laser for PCB milling? Can please explain what are those steps for making PCBs with this kind of laser? I suppose this is laser from DVD burner. Thank you for your answer. Chose
Hello, I am not using the laser to mill a track into the copper, I am using it to expose it onto a photopositive layer on the PCB that then gets developed and etched later. The laser is a UV/blue one from china with 10mW.
so waht method do you rpeferi uv.light or paint and bath? now bulid a robotic arm to move the card to next satian ( bath ) and drill hol or make a drilling tool to it :)
Hi Dirk!, you told us in yor last video that we have to change certain values depending on the project we made.I personally didn`t see this situations in your videos.When you download the ARDUINO hex file interpreter into the chip...does it do automatically?Wheres is the point from we have to change of?
Looks good. However, does the plotter measure the pen's pressure on the board? I'm thinking if the nib keeps getting compressed, then automatic adjustments of the pressure can help. But also, the nib's shape could change a bit over time too. Also, once the etching is done, the drilling of holes must be done manually, right?
Yes, you need to drill yourself. I use a 15 gram weight on the pen to have the correct pressure on the pen tip, that works well, and the pen tip does not seem to mind. In fact I had a pen run dry before the tip showed wear. Only doing over the PCM edge and back will do damage to the tip.
OMG.... Its awesome..... You did a superb work sir....... But i have a question..... The setup uses two steppers and your code has 3 steppers entry.... So which one is 3rd one...??? Also please let me know which stepper motor is best to use from your opinion....like NEMA-17 n all....???
I suppose you are talking about my firmware - It can do both.You can choose by picking the mode it should use. Look at the included README file, it covers most of your questions. I suppose unipolar NEMA 17 are the best, I am working on a version for bipolar ones, but that will still take some time. Also the cheap geared steppers used in part 3 of the video series is a good option.
Ohhh... Yes... I have read your firmware & its readme too..... You have cleared modes in it. I am having bipolar's from old printers. I will also try to modify the code for bipolars. One more question, what is total size of X axis & Y axis....????
Ajinkya Dixit The size can be anything you want it to be - you might need to change the code to have a bigger datatype for the raw positions (the beta code has that option)
Dirk Herrendoerfer how to produce HPGL file of artwork...??? By using ULP or by CAM processor too..... m not getting what to do in CAM processor tool, after choosing HPGL & setting the pen tool size.
Hi Dirk, first of all I would like to say thank you for the source code you give, I already managed to run the 2 stepper motor . I'll just ask you some question for clarification, what does the use of the void parse_command in your source code? would you mind explain it to me? sorry for I'm still learning.
Beautifully simple engineering !! I have made a small CNC Pen plotter based on the mantis design, but your's simply blows everything else out of the water. I have a question though..... Will linear bearings like the LM8UU or the SC8UU (8mm) help in assisting & smoothening the motion or will they cause a drag, and slow down the gliding movement of the sled ? Thanks.
Hello, thanks ! No, linear bearing do improve the drag factor, 8mm ones are quite big an heavy though, the setup with the string is copied from several printer and plotter designs from the late 80s to mid 90s, this design was quite common. Cheers, Dirk
Wow, you made something very useful out of computer junk. Haven't you think about substituting the marker with a Dremel like tool and converting your plotter into a CNC milling machine?
Hi Dirk, your idea is great and the project is very impressive. Do you think you can produce boards that use surface mount parts of 0805 & 0603 size and a track width of 8 mil?
Which pens? I'm ready to do it now, but there are hundreds or thousands of different pens out there to test and discard. You and one other guy obviously both use some sort of Staedtler pens, but which ones mark copper well and resist etching?
Hello again,i am trying to create the v4 of the plotter,i have 3d printed the parts,but i am having trouble understanding how to move the pen holder with the t2 belt and where to connect the belt.In the stl file folder there exists only Plotter_v4_Tool_Sled.stl and you write in the document to get the rest from v3.can you tell me if something is missing ?
Hi, the sled has two holes for a cable-tie to go through to strap the belt to the carriage. You need the pen-holder parts from the v3, but nothing apart from that.
Hello, Really neat project. I've seen your 3d printed one but I think I'll try it with wood first. I don't have any 5.25 floppy drives and didn't even see them on craigslist. Would the motors called nema 17 be good enough? Also do they have to be 4mm tubes? I've seen 1/8" rods sold at my lowes. I'm not sure how changes in motor and rods will change how the software.
Dirk Herrendoerfer Why are unipolar steppers necessary? I am asking this because I'd like to make a plotter myself, but I only have bipolars at the moment.. :)
jrundruud Well, necessary in the way, that the controller I use only supports unipolar steppers right now, but that is mostly software and can be changed.
Hello Dirk , I recreate the plotter , aduino uno and ulm2003 motor drivers , 6 wire unipolar stepper motors and tower pro servo motor , on sending the g-code my motors just vibrate no movement
The laser can be used on PCBs with photopositive coating - you can use it to carve out a circuit like engraving machines do. The spots the laser hits are later removed by the etchant.
Dirk Herrendoerfer Excellent job.. Well done buddy :) I am looking at building a similar system with some minor modifications, mainly controlling the motors directly from a PC through USB. I am curious about the laser part of your system, is my below reasoning correct? The laser beam traverses the entire copper sheet, while doing so, the exposed copper (i.e. with no markings) gets weakened. When the board is dipped in acid/etchant the weakened copper parts get dissolved.
vecchiocuore1986 Well, no. There is a coating of clear paint on the copper, When this paint is exposed to UV light it breaks down chemically. It must then first be dipped into a developing agent that will make the exposed, weakened paint come off. After that the board is put into the etching agent, that removes the copper from the parts that were exposed, developed, and removed previously.
¿Como has construido el sistema de transmision de los carros x y? muchas gracias How did you build the car transmission system x and? thank you very much
You need to replace your stepper motor since the shaft is BENT, I can see it moving almost 1mm on the end and perhaps .5 - .75MM where the wire is wound. Even .5mm is a HUGE ERROR in PC Board making unless they are very loose specs which means no DIP ICs, Definitely no surface mount ICs. It may work to some degree but should be fixed especially since its an easy fix. I used to work making circuit boards and even 20 years ago the specs were .004 max and many like surface mount were even smaller ! Now you need a microscope to place the surface mount IC parts ! Thin steel cable with a spring on one side would also improve accuracy. Nice job for a quick build though.
You are quite right, but I targeted this for 2.54mm grid accuracy, and it works fine for that, This is just a rapid prototyping tool - I still use board services for more advanced stuff, and this machine won't replace that - ever.
Thanks a million Dirk! I've been wondering about doing something like this with an old ink-jet printer. Your suggestion for a good pen is worth a lot to me, because (years ago) I tried using pcb lacqueur pens (by hand) and the flow was a choice between drought or flood! Then I tried another permanent marker and the ink dissolved in the ferric chloride... A few questions, if you've got the time. What etchant do you use? Is the visible pulley belt fishing line (I wouldn't have imagined it would have enough grip). Can the software work with bit-maps "as is" or would I need to adapt it for that? Thanks again for showing that it can be done and to a good enough quality for me. And cheap!
+Ray Kent Hi, here are the answers to your questions: 1. I use sodiumpersulfate for etching. 2. Yes it is fishing line. If you wind it three to four times around the stepper it will have enough grip. 3. No the software is made to use vector instructions derived from hpgl (into g-code) I have not yet experimented with bitmaps. (But I suppose it is doable, if someone puts his mind to it.)
Hi DIRK, I have many problems using SG90 servo as Z axis in my 2D mini CNC using GRBL firmware V0.9j from GITHUB site,My servo does not move.It`s like it was dead.Please tell me how can fix this problem.THanks.
Hi Dirk, can you tell me the materials list to this proyect? Because i with a friend we gona do this proyect for one school proyect. And we need the materials, thanks!
This project was a one-off, but I did do a follow-up with part 2 and 4 of this video. These videos all include a link to my github repo, where you can find the details.
How does the software know how many steps per unit of distance? If I use a different motor, how to do I tell it there are 0.8 steps per degree, or that 360 degrees of rotation translates to 1.3cm of travel? Is it the G-code generator or the Arduino sketch which translates distance units into motor steps?
No, you need to make a small change in the firmware for that. The firmware uses steps per millimeter as a settting for each axis, so you can use three different steppers, or have a different drive setup per axis. The same is also true for the maximum speeds per stepper.
7 ปีที่แล้ว
Hi! How controler knows the zero x,y point if don´t have any sensor to detect the end position?
The control software moves the pen into the lowest left corner of the build platform. Since the nylon will eventually slip on the drive shaft it simply does this by force. It then resets it's position to 0.0 and waits for commands. This feature can be enabled in the source code.
Dirk all the .INO files on github must be transfered to the arduino or I must create a workspace for the files and the will burned all into the arduino????
All the .ino files and the .h files from the root _OR_ the beta directories need to go into a uCNC_controller directory. This you can open in the Arduino IDE. The Arduino IDE handles it from there. ()
Ok, but how are those strings being driven, exactly? I see the stepper motors and how the line is wrapped around them, but there should be something on the other side to drive it in the opposite direction, right?
On the other side is a bearing, around which the nylon is wound and goes back to the stepper. The ends of the nylon are fastened to the right and left side of the carriage.
Dirk Herrendoerfer Hey, I figure if you just wound the nylon around the bearing and motor, the motor wouldn't actually make the ski-lift type thing move. How do you get the friction there? Thanks.
Go Ka The nylon is wound around the steppers 3 times - that is ok for the needed friction to move, but if you run into the ends, it won't damage anything. If the stepper rod is too smooth you can apply a thin layer of plasticote or thin glue and let that dry completely. A touch up with a file or metal brush would also do the trick.
Hi Dirk. the speed of the stepper motors (28BYJ-48) are moving very slow. I am using uCNC_controller_v4 Firmware with #define V1_BOARD 1. How can I do Thank you
ยุทธพงษ์ พ Hello you can rise the stepIssueFrequency for each axis in uCNC_controller_v4.ino. Also you can try to allow them to ramp up further using the RampMax values, but beware - the small steppers cannot take too much speed and will start loosing steps.
It's all documented - there are links in the description of the video, note that this video is really old - nowadays I'd recommend using the design with a GRBL based controller. Everything else ist still the way it was back then.
@@dherrendoerfer I said that badly. I would like to know the programs you used to create and finally plot the circuit. I have a CNC with the Z axis with nema 17. Thanks again.
I use a tool called hp2xx that can turn hpgl documents into g-code. The circuit designs were done in Eagle EDA, that can produce the HPGL plotter files. A copy of hp2xx with nc support is in my repo - that is linked in the description of the video.
Hello Dirk, great! I was trying to use a 3D printer for this. However, failed due to the wrong pen (the ink got etched away). What "brand" do you use? Is the pen moving down by "gravity"? Does this not lead to a "blob" when the pen hits the PCB board? Do you use GBRL for controlling the stepper and servo? Thanks.
+Christian Bacher Hello, I use Staedtler Lumocolor permanent pens. They are in fact gravity driven. I made a holder for 3D Printers (see my other videos) that can be fitted to any 3D printer, and will work with them. The pens inc dries instantly, so there are almost no pen-down blobs.
Hola disculpa bro podrias asesorarme como programar el arduino para poder ejecutar los codigos g y m? y como se elaboro el programa pa cargar los codigos
Using servos and soliniods with standard G-code interpreters seems to be a common pain for most hobby cnc builders, myself included. Can can you post your code for this plotter. I'm working on a draw-bot/foam cutter for school and i need to handle a pen changer on a fourth axis.
Umm .... I don't quite understand your question: I don't make use of solenoids or tool changers here. My code is based on rsteppercontroller. Contact me through g+ and I'll send you a copy. I'm currently working on another contoller board (see part two of this video) that might be more what you are looking for. I will make the sofrware prototype for that available through github when it is done.
Dirk Herrendoerfer You do use a servo for one of the axis. All of the G-code interpreters I've downloaded don't look like they support anything other than steppers, or that's what it looks like to me i'm still new to this. as far as G+ i don't have an account, but i do have a FB, an Indestructibles, and here along with many E-mail addresses.
mrrich527 Ah!, sorry - my bad. Yes, I did play around with different ways to drop and lift the pen quite a lot - I'm still working on this to improve the usability a bit. Also the work with the laser made some of this necessary. I'm currently thinking about mimicking the way that the 3D printer folks are doing it.
Dirk Herrendoerfer How so? did you get my E-mail address in the Google instant messenger? The tool changer I want to build will have a set of pens, and engraver, and a mini drill. Since Eagle Cad separates the traces, drill, and cream layers I can generate G-code from each layer. The end idea is is to use a separate controller just to handle the tool change when the CNC finds home at the end of each layer. I'll need to write a sketch in processing to send each G-code file separately and handle the tool change but that coding is straight forward. what do you think?
Some 3D printers will extrude when a G1 with the E parameter is issued. I used the Z axis to trigger penDown(). This way normal g-code made to mill something will give the expected results.
+Benee The Z-axis is controlled by a servo, directly connected to the Arduino, but anyway - an ULN2003 has 7 darlingtons so with 2 chips there are enough lines to drive 3 steppers.
Hey, awesome stuff, got inspired and built something similar. working on accuracy so far, but I had one question, what software you use to get g-code for your PCB design (and from what format you convert to g-code) What I do right now is, Fritzing to make PCB, then export to SVG, then with inkscape and gcodetools extension I output the Path Trace to g-code, but this get's no fill and circles look weird (non filled) so I assume you do it differently. Any advice? Thanks a lot!
I use Eagle to make my PCBs, then use the HPGL output option. Then I use hp2xx to make g-code from HPGL. This works well. Also exporting gerber from any tool, and then using FlatCAM works ok too.
Dear Dirk, Very good project there. I try to make a similar one, and of course I need some info. For example, what kind of driver do you use for your motors? I currently use direct l298 (meaning not coupled with a l297). Do you run a modified version of gcode interpreter (the arduino firmware)? I searched around and those that I found have very strict support for step/dir interface. So servo is out of question and direct l298 too..
Hi, I am using unipolar steppers with ULN2004A as a driver, I suppose yours are bipolar steppers. I started out using rsteppercontroller as a basis for my g-code interpreter on arduino, but I strung my own together using the arduino stepper library (that I updated for half-step use).
Dirk Herrendoerfer I did strip down and rewrite the stepper_control.c of the reprap gcode interpreter yesterday to make it compatible with my setup. It did work nicely, although I really believe that the step/dir interface is more efficient, and my intention is to move to that setup eventually. My steppers are bipolar, 19kg.cm torque. It must be overkill for such small cnc but I used them because they are the only available I currently have :D (I already ordered some 2.9kg.cm). Actually I did the same thing, I converted the gcode interpreter to use the stepper library that comes with arduino (updated to use half step!). Although the setup with 19kg.cm doesn't really need half step, I did not use nylon string, I used ballscrew, and of course nothing is perfect so I had a lot of friction. So, half step! :D I also change a lot of code to account for the servo. It's working now :D I found a small python program for converting Gerber files to gcode, pyGerber2Gcode. It did work nicely. Which one are you using? (btw, I used KiCAD to produce my first gerber :D )
phantomegr I use Eagle to make the board files, then export to HPGL. After that I use hp2xx to convert to g-code. I made a vid of the whole workflow, the link is in the video description of this video. I have the crazy idea of building a second version of this plotter around a hole in the base, so it can be used as a stereolithographic 3D printer.
Dirk Herrendoerfer I would like to see that! I have a working prototype by now, of a modified version of the plotter on the video. It's working but needs a lot of tweaking in order to actually print something useful on pcb. That's because I thought it was a good idea to buy a thick marker pen so that I wouldn't get blanks inside tracks. Well, that failed because even though the lines where really filled with color, it is so thick that tracks nearly touch each other. Also I used screw threaded rod which is a good idea, generally, but for this kind of work present two difficulties. First, it's freaking slow! Except of course if you power your steppers with something like 48v, but around 18 volts my l298 are getting really hot in a matter of seconds, which is expected, so I stick with 9v supply. Second, it is too hard to get straight lines! I mean the nut of the threaded rod was less than 1deg inclined the moment I closed it in two plastic casings and that produces a tension (a pretty big one) near the left limit of the Y axis which kinda limits me to half the board. So, after I try a smaller marker (and actually print it's own driver circuit, because now it runs on a solderless board) I will definitely use fishing line.
I'm simply amazed :) Not only this works great, but is so mesmerizing to watch :) Please tell me, have you tried printing some finer SMD footprints? Like TQFP32 for example.
Yes I have tried, but success was not mine. 0.4mm is the minimal line width I come up with, 0.22 to 0.3 would be required for TQFP32. If only there was a 0.2mm refillable ball point pen that would accept the Staedtler ink - all would be great. 0805 Type SMD works ok though ....
Dirk Herrendoerfer Hmm, bad news :) I've looked on the Staedtler website and unfortunately they don't have anything in sub-0.4 width. Maybe some other suppliers. Schwan-Stabilo comes to mind, I'll have a look. Also, one other question: why are your traces 90 degree straight? ;)
Good day. Please tell me how to run CNC Shield through the Arduino UNO ? as was suggested to me that Shield should be the driver. Where to get this driver for CNC Shield?
+Алексей Кротов Which shield are you referring to ? My firmware supports a number of driver configurations. There is a link to github in the description of the video. Along with the firmware are a number o readme files that describe the supported configurations and hardware setups.
Im having an issue with uploading the code. the ide doesnt like this line/ says not declared in this scope: process_command(command_line); what is the issue.
Die Musik ist Clouds von HumaHuma aus der TH-cam music library. Danke - Ich hab leider keine CNC - Wie lange braucht es etwa ein PCB mit einem V-Bit zu fräsen ? Das Freistellen mit dem Laser braucht ja nach Größe und Komplexität ewig.
HI friend, Which software do you use to generate your g-code? I perfectly know how to generate contours, but it seems you know of to fill certain contours! Thanks ^^
the hp2xx software ? Use the one from my github repo and put the tool in a folder you created under the root '\' directory. Modern windows may prevent programs from creating files in folders you don't own. Cheers Dirk
Vinicius Rangel Follow the link in the description to my github repo. There you can find a number of designs and firmwares, version 4 (v4) has drivers and support for bipolar steppers.
This was al l just stuff that I had laying around, so very little was actually spent. The laser is a module from a purple laser pointer, it does not burn anything, it just exposes UV sensitized board with UV light.
Hello, i am trying to build a one cnc machine like this, but i have a problem using a arduino nano. Can you help me or send me a diagram for the pcb that you build to the arduino nano. thx
Luciano Alanis No problem, at the bottom of the video description there is a link to my github repo, there in the Extras folder are all the schematics (Eagle format) and some more info. ( github.com/dherrendoerfer/uCNC_controller )
Hi Dirk. I am tring you project. With nano arduino and V1 uCNC controller. Using motorMode = 1. While steppers 1 and 2 run ok. They move well with G00 X10, G00 X-10, G00 Y10, G00 Y-10 commands. I have problemm with servo connected to port 12. After power on/reset it runs forever. For troubleshooting: I have exchange pin 13 with pin 12 [ changed lines myServo.attach(13), led=12] now servo is connected to pin 13 with same results, it always run. It looks like is looking for a end position switch. LED at pin 13 is always on too. Any suggestion please? Best regards.
+Isabel Méndez Garduño Hello, it could be that your servo is broken, or it is the wrong type (continuous motion). You need a steering type servo (from a RC car, for example.) Best regards, Dirk
+Dirk Herrendoerfer . Danke Dirk. You were right I was using a continuos motion sm-s4303r servo. I changed to hd1160a servo. Now it works great. Even I think is too weak to move any pen + spring. Any one you recommend? So far I just connected bipolar steppers motors and servo on breadboard. I will hack a old Moto shield adafruit V1.0 to drive bipolar stepper motors, removing IC 74HCT595 and wiring ports 8,9,10,11, 4,5,6,7 to L293D input. Same for 12 and 13 Ports. Does the firmware V1 uCNC supports 45 ° traces? Danke sehr.
+Isabel Méndez Garduño I use the cheap SG90 servos to other 9mm steppers, a pen usually needs no more than 20g of weight to work properly. Yes lines at any angles are supported.
nice but improve to better materials and junp to spindle (cnc dremel) or somethink like these, i am workink hard in my cnc ruter right now, i waiting for pieces (buyed online)
Dirk Herrendoerfer hi dirk, what do u mean by hp2xx? I have a reprap 3D printer and it runs using Arduino mega and Pololu stepper drivers, im looking for a way to print pcb layout using it, but I cant find any good software to convert my PCB layout to G-code :( worst of all most of the apps have this python thingi, what is it and how can I get it to work? sorry for asking u soo many things, just reply if u feel like it ignore and forgive me if its a stupid comment that's been posted already :C regards
Jim Jose hp2xx is the Name of a tool, that will transform hpgl to g-code (among other formats), so you can now Export your layout to hpgl, and hp2xx will make the gcode. The python thing is nothing but the most commonly used programming language for multi-platform scripting today. But I suspect you dont Need it, because your 3D printer, along with a pen holder will do fine for you, even using the default software tools.
Dirk Herrendoerfer ohh :) thnx abt python i think ill start studying it :D ,I heard that raspberry pi has something to do with python, and im gona get one soon :D
Hi Sir Dirk, Are you familiar with grbl? I am still researching for my CNC machine where it involves sdcard loaded with G-Code. I've read that grbl can make it possible. Do you have any idea about that sir? or have you tried using a sdcard as an input to your machine?
No, sorry I have never used grbl. I have up to now only read about it, but since it does not use the Arduino IDE I stayed away from it since it will not work with my builds.
Oh well, maybe I will just use PC-based CNC, I think your codes are easier to understand than the grbl something2x. Are all the codes you have use in that video can be found in the link you have provided sir?
The software I use to draw up my circuits is Eagle, there is a free Maker version available. The software to turn HPGL plotter data into is called hp2xx, which is a console application. I don't have any screenshots available right now, but you might want to have a look at the talk series videos, there is loads of information about the tech and procedures I use in there.
hi dirk i just wanted to know that mecahnism that you have used to slide the thread ? which part is attached at the end of the x axis so that the thread keeps od moving the pen?
The carriage is made of 2 pieces of carbon tube around the brass rod, it is connected to the stepper and a bearing on the other side with a piece of nylon (fishing line) that is attaced only to the carriage. To get enough force on the nylon is wound around stepper a couple of times.
The biggest drawback of this method is that, you can not draw thin lines with the pen. Its ok for big PCBs, but when you are designing something small, you can not use this method. toner trnasfer works better with small and detailed designs.
Hallo Herr Herrendörfer, ich brauch noch mal Hilfe. Mein Servo für die Z-Achse will nicht, er dreht nicht. Habe den Servo an Pin 12 angeschlossen, versch. Modi (S1, S2) probiert, Betrieb mit Netzteil, etc. Auf dem Oszillokop sieht es so aus, als ob die PWM nur einmal geändert wird, und dann nie wieder. Was mache ich falsch/wie steuer ich den Servo richtig an/wie lautet der Befehl ? Danke, mit bestem Gruß Michael
motor_mode sollte 1 sein, und es muss etwas sinvolles in der configuration des Z steppers stehen - der stepper wird in software emuliert, und der Servo springt bei einem Uebergang zwischen plus und minus um.
Hola, su proyecto es grandioso, estoy interesado en realizar uno igual, ya que tengo unos motores 28byj - 48 con sus respectivos uln2003an. habrá la posibilidad de que me comparta el "Arduino G Code Driver"
NICE WORK DIRK, WELL DONE ,REALLY AMAZING ..WELL CAN U PLEASE MAKE AN INSTRUCTABLE FOR THIS PLOTTER ? SPECIALLY THE SOFTWARE PART, SINCE THE HARDWARE PART ISNT MUCH COMPLICATED N CAN BE MADE WITH SIMPLE TOOLS, SOFTWARE NEEDS REALLY A GENIOUS.. SO PLS PUT UP AN INSTUCTABLE FOR NEWBEE LIKE ME..THANKS DIRK
Thank you very much. But I am sorry: I do not post to the instructables site. The reason is very simple: I cannot agree to their terms of service, because they are in conflict to everything I believe in.
yep i can understand your stand and appreciate it. any ways will try to understand the things from your video tutorials , thanks again for such a marvelous work and sharing it to others
I really love it when people are able to repurpose/recycle parts and make them do awesome things like this!
No bushings, the rails are 4mm brass tubes, the sled is 6/4mm CFK tube, some silicone based lubricant keeps it gliding softly.
Dirk Herrendoerfe
No, just brass tube over brass/carbon rods.
Dirk Herrendoerfer hast du eine teile liste? bzw. Ableitung zum Bau?
Nein, nicht von dem hier - der war nur aus 'Elektroschrott' und dem was noch so rumlag.
The controller is an Arduino Mega. The software on the controller is based on rsteppercontroller. The software to make the PCB layout is Eagle. It generates HPGL which is then converted to g-code by hp2xx. The software to sent the g-code to the Arduino is ardGcodeWriter, a python utility.
I have made PCBs with SOT23 and 0805 SMD parts on them, but a 8mil track is beyond the capability of this unit. The pens I use have a 0.4mm (15mil) line width and require at least 4mil clearance.
The limitation is imposed by the 3.6deg/step motors and the pen holder. With better parts at hand, and a better pen I guess it could be possible.
amazing design, its simple but functional and the best part its the lack of Dremel tool noise, congrats
Thank you !
Well done Dirk! You are a (rare) example of a REAL engineer. Merging every aspect of engineering to achieve a goal: electrical, mechanical, software, chemistry! I love it.
No sure what you are doing for etching but I found very small quantities of HCL + H2O2 is very effective, inexpensive and clean.
Began learning about arduino last June but only recently started looking into stepper motors. I came across some videos of XY plotters but thought I'd try using a marker pen instead to draw small circuits. This way I'll reuse old dvd/cd drives, learn cnc and build something useful. Your work will be my main guide and I just wanted to leave a comment because I found your pen holding mechanism really, really clever. Glueing the top ring to act against the servo horn is so simple but effective. Thank you for sharing
Dirk that was simply amazing man. You my friend will survive the fall of man, zombie apocalypse. Very inspirational work, wished people post more work like this. Thanks for sharing.
Over simplicity,owesome,you have just opened a new train of thought,appreciated
The use of a servo is brilliant for the Z axis, you're full of great ideas!
Nice working prototype. Thanks for sharing. Just an idea, how about using the drying time to drill the holes in the pads. Should minimize any damage to the pads due to mechanical adhesion of the copper prior to the etching process while making for an even faster turn around time. Do it manually or automatically by replacing the ink pen with a Dremel tool or equivalent using the same CNC, eliminating any registration problems. Any problems with debris or anything else should be an easy engineering fix. Just a thought.
I thought of that, but I ran into two problems, first: the nylon based drive can't handle the load, and I was not able to produce g-code with any tool that would allow to nest those commands into one nc program.
Dirk Herrendoerfer Dirk, thanks for responding. Yes, weight would be a factor unless a different drill motor is used if one exists or a different drive system is used. Maybe, a gear reduction setup for example? When I like something, I try to see the full potential of a project. That is just the engineer within me. Now, software is another issue, entirely. I see usefulness in your project. Parts being recycled instead of being thrown away into a land fill. I wrote this post for the world to see so someone would have better workarounds for you. You do not have to respond to this post.
Nice work. In my experience, the ferric chloride gets a bit under the marker lines. You could try painting the whole board and than removing marker with the CNC, using a pointy tool. Of course, you'd be "printing" in negative. Best of luck!
I don't need to etch pc boards, but I'm going to try to follow your design anyway, because it is so good! Thanks.
+John Colvin
how do you make pcb design without etching chemical substances. I am trying to find the better way too.
+Serdar Örs One way would be using a CNC mill or scratching outlines into the board by hand.
Finally a use for red map markers. I have a bunch because I can't use them on my maps! I can't read them at night under red lens then.
Its a Mega board with the 2560. It could well be anything else - it just needs 8 IOs for the steppers and one PWM for the servo. The cool thing is that it thinks that it is a full-on CNC machine, so I expect to re-use it a couple of times.
For the holder of a pen... Roll the pen in paper, and hot glue the paper into a solid tube. A chick layer of hot glue all around, to make a "cocoon". To reduce pen wobble even further - The paper can be bent closer to the tip of the pen. It keeps the pen from falling out, downward, as well.
The wiggle is minimal, as the paper tube is fitted on to the pen, and the hot glue holds it in place. The contraption can be hot-glued to any carrier plate... generous amounts of hot glue will form a solid block of stiff plastic. It's almost like like 3D printing..
This looks childish, but it works. And you can make a new tube for any size and diameter of a pen, literally, within minutes. No drilling, no nothing - hot glue and a peace of paper (preferably slippery paper of lower friction).
Yes, definitely a good way to do it - I found that adding a mask for the tip of the pen will greatly enhance accuracy - but I agree that your build is very simple and efficient.
I dont think it is childish, the first 3D printers were basically hot glue guns on wheels -
I have been toying with the idea that an old citizen printiva printer that is made to take very thinck print media and is ribbon based might be good for printing PCB's. It's also very accurate since it prints each color separately.
+rimmersbryggeri That's probably worth trying out .
Amazed at your intelligence. I am trying to get same results by this summer. Laser has not arrived. USAF could really use you.
Friend Dirk Herrendorf, could post the measurements of this first cnc of wood that you did, I'm sure it would satisfy the taste of many who are following your videos, because we do not have a 3D printer to print the pieces. Congratulations on the beautiful design of the CNC. Grateful
I would rather hear the plotter(s) than a piano concerto ;-)
well found my next project....something like this will make things a million times easier.....
Excellent work! Instead of the pen why don´t use a original head inkjet printer? I mean to achieve more accuracy!! (sorry if my idea sounds impossible!! i know just a little bit about hardware and electronics) But excellent work!!! you´re a genius!!!
+arquitectronico Thanks ! Your idea sounds pretty cool - but I also have no clue as to how that could be done.
Please share the DIY steps. So that we can also try such a great CNC machine.
Awesome. What about the rails? Are they just steel bar with Oilite-style phosphor-bronze bushings fired fitted to your sled and pen carriage?
How someone was able to bend the axel of the stepper motor to the left at the beginning is beyond my understanding.
Hello guys. Modifications to Python 3.4:
from tkinter import *
import serial
import time
import os
# import tkMessageBox
from tkinter import messagebox
import tkinter
from tkinter.filedialog import askopenfilename
I assume you are using a fishing line, instead of a toothed belt? I looks like you made a few loops around the stepper motor shaft, can you show more details how you rigged it up? Nice video by the way, hope to see more.
It's nylon string rated at >50N. It is wound 4 times around the steppers motor shaft. There is no slippage, except when the pen holder runs into an end position, so it's ok to keep things from breaking. I saw this design back in the late 80s on a HP plotter. I am planning to make a video once I make my next PCBs, I'll try to get in some detail shots.
Dirk would you like show us a detailed arduino tutorial based on the stepper motor 28byj 48 because there bunch tutorials about this but when you try the code is just buzz the stepper😢. Thanks for your tutorials
Such a nice interesting design, well done.
Thank you very much !
Excellent work .. Keep Going Sir. So just let me ask you what you need to know to do this project, i mean, i guess you are a mechatronic engineering but if somebody who doesnt know about mechanics (Im electronic eng and i dont know nothing about mechanics parts), it is possible to do this project by myself without this knowledges?
I suppose so - I know my mechanics from LEGO, and I work as a programmer. So I guess you are probably better qualified than I am.
Dirk Herrendoerfer haha thanks for the info colleague. Keep doing the good work..
Hiya Dirk. Great project! Do you have a website/forum anywhere to assist builders with troubleshooting? I've breadboarded all the electronics, but software seem seems slow and unresponsive AT TIMES. And I feel wrong using YT as a forum... Thanks
Hello Dirk. Thank you for your video. Can you please explain how do you use laser for PCB milling? Can please explain what are those steps for making PCBs with this kind of laser? I suppose this is laser from DVD burner. Thank you for your answer. Chose
Hello, I am not using the laser to mill a track into the copper, I am using it to expose it onto a photopositive layer on the PCB that then gets developed and etched later. The laser is a UV/blue one from china with 10mW.
Simple and efficient! Congratulations!
so waht method do you rpeferi uv.light or paint and bath?
now bulid a robotic arm to move the card to next satian ( bath ) and drill hol or make a drilling tool to it :)
hello, in the manufacture of the PCB the pen goes from the side of the track, how do I make the pen paint on top of the track. thank you
Awesome project bro, could you let me know what size parts you made to assemble the CNC?
Hi Dirk!, you told us in yor last video that we have to change certain values depending on the project we made.I personally didn`t see this situations in your videos.When you download the ARDUINO hex file interpreter into the chip...does it do automatically?Wheres is the point from we have to change of?
Looks good. However, does the plotter measure the pen's pressure on the board? I'm thinking if the nib keeps getting compressed, then automatic adjustments of the pressure can help. But also, the nib's shape could change a bit over time too. Also, once the etching is done, the drilling of holes must be done manually, right?
Yes, you need to drill yourself. I use a 15 gram weight on the pen to have the correct pressure on the pen tip, that works well, and the pen tip does not seem to mind. In fact I had a pen run dry before the tip showed wear. Only doing over the PCM edge and back will do damage to the tip.
Thanks Dirk. What you did was really impressive. Really nicely done.
Mind=blown. Incredible :O Wish i could build this later on.
OMG.... Its awesome..... You did a superb work sir....... But i have a question..... The setup uses two steppers and your code has 3 steppers entry.... So which one is 3rd one...??? Also please let me know which stepper motor is best to use from your opinion....like NEMA-17 n all....???
I suppose you are talking about my firmware - It can do both.You can choose by picking the mode it should use. Look at the included README file, it covers most of your questions.
I suppose unipolar NEMA 17 are the best, I am working on a version for bipolar ones, but that will still take some time.
Also the cheap geared steppers used in part 3 of the video series is a good option.
Ohhh... Yes... I have read your firmware & its readme too..... You have cleared modes in it. I am having bipolar's from old printers. I will also try to modify the code for bipolars.
One more question, what is total size of X axis & Y axis....????
Ajinkya Dixit The size can be anything you want it to be - you might need to change the code to have a bigger datatype for the raw positions (the beta code has that option)
Ohkkk..... Thanx a lot sir..... God bless you always....
Dirk Herrendoerfer how to produce HPGL file of artwork...??? By using ULP or by CAM processor too..... m not getting what to do in CAM processor tool, after choosing HPGL & setting the pen tool size.
Hi Dirk, first of all I would like to say thank you for the source code you give, I already managed to run the 2 stepper motor . I'll just ask you some question for clarification, what does the use of the void parse_command in your source code? would you mind explain it to me? sorry for I'm still learning.
Beautifully simple engineering !! I have made a small CNC Pen plotter based on the mantis design, but your's simply blows everything else out of the water. I have a question though..... Will linear bearings like the LM8UU or the SC8UU (8mm) help in assisting & smoothening the motion or will they cause a drag, and slow down the gliding movement of the sled ? Thanks.
Hello, thanks !
No, linear bearing do improve the drag factor, 8mm ones are quite big an heavy though, the setup with the string is copied from several printer and plotter designs from the late 80s to mid 90s, this design was quite common.
Cheers, Dirk
Thanks for your insight. And Wishing you A Very Merry Christmas.
Wow, you made something very useful out of computer junk. Haven't you think about substituting the marker with a Dremel like tool and converting your plotter into a CNC milling machine?
Hi Dirk, your idea is great and the project is very impressive. Do you think you can produce boards that use surface mount parts of 0805 & 0603 size and a track width of 8 mil?
The best one among all the plotters,,,
Which pens? I'm ready to do it now, but there are hundreds or thousands of different pens out there to test and discard.
You and one other guy obviously both use some sort of Staedtler pens, but which ones mark copper well and resist etching?
Staedtler Lumocolor Permanent. Black and red work best. Also Edding 3000 fineliner black.
@@dherrendoerfer Excellent! Thank you very much! 8) 8) 8)
Hello again,i am trying to create the v4 of the plotter,i have 3d printed the parts,but i am having trouble understanding how to move the pen holder with the t2 belt and where to connect the belt.In the stl file folder there exists only Plotter_v4_Tool_Sled.stl and you write in the document to get the rest from v3.can you tell me if something is missing ?
Hi, the sled has two holes for a cable-tie to go through to strap the belt to the carriage. You need the pen-holder parts from the v3, but nothing apart from that.
Hello, Really neat project. I've seen your 3d printed one but I think I'll try it with wood first. I don't have any 5.25 floppy drives and didn't even see them on craigslist. Would the motors called nema 17 be good enough? Also do they have to be 4mm tubes? I've seen 1/8" rods sold at my lowes. I'm not sure how changes in motor and rods will change how the software.
NEMA 17 is just the size, you would need unipolar NEMA 17 (6 wires). The software can be tuned to whatever rod and driver size you use.
Ah. Thanks for info.
Dirk Herrendoerfer Why are unipolar steppers necessary? I am asking this because I'd like to make a plotter myself, but I only have bipolars at the moment.. :)
jrundruud Well, necessary in the way, that the controller I use only supports unipolar steppers right now, but that is mostly software and can be changed.
Hello Dirk , I recreate the plotter , aduino uno and ulm2003 motor drivers , 6 wire unipolar stepper motors and tower pro servo motor , on sending the g-code my motors just vibrate no movement
Try to reduce the frequency the steps are sent to the stepper.
Good video. Question. Did you export the PCB file straight from eagle etc?
Hi I am trying to recreate this project. Thank you very much for your work and for sharing it.
I still can't understand what the laser does?
The laser can be used on PCBs with photopositive coating - you can use it to carve out a circuit like engraving machines do. The spots the laser hits are later removed by the etchant.
Dirk Herrendoerfer Excellent job.. Well done buddy :)
I am looking at building a similar system with some minor modifications, mainly controlling the motors directly from a PC through USB.
I am curious about the laser part of your system, is my below reasoning correct?
The laser beam traverses the entire copper sheet, while doing so, the exposed copper (i.e. with no markings) gets weakened. When the board is dipped in acid/etchant the weakened copper parts get dissolved.
vecchiocuore1986 Well, no. There is a coating of clear paint on the copper, When this paint is exposed to UV light it breaks down chemically. It must then first be dipped into a developing agent that will make the exposed, weakened paint come off. After that the board is put into the etching agent, that removes the copper from the parts that were exposed, developed, and removed previously.
Great.. Thanks for your quick reply :)
hello sir great job can you send information about how to build one and what is the software you are using i want to build one
Hello, thank you. There is a link in the description of the video that leads to a github repository where all the information I have is stored.
DO you plan on posting the instruction for this anywhere? I would like to try my hand at building one.
¿Como has construido el sistema de transmision de los carros x y? muchas gracias
How did you build the car transmission system x and? thank you very much
You need to replace your stepper motor since the shaft is BENT, I can see it moving almost 1mm on the end and perhaps .5 - .75MM where the wire is wound. Even .5mm is a HUGE ERROR in PC Board making unless they are very loose specs which means no DIP ICs, Definitely no surface mount ICs. It may work to some degree but should be fixed especially since its an easy fix. I used to work making circuit boards and even 20 years ago the specs were .004 max and many like surface mount were even smaller ! Now you need a microscope to place the surface mount IC parts ! Thin steel cable with a spring on one side would also improve accuracy.
Nice job for a quick build though.
You are quite right, but I targeted this for 2.54mm grid accuracy, and it works fine for that, This is just a rapid prototyping tool - I still use board services for more advanced stuff, and this machine won't replace that - ever.
Thanks a million Dirk! I've been wondering about doing something like this with an old ink-jet printer. Your suggestion for a good pen is worth a lot to me, because (years ago) I tried using pcb lacqueur pens (by hand) and the flow was a choice between drought or flood! Then I tried another permanent marker and the ink dissolved in the ferric chloride... A few questions, if you've got the time. What etchant do you use? Is the visible pulley belt fishing line (I wouldn't have imagined it would have enough grip). Can the software work with bit-maps "as is" or would I need to adapt it for that? Thanks again for showing that it can be done and to a good enough quality for me. And cheap!
+Ray Kent Hi, here are the answers to your questions:
1. I use sodiumpersulfate for etching.
2. Yes it is fishing line. If you wind it three to four times around the stepper it will have enough grip.
3. No the software is made to use vector instructions derived from hpgl (into g-code) I have not yet experimented with bitmaps.
(But I suppose it is doable, if someone puts his mind to it.)
Dirk Herrendoerfer thanks!
Hi DIRK, I have many problems using SG90 servo as Z axis in my 2D mini CNC using GRBL firmware V0.9j from GITHUB site,My servo does not move.It`s like it was dead.Please tell me how can fix this problem.THanks.
Try it out with a servo test sketch.
Hi Dirk, can you tell me the materials list to this proyect? Because i with a friend we gona do this proyect for one school proyect. And we need the materials, thanks!
This project was a one-off, but I did do a follow-up with part 2 and 4 of this video. These videos all include a link to my github repo, where you can find the details.
How does the software know how many steps per unit of distance? If I use a different motor, how to do I tell it there are 0.8 steps per degree, or that 360 degrees of rotation translates to 1.3cm of travel? Is it the G-code generator or the Arduino sketch which translates distance units into motor steps?
No, you need to make a small change in the firmware for that. The firmware uses steps per millimeter as a settting for each axis, so you can use three different steppers, or have a different drive setup per axis. The same is also true for the maximum speeds per stepper.
Hi! How controler knows the zero x,y point if don´t have any sensor to detect the end position?
The control software moves the pen into the lowest left corner of the build platform. Since the nylon will eventually slip on the drive shaft it simply does this by force. It then resets it's position to 0.0 and waits for commands. This feature can be enabled in the source code.
Thank you!!!!
I looove what you did.
Thanks for sharing.
Congratulations, Great job Bro !!!
I Encourage You to keep going !!!
This is great resource and very educational !!!
Amazing stuff, I wish was as clever as this.
Dirk all the .INO files on github must be transfered to the arduino or I must create a workspace for the files and the will burned all into the arduino????
All the .ino files and the .h files from the root _OR_ the beta directories need to go into a uCNC_controller directory. This you can open
in the Arduino IDE. The Arduino IDE handles it from there. ()
Hi friend, in the files you shared in version 4, are different materials used from version 3? Or are other materials added? Thanks
Hey, how are the rails driven? I'm trying something similar, and am trying to figure out the best way to drive them. Thanks!
Here, I use Nylon string, high tension fishing line also works very well.
Ok, but how are those strings being driven, exactly? I see the stepper motors and how the line is wrapped around them, but there should be something on the other side to drive it in the opposite direction, right?
On the other side is a bearing, around which the nylon is wound and goes back to the stepper. The ends of the nylon are fastened to the right and left side of the carriage.
Dirk Herrendoerfer Hey, I figure if you just wound the nylon around the bearing and motor, the motor wouldn't actually make the ski-lift type thing move. How do you get the friction there? Thanks.
Go Ka The nylon is wound around the steppers 3 times - that is ok for the needed friction to move, but if you run into the ends, it won't damage anything. If the stepper rod is too smooth you can apply a thin layer of plasticote or thin glue and let that dry completely. A touch up with a file or metal brush would also do the trick.
Love it - it's a great candidate for a good winter project, thanks!
Hi Dirk. the speed of the stepper motors (28BYJ-48) are moving very slow. I am using uCNC_controller_v4 Firmware with #define V1_BOARD 1. How can I do
Thank you
ยุทธพงษ์ พ Hello you can rise the stepIssueFrequency for each axis in uCNC_controller_v4.ino. Also you can try to allow them to ramp up further using the RampMax values, but beware - the small steppers cannot take too much speed and will start loosing steps.
Compliments!
but could you show what software you used and how you came to plot?
It's all documented - there are links in the description of the video, note that this video is really old - nowadays I'd recommend using the design with a GRBL based controller. Everything else ist still the way it was back then.
@@dherrendoerfer I said that badly.
I would like to know the programs you used to create and finally plot the circuit. I have a CNC with the Z axis with nema 17.
Thanks again.
I use a tool called hp2xx that can turn hpgl documents into g-code. The circuit designs were done in Eagle EDA, that can produce the HPGL plotter files. A copy of hp2xx with nc support is in my repo - that is linked in the description of the video.
Hello Dirk,
great! I was trying to use a 3D printer for this. However, failed due to the wrong pen (the ink got etched away).
What "brand" do you use?
Is the pen moving down by "gravity"? Does this not lead to a "blob" when the pen hits the PCB board?
Do you use GBRL for controlling the stepper and servo?
Thanks.
+Christian Bacher Hello, I use Staedtler Lumocolor permanent pens. They are in fact gravity driven. I made a holder for 3D Printers (see my other videos) that can be fitted to any 3D printer, and will work with them. The pens inc dries instantly, so there are almost no pen-down blobs.
Hola disculpa bro podrias asesorarme como programar el arduino para poder ejecutar los codigos g y m? y como se elaboro el programa pa cargar los codigos
Using servos and soliniods with standard G-code interpreters seems to be a common pain for most hobby cnc builders, myself included. Can can you post your code for this plotter. I'm working on a draw-bot/foam cutter for school and i need to handle a pen changer on a fourth axis.
Umm .... I don't quite understand your question: I don't make use of solenoids or tool changers here. My code is based on rsteppercontroller. Contact me through g+ and I'll send you a copy. I'm currently working on another contoller board (see part two of this video) that might be more what you are looking for. I will make the sofrware prototype for that available through github when it is done.
Dirk Herrendoerfer You do use a servo for one of the axis. All of the G-code interpreters I've downloaded don't look like they support anything other than steppers, or that's what it looks like to me i'm still new to this. as far as G+ i don't have an account, but i do have a FB, an Indestructibles, and here along with many E-mail addresses.
mrrich527 Ah!, sorry - my bad. Yes, I did play around with different ways to drop and lift the pen quite a lot - I'm still working on this to improve the usability a bit. Also the work with the laser made some of this necessary. I'm currently thinking about mimicking the way that the 3D printer folks are doing it.
Dirk Herrendoerfer How so? did you get my E-mail address in the Google instant messenger? The tool changer I want to build will have a set of pens, and engraver, and a mini drill. Since Eagle Cad separates the traces, drill, and cream layers I can generate G-code from each layer. The end idea is is to use a separate controller just to handle the tool change when the CNC finds home at the end of each layer. I'll need to write a sketch in processing to send each G-code file separately and handle the tool change but that coding is straight forward. what do you think?
Some 3D printers will extrude when a G1 with the E parameter is issued. I used the Z axis to trigger penDown(). This way normal g-code made to mill something will give the expected results.
With running times over half hour and fan blowing do you have problems with the pen tip drying?
***** Only once, when half of the board was blackened. It works good with those pens, they have some sort of drying out protection.
Hi! I see that you have only two of ULN2003 or ULN2004 and you use this for the X and Y axis. But how do you control the Z axis?
+Benee The Z-axis is controlled by a servo, directly connected to the Arduino, but anyway - an ULN2003 has 7 darlingtons so with 2 chips there are enough lines to drive 3 steppers.
+Dirk Herrendoerfer Thank you for the fast answer. :)
Hey, awesome stuff, got inspired and built something similar. working on accuracy so far, but I had one question, what software you use to get g-code for your PCB design (and from what format you convert to g-code) What I do right now is, Fritzing to make PCB, then export to SVG, then with inkscape and gcodetools extension I output the Path Trace to g-code, but this get's no fill and circles look weird (non filled) so I assume you do it differently. Any advice? Thanks a lot!
I use Eagle to make my PCBs, then use the HPGL output option. Then I use hp2xx to make g-code from HPGL. This works well.
Also exporting gerber from any tool, and then using FlatCAM works ok too.
Thanks! I'll try this flow during the weekend :)
Dear Dirk,
Very good project there. I try to make a similar one, and of course I need some info. For example, what kind of driver do you use for your motors? I currently use direct l298 (meaning not coupled with a l297). Do you run a modified version of gcode interpreter (the arduino firmware)? I searched around and those that I found have very strict support for step/dir interface. So servo is out of question and direct l298 too..
Hi, I am using unipolar steppers with ULN2004A as a driver, I suppose yours are bipolar steppers. I started out using rsteppercontroller as a basis for my g-code interpreter on arduino, but I strung my own together using the arduino stepper library (that I updated for half-step use).
Dirk Herrendoerfer I did strip down and rewrite the stepper_control.c of the reprap gcode interpreter yesterday to make it compatible with my setup. It did work nicely, although I really believe that the step/dir interface is more efficient, and my intention is to move to that setup eventually. My steppers are bipolar, 19kg.cm torque. It must be overkill for such small cnc but I used them because they are the only available I currently have :D (I already ordered some 2.9kg.cm).
Actually I did the same thing, I converted the gcode interpreter to use the stepper library that comes with arduino (updated to use half step!). Although the setup with 19kg.cm doesn't really need half step, I did not use nylon string, I used ballscrew, and of course nothing is perfect so I had a lot of friction. So, half step! :D
I also change a lot of code to account for the servo. It's working now :D
I found a small python program for converting Gerber files to gcode, pyGerber2Gcode. It did work nicely. Which one are you using? (btw, I used KiCAD to produce my first gerber :D )
phantomegr I use Eagle to make the board files, then export to HPGL. After that I use hp2xx to convert to g-code.
I made a vid of the whole workflow, the link is in the video description of this video.
I have the crazy idea of building a second version of this plotter around a hole in the base, so it can be used as a stereolithographic 3D printer.
Dirk Herrendoerfer
I would like to see that!
I have a working prototype by now, of a modified version of the plotter on the video. It's working but needs a lot of tweaking in order to actually print something useful on pcb. That's because I thought it was a good idea to buy a thick marker pen so that I wouldn't get blanks inside tracks. Well, that failed because even though the lines where really filled with color, it is so thick that tracks nearly touch each other.
Also I used screw threaded rod which is a good idea, generally, but for this kind of work present two difficulties. First, it's freaking slow! Except of course if you power your steppers with something like 48v, but around 18 volts my l298 are getting really hot in a matter of seconds, which is expected, so I stick with 9v supply.
Second, it is too hard to get straight lines! I mean the nut of the threaded rod was less than 1deg inclined the moment I closed it in two plastic casings and that produces a tension (a pretty big one) near the left limit of the Y axis which kinda limits me to half the board.
So, after I try a smaller marker (and actually print it's own driver circuit, because now it runs on a solderless board) I will definitely use fishing line.
phantomegr Sounds very good - how about some pictures on g+ ?
I'm simply amazed :) Not only this works great, but is so mesmerizing to watch :) Please tell me, have you tried printing some finer SMD footprints? Like TQFP32 for example.
Yes I have tried, but success was not mine. 0.4mm is the minimal line width I come up with, 0.22 to 0.3 would be required for TQFP32. If only there was a 0.2mm refillable ball point pen that would accept the Staedtler ink - all would be great.
0805 Type SMD works ok though ....
Dirk Herrendoerfer Hmm, bad news :) I've looked on the Staedtler website and unfortunately they don't have anything in sub-0.4 width. Maybe some other suppliers. Schwan-Stabilo comes to mind, I'll have a look.
Also, one other question: why are your traces 90 degree straight? ;)
Dirk Herrendoerfer
check this out: www.stabilo.com/com/p/stabilo-sensor. Maybe worth trying? ;) I wonder how good coverage the ink provides...
Good day. Please tell me how to run CNC Shield through the Arduino UNO ? as was suggested to me that Shield should be the driver. Where to get this driver for CNC Shield?
+Алексей Кротов Which shield are you referring to ? My firmware supports a number of driver configurations. There is a link to github in the description of the video. Along with the firmware are a number o readme files that describe the supported configurations and hardware setups.
Im having an issue with uploading the code. the ide doesnt like this line/ says not declared in this scope: process_command(command_line); what is the issue.
***** Are all .ino files from the directory opened in the IDE ? They should automatically open. If not, then that is the issue.
Schönes Musik... Was ist das?
Ich habe auch eine CNC, aber zum PCB, benutze ich eine V bit.
Deine Anlage its sehr gut gemacht !, es gefält mir.
Die Musik ist Clouds von HumaHuma aus der TH-cam music library.
Danke - Ich hab leider keine CNC - Wie lange braucht es etwa ein PCB mit einem V-Bit zu fräsen ? Das Freistellen mit dem Laser braucht ja nach Größe und Komplexität ewig.
Very nice. I shoud make myself something like that.
HI friend,
Which software do you use to generate your g-code?
I perfectly know how to generate contours, but it seems you know of to fill certain contours!
Thanks ^^
Sir please send the software setup video. Hence it can't generate the gcode it shows some error
the hp2xx software ?
Use the one from my github repo and put the tool in a folder you created under the root '\' directory. Modern windows may prevent programs from creating files in folders you don't own.
Cheers
Dirk
Hi Dirk.. thanks for sharing this wonderful work!
I would like to know, is there any way to use this code with bipolar motors? how?
Thanks in advance!
Vinicius Rangel Follow the link in the description to my github repo. There you can find a number of designs and firmwares, version 4 (v4) has drivers and support for bipolar steppers.
Congratulations!
How much did you spend to build this cnc?
What is the name of this laser piece that burns the plate?
This was al l just stuff that I had laying around, so very little was actually spent. The laser is a module from a purple laser pointer, it does not burn anything, it just exposes UV sensitized board with UV light.
Hello, i am trying to build a one cnc machine like this, but i have a problem using a arduino nano. Can you help me or send me a diagram for the pcb that you build to the arduino nano. thx
Luciano Alanis No problem, at the bottom of the video description there is a link to my github repo, there in the Extras folder are all the schematics (Eagle format) and some more info. ( github.com/dherrendoerfer/uCNC_controller )
Hi Dirk.
I am tring you project. With nano arduino and V1 uCNC controller.
Using motorMode = 1.
While steppers 1 and 2 run ok. They move well with G00 X10, G00 X-10, G00 Y10, G00 Y-10 commands.
I have problemm with servo connected to port 12. After power on/reset it runs forever.
For troubleshooting: I have exchange pin 13 with pin 12 [ changed lines myServo.attach(13), led=12] now servo is connected to pin 13 with same results, it always run. It looks like is looking for a end position switch.
LED at pin 13 is always on too.
Any suggestion please?
Best regards.
+Isabel Méndez Garduño Hello, it could be that your servo is broken, or it is the wrong type (continuous motion). You need a steering type servo (from a RC car, for example.)
Best regards, Dirk
+Dirk Herrendoerfer . Danke Dirk. You were right I was using a continuos motion sm-s4303r servo. I changed to hd1160a servo. Now it works great. Even I think is too weak to move any pen + spring.
Any one you recommend?
So far I just connected bipolar steppers motors and servo on breadboard. I will hack a old Moto shield adafruit V1.0 to drive bipolar stepper motors, removing IC 74HCT595 and wiring ports 8,9,10,11, 4,5,6,7 to L293D input. Same for 12 and 13 Ports.
Does the firmware V1 uCNC supports 45 ° traces?
Danke sehr.
+Isabel Méndez Garduño I use the cheap SG90 servos to other 9mm steppers, a pen usually needs no more than 20g of weight to work properly. Yes lines at any angles are supported.
nice but improve to better materials
and junp to spindle (cnc dremel) or somethink like these, i am workink hard in my cnc ruter right now, i waiting for pieces (buyed online)
hello! excelent job! which software you use to design the PCB circuit? What then transformed to G code? What software you use for that?
Thanks
It's Eagle for the layout, and hp2xx for the g-code.
Dirk Herrendoerfer hi dirk,
what do u mean by hp2xx? I have a reprap 3D printer and it runs using Arduino mega and Pololu stepper drivers, im looking for a way to print pcb layout using it, but I cant find any good software to convert my PCB layout to G-code :(
worst of all most of the apps have this python thingi, what is it and how can I get it to work? sorry for asking u soo many things, just reply if u feel like it ignore and forgive me if its a stupid comment that's been posted already :C
regards
Jim Jose hp2xx is the Name of a tool, that will transform hpgl to g-code (among other formats), so you can now Export your layout to hpgl, and hp2xx will make the gcode.
The python thing is nothing but the most commonly used programming language for multi-platform scripting today. But I suspect you dont Need it, because your 3D printer, along with a pen holder will do fine for you, even using the default software tools.
Dirk Herrendoerfer ohh :) thnx
abt python i think ill start studying it :D ,I heard that raspberry pi has something to do with python, and im gona get one soon :D
Hi Sir Dirk,
Are you familiar with grbl? I am still researching for my CNC machine where it involves sdcard loaded with G-Code. I've read that grbl can make it possible. Do you have any idea about that sir? or have you tried using a sdcard as an input to your machine?
No, sorry I have never used grbl. I have up to now only read about it, but since it does not use the Arduino IDE I stayed away from it since it will not work with my builds.
Oh well, maybe I will just use PC-based CNC, I think your codes are easier to understand than the grbl something2x. Are all the codes you have use in that video can be found in the link you have provided sir?
John Rossie Everything is in there or goes in there - it's kind of a backup for me.
Thank you sir. (Y)
Hello, my name is Jean Mascarenhas, I'm brazilian, I’m learning english, sorry.
You can send a screenshot of the software of drawing of circuit?
The software I use to draw up my circuits is Eagle, there is a free Maker version available.
The software to turn HPGL plotter data into is called hp2xx, which is a console application.
I don't have any screenshots available right now, but you might want to have a look at the
talk series videos, there is loads of information about the tech and procedures I use in there.
Where can I find an electrical link scheme of your project?
There is a link in the description of the video.
This links to my github repo, which contains schematics and plans and software needed.
hi dirk i just wanted to know that mecahnism that you have used to slide the thread ? which part is attached at the end of the x axis so that the thread keeps od moving the pen?
The carriage is made of 2 pieces of carbon tube around the brass rod, it is connected to the stepper and a bearing on the other side with a piece of nylon (fishing line) that is attaced only to the carriage. To get enough force on the nylon is wound around stepper a couple of times.
Dirk Herrendoerfer with microstepping you could get a 1.8deg resolution.
The biggest drawback of this method is that, you can not draw thin lines with the pen. Its ok for big PCBs, but when you are designing something small, you can not use this method. toner trnasfer works better with small and detailed designs.
my stepper motors are moving now, i have a problem setting work area coordinates
The uCNC_controller software has no notion of location, set the zero point manually, and reset the point to zero.
Hallo Herr Herrendörfer, ich brauch noch mal Hilfe. Mein Servo für die Z-Achse will nicht, er dreht nicht. Habe den Servo an Pin 12 angeschlossen, versch. Modi (S1, S2) probiert, Betrieb mit Netzteil, etc. Auf dem Oszillokop sieht es so aus, als ob die PWM nur einmal geändert wird, und dann nie wieder. Was mache ich falsch/wie steuer ich den Servo richtig an/wie lautet der Befehl ? Danke, mit bestem Gruß Michael
motor_mode sollte 1 sein, und es muss etwas sinvolles in der configuration des Z steppers stehen - der stepper wird in software emuliert, und der Servo springt bei einem Uebergang zwischen plus und minus um.
do you sell the kit with software and guide? i am very surprised, the development in acid copper is precise?
Bas Bas I don't sell kits, all the software is available free (see link in description)
Hola, su proyecto es grandioso,
estoy interesado en realizar uno igual, ya que tengo unos motores 28byj - 48 con sus respectivos uln2003an.
habrá la posibilidad de que me comparta el "Arduino G Code Driver"
Thank you. There is a link in the description that leads to all the documentation and software.
NICE WORK DIRK, WELL DONE ,REALLY AMAZING ..WELL CAN U PLEASE MAKE AN INSTRUCTABLE FOR THIS PLOTTER ? SPECIALLY THE SOFTWARE PART, SINCE THE HARDWARE PART ISNT MUCH COMPLICATED N CAN BE MADE WITH SIMPLE TOOLS, SOFTWARE NEEDS REALLY A GENIOUS.. SO PLS PUT UP AN INSTUCTABLE FOR NEWBEE LIKE ME..THANKS DIRK
Thank you very much. But I am sorry: I do not post to the instructables site. The reason is very simple: I cannot agree to their terms of service, because they are in conflict to everything I believe in.
yep i can understand your stand and appreciate it. any ways will try to understand the things from your video tutorials , thanks again for such a marvelous work and sharing it to others
you would not have a program. exe compatible to use with arduino?
No, sorry - but I think some have gotten it to work - maybe someone will answer -