@@WhitmanTechnological Ok, nice video you had. I have been playing with steppers for years and I accelerate them by a totally digital ramp generator of my own design. It uses binary rate multipliers, up/down counters and comparators. You can program in the acceleration, initial (starting) speed and final speed. After that (keeping the accel constant) you just output new higher or lower speed and you get the stepping frequency for that.
I use FreeCAD and Blender, and they're both pretty lightweight to run. The need for a better computer really only comes when you start making massive and complex things. As a design gets more complex in FreeCAD it'll take longer to compute the updates - and a faster CPU will help. In Blender, as you get more sophisticated, increase the output quality, add more detailed textures and render at a higher resolution, it'll put your graphics card to work. I upgraded my GPU from a GTX960 to an RTX2070 Super and it cut the time to render video sequences in half. At a minimum, if it has an operating system and boots up and was manufactured in the last 15 years, there's a good chance it can run FreeCAD and at least an older version of Blender. I have a few old Core2 Duo computers I built in 2007 that still run and they'll happily run FreeCAD and Blender. It'll just take a few decades to render anything in HD! www.blender.org/download/requirements/ forum.freecad.org/viewtopic.php?t=16701
Hi guys ! I am printing gears for RC cars with nylon I need to fix the gear on a 3mm metal axle how should I do ? Glue ? small screw ? did you already experience this kind of issue ? Thanks !
Well, let's see... I have some gears right next to me printed in nylon from a gearbox that I don't need anymore. I put some dabs of "Gorilla Super Glue Gel" on one and stuck another gear to it. It's the super smooth sides that were against the glass during printing, so it should give the least adhesion vs a different size. In the time it took me to write those last sentences, it set and I can pull with most of my strength and it doesn't come apart. Seems like it's safe to say that super glue will happily adhere to the Taulman 645 these gears are printed with. I applied some uneven force and the gel broke down the middle, so it sticks harder to the nylon than it's own structural ability. Should work like a charm for gluing to your axle (as long as it also sticks to the metal rod). You might do that baking soda trick if you want to add more structure to the joint, too. Most of my gearboxes are either compound planetary gears or the outputs are not uniform/have mounting holes. I haven't tried attaching directly to an axle.
Using a ribbon cable made with each line to a sensor as a twisted pair will reduce the cross-talk among the signals on the ribbon cable. The impedance of ribbon cable is 110 to 120 Ohms, so the 165-ohm resistor is close enough; the rest are way too high. The impedance of a stand-alone twisted pair is 72 Ohms. The impedance of a twisted pair in a ribbon cable would be somewhat higher. Anything from 90 to 120 ohms should work all around. You may have to use some kind of network to avoid noise problems. An RS-485 network will work. I would use CAN, but I know how it works.
Thanks for the tip on RS-485. I'll read through those specs. Also thanks for pushing those impedance numbers. I assumed because it's Ohms that it was synonymous with resistance. Since you took the time to correct me, I googled it "how to measure impedance of a ribbon cable" and now I'm up to speed. ☺ After uploading this video, I found that the USB hub supplying +5V power for the controller board has a 0.3V wobble at the same frequency as the wobbles in the green signals in this video. I'm going to try to smooth out the input voltage, and hopefully that'll reduce the amount of noise at the source of the signal, too.
If ringing's your problem... have a look at CANbus. There's heaps of great videos about how it works, both physical layer and basic protocol. In short, data is a differential pair, terminated at both ends with a 120ohm resistor. I've had very little data loss with my arduino & esp32 modules... it might be a solution for you. And even if not, how it deals with ringing might help.
I looked up CANbus. Interesting... I'd need to add some chips to the controller and sensor boards to support it. It does look like it'd be resilient to noise, since it signals both high and low. Thanks for the tip. :)
Are the TB6600 drivers simply very slow motor drivers (thus they can't forward messages fast enough) or is the motor the main factor for determining how fast the commands can be processed?
I'm using an A4988 driver in this video. I'm not driving the motor anywhere near it's theoretical maximum. I was testing for a use case with a relatively high torque load where I wanted to be able to reliably begin spinning at max speed with minimal ramping. Most stepper drivers can probably go much, much faster than I do in this video. As other commenters have pointed out, ramping up the speed instead of just starting from a dead stop will get the motor spinning a lot faster. Higher voltages can also help overcome the inductance of the motor coils as the speed increases, too. ~300 RPM is the fastest I want the motor to go when I designed the gearbox for a robot wheel system, but the motor/driver could easily double (maybe even triple?!) that if it was completely unloaded and I ramped up the speed more gradually.
I wrote the height probing and Z coordinate correction software myself. I wrote my own program to open gcode files and stream them to grbl - the open-source firmware that runs my router. So as I worked through getting reliable boards, I streamlined the software that controls the router to formalize the various steps I needed to do. My toolchain is KiCad to spit out Gerber and drill files > FlatCAM to convert the Gerber into gcode > my custom software to probe the copper blanks for the area where the traces will be cut and then the gcode is modified to include a Z coordinate for all the cutting moves > this modified gcode is streamed to the router which runs grbl. If I didn't perform the z correction, I would break bits and have unusable boards.
@WhitmanTechnological awesome and thanks for taking the time to respond 😁 I have an industrial CNC but it's not in anyway worth trying to use for PCBs so planning to get a small hobby type one that runs GRBL but wasn't sure if the machine itself had to be able to do a height map or the software I.e. flatcam. I guess the machine is capable but I guess I wasn't sure if the map is done via the software so machine firmware etc is not a dependency
@@LucidFX. Nice dude! Grbl has a command to probe on an axis (G38.2 Z-6 F20 is what I use - probe up to 6mm in the negative z direction at a super slow 20mm/min), and when the probe triggers, grbl will output the machine coordinates at the point where the trigger happened (looks something like "[PRB:67.86,49.23,-46.875]"). I pull the Z coord from that, and then measure the difference in z coordinates across a grid to generate the heightmap.
Yesdooood!!! There goes all your free time! If you're comfortable with C#, I can post my height probing code in the comment here as something to start from on your projects.
I am trying to cnc gears using path. I 3D printer the gears to make sure they can handle torque and had best gear reduction and now want to cnc them out of foam for lost foam casting into aluminum. No success so far. on the path workbench for gears. I have no problems with other items with flat and curved walls but teeth just don't happen. Appreciate any advice.
I am very happy with cheap V-Cut bits, even with a terrible chuck/collet.. I think expensive bits are overkill for this kind of job.. I have a cheap crappy Chineese 3018 CNC. Instead of buying it I should have built my own.. There is nothing good about this CNC.. I replaced nearly every part of it: rods with linear rails, T-nuts, Z assembly with 3D printed one.. Only ER11 chuck, collet, steppers and the spindle motor remain. Bit has 0.1mm wobble. Adding that to 0.2mm V-Cut bit, around 0.32mm tool, the results are satisfying.. I know 0.2mm is needed for some packages. I orderred new chuck, and collet. Even with this configuration, it took my electronics life another level.. Design and build in 60 minutes and repeat.. Fantastic!..
Brilliant! I am new to this and even bought my first 3D printer. Do you recommend printing the ring gear as is and cut it after it prints, or design a cut or notch in FreeCAD? (Which I don't know if it even is possible) Thanks or the tutorial mate! I learnt a rather lot from it!
I'd put in the notch in FreeCAD and then 3D print with the notch. Lately, I'm doing regular spur gears (not helical) so the gears all slide together easily. For a helical gearset, I'd make the notch either by subtracting a thin cube in the Part workbench, or pocketing a thing rectangle in the Part Design workbench. Congrats on your new printer!!
I looked at your code, and you're doing a 50% duty cycle. That driver really only wants about 10ms high and the rest of the cycle low. I think if you ramp up speed and you only send 10ms per on pulse, you'd get a lot better results.
Dear Sir, How do I get Path to not re machine empty space. I am using a CNC router to put a 12" diameter x 4" deep dishout in a 14" square x 4.5" thick block of wood. I go in with a 25mm ball end mill, and using 3D pocket, rough out the bulk of the material. Then I try to go back, and use 3D pocket with the same tool but with smaller step downs, and 10% step over, (to get a smother surface) and it proceeds to re machine the entire block as if the first cut never happened. Don't get me wrong. The fact that Path even exist, as well as FreeCAD itself is mind boogling to me, and I am more than eternally grateful that it exist. What am I missing? What should I do differently? Thank you for your help in advance, and thank you for the tutorials. Roland
@@kb3cxe Back at home now, I can hop into FreeCAD and set up something like you describe. You do a 3D Pocket first to carve out all the material. And then you do a 3D Surface operation for your finishing pass. Whereas the pocket expects there to be material to remove in multiple passes, the surface assumes all excess material is already removed. Does that work?
@@kb3cxe I don't know about the path workbench specifically. When I grab the latest version of FreeCAD from time-to-time I like to throw $5 or $10 through PayPal. They pop up a donation link after you download.
Just got your software. How do I create a note payable? I borrowed $74k from a private individual, 0% interest, for 5 yrs. I've tinkered in the software and see how to create a Lender but how do I input the info of the note? I'd like to see the running balance, etc. - Thanks!
Picking up Moneylender like a chad! You just create a loan like you would if you are the lender, and for the borrower you put yourself, and for the lender you put your investor. Everything else is the same. Either click the New Loan button or from the main menu choose Loan > New Loan > Loan. When you run reports, you can choose a specific lender when you only want to see loans payable to you or loans payable to an investor instead. When you pay your investor, you record payments on the Payments tab, and Moneylender will do all the math for you.
Ok I give up. I've just finished routing my first board but cannot tell what you clicked on to box in the entire board as a ground plane? It's around time 7:41. (on a side note I had a good cad program written by a Russian guy living in Canada in 97... dos based and it would auto-route everything. I miss that program!)
I don't use clamps for my circuit boards. I use 2 layers of blue tape: One on the bed, and one on the board. Put CA Glue on the bed side, and accelerant on the back of the board, and stick it down. No bowing at all. I'm definitely going to check for vibration on the next board I go to cut.
A good solution. I bought some aluminum blocks and I want to try an undercut bit to make a special clamp just for the little 70x100 copper blanks. Hopefully, with a nicely undercut ridge that covers the majority of the perimeter of the board I can clamp in and out really easily without having to worry about bending anymore. I have some big sheets of 2-sided pcb blanks (like 14"x14" or something). I'll have to try your method when I attempt something on those.
sorry for another comment... lol, you've got so much going on here. In the past I've abhorred cutting plastic, especially acrylic stuff. The speed and size of the blade to cut it is always a hit and miss. It's almost impossible to find a happy medium free hand sawing. What I found is that the larger the TPI (teeth per inch), the slower you can go, without generating so much heat that it welds itself back together seconds after passing thru it!
I rewatched the part of the video with the acrylic to see what the context is for your comment. Seeing the old 2x4 router in action made me chuckle. I learned so much by making it. Only recently have I been brave enough to run my router at less than full speed, so I'll take your advice next time I'm doing acrylic and cut the router RPM and feedrate. I have a little air compressor that blows off the chips now, so that'll probably help keep things cool and clear of the cutting surfaces, too. I appreciate you taking the time to share your experience!
Great! Thanks Josh. Just found out that flatcam is available for Linux!!! yea me! I run Linux Mint (fork of Ubuntu) and love it to death. I've been getting confused about gerber files vs grbl files lol. Flat cam to the rescue I reckon. On another note, I'd like to do my boards green, then use the cnc to remove the resist for each solder connections. Any ideas on this? Thanks in advance! Doug.
Sorry for taking so long to reply, I didn't notice this comment when it came in three days ago. I saw a marketing video for a company that sells a mini CNC router that's specifically for endmills (edit: for PCBs). Their process has you milling the traces first, and then your apply an epoxy solder mask on top of that. Then the router delicately mills just the epoxy off of the top of the foil (edit: where the solder pads should go). Given how warped the blank boards are and how very thin the copper cladding is, I haven't attempted it myself. I'm using mine for prototyping - to figure out how the circuits need to work, but I'm going to be ordering a small batch of boards from JLCPCB once I know the wiring is correct. I priced out my little "smart bone" boards, and it was like $6 with two day turnaround. Would take me almost as long to mill six of them myself and I'm just doing single layer boards. So the rumor is that you can gently carve off a solder mask with an endmill. I don't think I'd want to do it, though. With a layer on top of the copper, I couldn't height probe successfully. If the cladding isn't at least 0.2mm thick, it's be pretty dang hard to clear the pads without erasing the 0.035mm foil unexpectedly. A photo-cure epoxy might work with a stencil, though. So that's why I haven't explored doing it personally - it seems unlikely to succeed with my equipment.
My God you've done the unthinkable here! The ATMega 256 is an insane chip with so much capability I'd never ever be able to use it all. I've got one in an arduino like board and it's the best chip I've ever programmed with. Man oh man, Today is like Chrismas for me... finding your channel!
Regarding etching and ferric chloride. I've been making my own circuit boards all of my adult life from simple to very complex, but they were always one offs created manually. If you store your used FC back into the original bottle it contaminates it with the oxidized copper and it slows the etching process every time. Back in the day I always kept my used FC in it's own container and I'd write with a marker how many time it was used because each time it always takes longer to get the desired result... until it becomes pretty much useless. Then I'd start over with new FC. In the 80's, I had a etchtant heater that would bring up the temp to something that was decent, (around 85-90 deg F iirc) and it would not only shorten the time but the etching was much better quality wise. Thanks again. Doug
HOT DAMN! This video is absolute GENIUS!!! I've been looking for a way to use KiCad with my new cnc machine to make circuit boards for days and this is the BEST on the internet ever! And I agree, to make a video like this as long as it is, IS A SHIT TON OF WORK! (I spent two weeks making a 90 second splash ad for my ex's school with over 150 objects). THANK YOU for your time and dedication for making such a quality presentation! Doing the bootloader work is always a pain in the ass. I've done it twice with a 328 and requires the FTDI232 interface. But the instructions online work flawlessly. Your end product here is absolute perfection sir! Thank you so much for posting. I may be in touch soon via email with a couple of questions as I acclimate to the learning curve with my new CNC which arrives tomorrow (3018). I'm going to watch this a few more times to ensure I get the steps right. Thank you so much! If I could like 1000 times I certainly would! Doug
You could have the ring gear on the second stage link into the sun gear on a third stage. Hold the third stage ring fixed with the first stage ring, and your output would be on the 4th stage ring. But you can get gear ratios like 300:1 from just two stages if you choose the numbers of teeth appropriately. I used multiples of four (since I have four planets) for all the tooth counts so that the planets are identical. If you use multiples of two for tooth counts, you'll need two kinds of planets (and they'll have to be aligned carefully when the gearbox is assembled). If you use arbitrary numbers of teeth, each planet might have to be different, and every planet, sun and ring will need to be oriented properly when the gearbox is assembled. It makes the planets and assembly harder, but you can get astronomical gear ratios from just a two-stage assembly if you can tolerate the extra complexity.
Hello, Thanks for the code it worked well, Is it possible to control the number of revolution of the motor? For example if I wanted 30 revolutions then it stops, how can I do this? Thanks again
@@WhitmanTechnological No, the first code haven’t actually worked even after fixing the bug, the motor didn’t start at all. It makes sound as if it’s working but not rotating not even with a push. However, the second code worked well, the motor rotates. In my project, i need it to rotate 30 times and then have a 2 seconds delay. If you don’t mind, can you help me with that or just further explain the code and what is considered a revolution. Thank you so much for your help so far
This part here: //pulseDelay = RPM / sec/min * micros/sec and divided by two because each step requires going high and then going low (two toggles). unsigned long pulseDelay = 100 / 60 * 1000000 / 2; The RPM is set to 100. If you wanted 40 rpm, you'd change it like this: unsigned long pulseDelay = 40 / 60 * 1000000 / 2;
I just noticed this is missing a piece, the steps-per-revolution of the stepper motor. unsigned long pulseDelay = 100 / 60 * 1000000 / 2; It'd be more like: //pulseDelay = RPM / (sec/min) * (micros/sec) / (steps/rev) and divided by two because each step requires going high and then going low (two toggles). unsigned long pulseDelay = 100 / 60 * 1000000 / 200 / 2;
You're doing it all wrong!! Try using the AccelStepper library! You'll get a way higher speed because you are ramping up to that speed! No motor, unless you're Tesla, ramps up to 100% immediately on command! You should know this!