For me this project comes out of nowhere, and is very welcome. What a fantastic project, even! Can't wait to actually order some up and actually build my CNC that I've been putting off as a project for literally years now. And yes, please bake the UART for the TMC stepsticks into the board, if at all possible. It's become a default on 3D printer boards and it's just so much better than fiddling with a multimeter while twiddling that stupid sensitive miniature-potentiometer.
Just impressive, I live off grid right now and have been looking to get my cnc machine going from DC only. This solves a lot of my problem on the controller side, you have inspired me to get going on my rebuild.
Impressive progress. Much capability exists to be harnessed in this generic setup. LinuxCNC is not something I've explored, but still very interesting form mechatronics aspect. FYI: Over the last month Pi 4 inventory and availability has greatly improved from official suppliers. (ie: prices)
Glad to know I'm not the only one struggling with Level shifters. I bought some logic shifter breakout boards (TXS0108E) and have not been able to make them work at all...
Interesting. I control my milling machine using a beagle bone black and a version of linuxcnc called machine kit but it's very old and I don't think machine kit is actively developed now. The BBB has the advantage in that it has two x 200MHz co-processors which are doing the real time stuff, presumably that's what your board is doing 🤔
I remember it wasnt cheap combo at time. He is using rpi zero + stm32f103. I dont know how much custom board costed but this is dirty cheap. If he upgraded stm32 he could get dual arm or similar at higher clocks.
Yeah it's very cheap, that's for sure, but the PiZero is not really good enough if you want to use a GUI as well. Yes I suppose a faster MCU would get a better step rate, personally I have yet to feel a need for that. I'm still using software step on my big router which I think is about 25kHz.
The PI variants are SOC's so they have all the stuff needed to drive the steppers and the DMA controller can be hooked to a timer so you get a fixed stepper rate so you can ditch the micro, some dude has code for this on git
Ive also had issue with txb0108, it had something to do with pullups/ pulldowns and auto detection of signal direction. Dont remember the exact solution but it works now
Congratulations on getting your rig running. I really like LinuxCNC, but setting up a CNC machine is difficult. I am currently starting a CNC project using a Mesa 7i96S card. Begin rant. So far I have not found a single company selling CNC hardware that reasonably communicates how to use their hardware to set up a simple XYZ CNC, with spindle and speed control, homing G53 and G54---G5X work coordinate system (WCS), using LinuxCNC. The goal should be to make their hardware plug and play with LinuxCNC with all the necessary .Config files, etc. for a basic system. CNC Manufacturers: If we start with a WORKING SYSTEM, then we can customize, set ball screw parameters, etc. and learn about all the other fabulous features of your hardware. There is too much unnecessary suffering imposed on the buyers of such hardware. End of rant.
True. Information about config files is scatered everywhere. But lately I saw few good videos on youtube that explain it well. Prior you had to dig into forums and solve problem after froblem as they popup.
Mesa makes hardware that can be used for all kinds of things, that's the beauty of FPGA. Just because somebody wrote a firmware for LinuxCNC that runs on a Mesa board doesn't mean they know anything about how it works. The only place you can expect documentation and support to come from is other LinuxCNC users, who do it for free in their spare time.
@@iforce2d You speak truth. I do believe that if Mesa targeted a specific LinuxCNC application, they would endear people like me to promote their hardware, and move many of us forward.
The problem is everyone wants to use their own hardware. For example, what spindle drive hardware should they settle on in your opinion? With something like Acorn, they can dictate that to you. Mesa isn't really in that business. An xyz system by itself is simple to set up using lcnc, first time I did it it took a couple of hours.
@@unterhausen Good on you! If that was your first CNC system that is indeed impressive! It took me DAYS to dial in my first LinuxCNC system, which served me well for over 10 years. Upon its death, I'm putting together new hardware. After a lot of digging, I chose Mesa, but I am still in the "lost in the weeds" stage. I would like them to publish a good PDF or at least give a few YT references that they have vetted and recommend. Have already watched dozens of dead-end YT videos. A working example, on a bench like shown in this video (with files) can give people an idea on what is possible and save user's time and make sales for Mesa. Maybe they are already selling as many units as they want to. Or maybe they are just a small company and doing the best they can.
Almost every pin has a breakout, they're just labeled D3, D4 etc instead of SCL, SDA. So to use I2C/UART is just a matter of changing the firmware. Recently I changed it to use D11 (on the v1.1 board) as a UART TX to control the current limiting of the TMC2209 drivers. See the "About TMC2209 UART control" here: github.com/iforce2d/weenyPRU The v1.2 board will have a jumper for convenience.
Not really. I think you need to set up a 'pin' for the position feedback, so that LinuxCNC knows how the axis has moved. Sounds like a question for the LinuxCNC forums.
Not with this particular microcontroller, but with a slightly more capable one another 4 axes would be easy enough. This is an experiment in how cheap it can go and still be reasonably useful. I don't really know much about Remora but it seems to mostly target existing 3d printer boards, so I guess it would do whatever axes each target board can do.
Hi Denys, I actually shared this a while ago but then forgot to add it to the github page. oshwlab.com/iforce2d/stm32-pru_copy You can find the v1.1 board hardware design at that link. Check the github again in a few hours (or maybe tomorrow) and I will add a page about hardware info. Since then I have made another small alteration, v1.2 will have a jumper and pullup resistor to make TMC2209 UART connection a little more convenient. I have not ordered any v1.2 boards yet though, so that's untested. It's not a major change. If you want a v1.1 board I have a handful here I could sell, they are still bare so I would need to populate them with the headers, the large caps, screw terminals etc. Get in touch iforce2d at gmail if interested.
LinixCNC is professional solution. Many old industrial CNC machines are updated to use LinuxCNC. I tested it with my mesa card and it can stay on for month without issues if set up correctly.
Linuxcnc has crazy amount of options. Maybe too much in some cases. But it has support for many gcodes that grbl dont as its real time system thats why it requires special kernal to work. It can do sync of axis for rigid tapping or for lathe for threading where spindle is locked in loop with axis fir example. It support encoders can be interfaced with python and c. There is lot of things to be said. Its just more complicated for all those reasons.
It's hard to know where to start... with LinuxCNC you get 9 axes, realtime jogging, realtime feedrate adjusting, realtime pause and resume, manual g-code direct input, access to super fast external FPGA hardware and ethercat etc, various types of remote control, extremely configurable and extensible I/O, custom hardware interfaces, wider range of g-code, callable functions in g-code, various GUI interfaces, python and C bindings to interact from your own code... and more.
Those terminals suck! Buy the rising clamp style ones, a little more expensive, but they won't cause headaches later down the line. With level shifters, I have always found discrete MOSFETs work a lot better than those dedicated chips. Just get a jellybean fast MOSFET.
Yes, I followed this guide: lemariva.com/blog/2019/09/raspberry-pi-4b-preempt-rt-kernel-419y-performance-test I've been trying to create a sparse SD card image as a backup, and also so I can share it with others. So far the smallest I can get is about 7Gb which seems kinda large. I could upload my compiled kernel files somewhere if you like. I have these for Pi3B+ and PiZeroW, they are kernel-4.19.71. That would let you start at the "Transfer the kernel" step in that guide. You might also need to compile LinuxCNC from source, especially on the PiZeroW. I have some rough text notes for that procedure I can upload somewhere too if you want to take a look.
@@iforce2dok yeah ive been tinkering with lcnc from the early 2010's - just thought it would not have enough power to push a RT kernel without loosing alot of performance. There is alternative kernels than the RT patches and the linux kernel that can sometimes make better preempt performance. Just found this curious that you could use such a small chip and still direct drive a couple of steppers without using a FPGA card.