-
Notifications
You must be signed in to change notification settings - Fork 533
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
RPi possible? #12
Comments
Thank you. It should work on RPi, I don't know anything about the beaglebone black, However I tried only on Linux and some users on windows and Mac. The requirements are minimal: python, tkinter / python-tk (Ubuntu, RPi, Debian), python-serial, all existing on RPi. |
I can confirm, that bCNC runs nicely on a bananapi. |
@toomuchcookies : That is wonderfully fantastic news. I'll experiment with it later this week. @vlachoudis : I have been receiving a ton of public and private inquiries about RPi-based Grbl interfaces. Would you be interested in supporting an RPi flash image for the Grbl community? If so, I can try to do my part and point users this as a great alternative to UGS and the much simpler GrblWeb. |
Yes of course I could support an RPi version. I will prepare my RPi for it as a test platform. |
@vlachoudis : Great! I got it running just now without much effort on my RPi. I haven't connected Grbl or tested it on a machine yet, but I'll do that later tonight. Here's a short summary of what I did to get it working to save you and others some time. (But you probably already know how to do all this).
As a side note, I also installed |
@vlachoudis : Another update. Got it connected to my test machine and did some initial testing. Works great. I really like the GUI and how much you've obviously put into it. The only minor issue that I had was the gcode visualizer, which, not surprisingly, was a laggy on the RPi. Is there is any option to disable it or reduce its CPU requirements? It's pretty lightweight as far as I can tell, but the RPi processor is pretty constrained. I may buy an RPi2 to see how much better it'll run on that. The zooming and panning was particularly hard with the lag. It was nearly impossible to get the visualization to be centered in the screen. Perhaps all that is needed is a fit-to-screen (if it's already there, I couldn't find it last night). |
This I could imagine on the RPi. The combination python with tkinter is not the most performant in terms of graphics. You could increase the performance by increasing the value of the accuracy parameter, so the arcs will have less segments -> faster drawing. It is not difficult to add an option to disable the visualization of the gcode. I will do later on when I go back home. I will think if I could do some kind of a draft drawing, or simply the margins of the paths. I am sure that the primitive CAM operations that I have inside will be laggy as well. Just from curiosity are you running on hard float or soft float? Fit to screen: oops this I missed. I will not it add it as well :) |
@vlachoudis : I'll look into all this later tonight. I wasn't aware that there was an option to run as either hard or soft float. I'll check that too. |
you can make a "dpkg -l" and see if the packages are "armhf" or "armsf" hf=hard float, sf=... |
I was also thinking that I could provide a quick only 2D display for the X-Y mode, therefore not necessary in processing all repeated passes in different z |
@vlachoudis : That's fantastic. I'll check these tonight. I did try it on my Mac at work and zooming did not work. Not sure if that is a problem with the base Python Mac installation or not. |
@vlachoudis : Ok. I tested last night on the RPi installation with the new code. The enabling and disabling of the display options worked great. The fit to screen worked perfectly and made the whole process much easier on the slower RPi. While right-click panning worked on the Mac, it didn't on the RPi, and vice versa with zooming. The RPi was able to zoom, while the Mac couldn't. Not sure why. I didn't dig too deep into it or check if there were some key binding that enabled a change in behavior. However, there was some serious lag issues, on the order of seconds, with the "Pause" or feed hold button during a job. And, some general weirdness with the start button. It was very hard to control the machine and it would get stuck in a hold, cycling between a start and a quick hold after. I'll check your code later tonight to see if I can help in isolating the problem. |
@chamnit The panning is with the "middle" mouse button. Maybe on Mac that you have only one the middle behaves like the right? On RPI as it is linux I would expect to work with the middle one.
|
@vlachoudis : Interesting.
EDIT: Forgot to mention that |
@vlachoudis : Here's a summary of last night's testing.
That said, over the weekend, I'll dig into your source code to see how things are implemented and let you know what may need to be changed to get it compatible. I do know a bit of Python (althgouh now a bit rusty), so I'll try to implement the changes myself and submit them for your review. |
|
@vlachoudis : Yeah, I was disappointed in the WiFi, but it could have been caused by proximity. The RPi is in the garage and those little WiFi dongles probably don't have the best antenna. I'll check it again, as I setup another Wifi router in the garage last night. |
@chamnit if you plug the usb wifi directly in the raspberry pi the current could be insufficient, at least I did observe this and I did read about that in some comments on amazon too. After I plug the wifi dongle directly in a powered usb hub my wifi was a lot faster. Other users on amazon also suggested to try different usb wifi dongles... |
@alpharesearch : I just tested the Wifi USB again. This time there is an old router acting as a WiFi bridge in the garage. Infinite improvement. Wifi is seemingly useable over VNC as long as these RPi Wifi dongles have a good, strong signal. I suppose its possible power has to do with it. In the past, I've noticed that you have don't have to have a powered USB hub if you have a good wall wart that can provide over an amp or two of current. Even with a webcam and WiFi dongle. |
@vlachoudis : I didn't have time to get into the code last weekend and I'm slammed with some deadlines this week. I'll have to revisit this probably next week. |
@chamnit No problem. BTW do you have any heavy g-code to test? I am beginner in CNC and for the moment I don't have any big project file. |
@vlachoudis : I had a bit of time to do some performance testing with bCNC and compared it with other popular cross-platform GUIs (Java, JS+NodeJS, JS+GoLang) that will run on the RPi. In short, bCNC, by far, performs the best. It nearly runs as well as the benchmark, the simple Python streaming script Grbl supports. I'm not sure why, but it's likely due to Python being very-well supported on the RPi or it's a testament to your efficiency. Either way, keep doing what you're doing! :) As far as some oddities I ran into earlier, I didn't see any through this round of testing. For the most part, the bug fixes you have recently pushed have seemed to resolved them. Althoguh, I did not test the pendant and the multiple button pushes. I will as soon as I have time. I've also been doing a complete review of Grbl GUIs available. I feel that Python is a great platform to build upon, since it's been fully accepted by academia, who constantly improve its performance, and won't be going anywhere. It's also very accessible to anyone anywhere. (40% of Grbl's downloads come from developing countries.) The same can't be said about JavaScript's constantly evolving state and Java's slowly dying state. At some point though, we'll need to start a conversation about implementing tool changes into bCNC, when you're ready. |
@chamnit Very nice. I didn't expect that python is performing faster than java on the RPi! I will be happy to do the tool changes and what ever is needed, however:
I saw that there is a GRBL simulator program, but I was unable to compile it with the new 0.9i. Is it dead the project? |
@vlachoudis : Unfortunately yes. Grbl simulator not something I directly support, nor have the time to. On occasion someone from the community updates it, but that's been a while since that last happened. I was a bit surprised about Java not running as well as the Python implementation. Since Python is a standard installation on the RPi, it may be as simple as Python being built to run well on the RPi. But, it also may have to do with the RPi's inability to refresh data on-screen quick enough. The Universal G-code Sender (Java GUI) updates a tabbed window with what g-code has been sent and what Grbl has executed in real-time. AFAIK, bCNC doesn't do that and only has to update a progress bar (my preference for the RPi). The other two GrblWeb and Chilipeppr (JavaScript with NodeJS and GoLang servers, respectively) are hamstrung by the need to use the RPi's web browser. They require a lot of computational power to do fairly simple things in the browser window. |
@vlachoudis : On tool changing and helping out in getting oriented in the CNC world, I'll help out as much as I can. :) It's always been a personal goal of mine to make Grbl or CNC in general accessible to everyone. If we can run Grbl and bCNC on hardware that costs around $100 or so, CNC can be brought to developing countries, colleges, and high schools very easily. And given that Python is taught and is heavily used at engineering universities, it's feasible that bCNC can quickly grow, provided that we can give current users a very compelling reason to start using it. At this point, it's simply a matter of adding the features that the community is used to having. (FWIW, you already have 90% of it.) |
@chamnit Sounds good! |
@vlachoudis : I don't want to overload you with things, but here's a list off the top of my head.
|
@vlachoudis I can create some really nice files for you to try. Do you have a preferred email address that you can accept large files? |
@1bigpig I have a home made MDF machine. The work area is rather small, around 40cm x 20cm. |
lordmundi here... i'd be interested in helping. What shuttleCP is sending FG On Fri, May 8, 2015 at 12:56 PM, Vasilis Vlachoudis <
|
@chamnit I ve just added the state reporting of the machine. it sends a $G every 10s while it is not running. |
I succesfuly tested bCNC in Ubuntu, here the details: Ubuntu 14.04.2 LTS x64 *Update your system
*To update pyserial install pip
*Then upgrade pyserial
*Install tkinter
*Run ./bCNC Happy milling! I have also updated the wiki page OS |
@yOPERO just one correction. On ubuntu there is a package called python-serial |
Does anybody try bCNC with http://pypy.org/features.html ? |
@effer : I haven't, but I think the limitation would be whether pypy is a standard library. AFAIK, it isn't. I recall that there was a desire to keep the dependencies required to an absolute minimum. FWIW, I haven't had any performance issues with bCNC on an RPi 2. It runs better than any other GUI I've tried on it. I'm not exactly sure why, but it's probably a bit of really efficient programming and Python being well supported on the RPi platform. |
It looks like PyPy is not a library but just another python version, with a highly optimized JIT compiler. |
To make things easier for my testing I created a RPI image with bCNC, XRDP, CuteCom. http://wiki.protoneer.co.nz/Raspberry_Pi_CNC#bCNC_.5BPython.5D.5BRecommended.5D |
Thanks @Protoneer I've added to the wiki your link. |
@Protoneer : That board is nice (especially the connectors that make it easier than those pin headers from the earlier grbl boards). But why is it only equipped with three motor drivers? For my shapeoko i'm using a protoneer board (on top of arduino) and there i use all four motor drivers. |
Thanks @toomuchcookies. To keep it compact I had to stick to 3 motors. An
|
@chamnit is it possible to run your heavy test with the new interface on RPi. The core sender thread is heavily modified to support function evaluations and feed override, but I don't believe that will slow it done |
@chamnit I just received my new pi3 and tried using it with my Sherline CNC controller. The controller uses a parallel port, so I am using a USB to parallel adapter. I ran the necessary installs for pyserial but get an issue with which port to select within bCNC. I noticed in /dev/usb/ there is lp0? I tried typing that in and I get a privilege error. if I select ttyAMAO which became available after the pyserial upgrade, it locks up the bCNC process. Any ideas to fix? |
hmm... its possible you don't have permissions to the device... you may to test out that theory, try giving read, write, and execute privileges for If you first su to root (or use sudo if you don't have a root password set chmod ugo+rwx /dev/usb/lp0 .... and similarly for any other devices in /dev that are associated with if it then works after doing that, then a udev rule is what you need to FG On Thu, Mar 17, 2016 at 3:21 PM, stopaginn notifications@github.com wrote:
|
@stopaginn I have only run bCNC briefly so by no means an expert but my simple understanding is that it is designed to communicate via USB to an Arduino based GRBL CNC. bCNC is not designed to be capable of generating the pulse timing required to drive your mill via parallel port directly. At least I think I am correct..... I've been trying my GRBL with a number of "g-code senders" and its pretty awesome..... , some electronics and wiring skills are handy as well as familiarity with Arduino too. |
Thank you both (lordmundi, splitn2)! |
@stopaginn if you already like GRBL then this time around you need to work out how to interface GRBL TTL pin outs step and dir to the Sherline parallel port. I am tempted to do something similar on my large cnc router to see how well the GRBL drives it. You may be able to literally connect the Arduino GRBL outputs and treat them like the parallel port pc outputs and directly drive the Sherline, I'm not sure but it sounds feasable, perhaps there is a "parallel port shield" out there for GRBL enabled Arduinos that would be cool. cheers https://www.youtube.com/watch?v=ftTMV4TGb74 this is a very good video explaining my thoughts..... |
@splitn2 @stopaginn : A Grbl user made a parallel port converter for his large CNC mill that was running LinuxCNC (grbl/grbl#663). He did a head to head comparison between LinuxCNC and Grbl since he could easily swap between them. Grbl won. :) |
@chamnit that is very good idea, using a Nano inline between the RPi and the parallel port input on the cnc mill. Great for a retrofit !!!!! |
Hello! |
@chamnit @vlachoudis do you guys still use bCNC on RPi? Which RPi do you use? It's 3y passed already. Maybe you have moved to some other remote control solutions? |
… On Tue, 8 May 2018, 18:08 Vilius Kraujutis, ***@***.***> wrote:
@chamnit <https://github.com/chamnit> @vlachoudis
<https://github.com/vlachoudis> do you guys still use bCNC on RPi? Which
RPi do you use? It's 3y passed already. Maybe you have moved to some other
remote control solutions?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#12 (comment)>, or mute
the thread
<https://github.com/notifications/unsubscribe-auth/ADqFIyDqZ6w9rAJU5IhEdOf51Qhv4s7eks5twTZggaJpZM4EE2LR>
.
|
As @Protoneer mentioned. It works fine on the rpi. (I'm using the CNC hat). When opening large g-code files it can sometimes pause for a 0.5 second or so but that's the only performance issue I've encountered. I'm using RPI model 3. |
works on rpi, if you have any other rpi related troubles, please feel free to open new issue. |
First off, great job on this GUI. It's extremely feature-rich.
I don't know what the requirements for bCNC is, but is it possible to get this to run on an RPi or BeagleBone Black? I've been looking for CNC controller solutions that will run on these and will try to do whatever I can help out to make this possible.
The text was updated successfully, but these errors were encountered: