Welcome to Our Community

Unlock hidden features. Sign Up for Free Today!

bCNC and the Raspberry Pi

Discussion in 'Control Software' started by Sonny Jeon, Aug 13, 2015.

  1. Sonny Jeon

    Sonny Jeon Veteran
    Staff Member Moderator Builder

    Joined:
    Aug 6, 2015
    Messages:
    110
    Likes Received:
    35
    A few months ago, I spent a week or two testing out different GUIs that will run on the Raspberry Pi (RPi). These included: Universal Gcode Sender (UGS), Chilipeppr, GrblWeb, and bCNC.

    I tested these, because I wanted to get my nice laptop out of the dust and metal chips. Since the RPi is $30-$35, has DVI out/USB/Ethernet, and is fanless, this seemed like perfect solution. If it breaks, no big deal. Just swap it out.

    After testing, I found that only two of the four GUIs worked under stress-testing, which involved pushing Grbl to it's maximum limits. The test basically sent g-code lines every 5-6 milliseconds and running at 25,000mm/min and 5000mm/sec^2.

    - bCNC, a relatively new GUI, is the only one that ran perfectly on an RPi 2 (still ok on the RPi 1). It was responsive throughout the job and executed it without any hiccups or problems. bCNC, maintained by Vasilis Vladchoudis, a CERN researcher, is written in Python and TK, so it's fully cross-platform and doesn't require any additional libraries, except pyserial. While it looks Windows95-ish due to TK, it works fanastically and has a ton of powerful features, like macro programming of short g-code programs, auto-leveling, virtual pendant (web server for smart phnoes/tablets). It's still in development and Vasilis is currently working on re-organizing the GUI and decoupling the front end so people can add their own skins.

    - UGS ran acceptably well only on an RPi 2. The RPi 1 was too slow. Recent nightly releases have improved UGS' performance to where the stress-test job would run and remain responsive to holds and other controls, only if the auto-scrolling checkbox was disabled. For the vast majority of jobs, you'll likely never run as fast as the stress-test, so UGS will work great for most people and most jobs.

    - GrblWeb worked somewhat ok. The most recent release of GrblWeb helped tremendously with browser responsiveness during an aggressive job, but the RPi2 web browser was still too slow to really make it useful. GrblWeb did work well when the RPi was only the server and you connected to it through a remote computer. This model may work at some point, when the RPi gets even faster, and the interface is kept simple.

    - Chilipeppr did not work at all on the RPi locally. The RPi web browser was too slow to run even a simple job and remain responsive. Chilipeppr will only work on an RPi, if the RPi is only running the Serial Port JSON Server (SPJS) and you connect to it from a remote computer. Since Chilipeppr still requires a laptop near the machine to control it, it pretty much nullifies the reason why I was trying to use an RPi in the first place. Not to have it in the shop or covered up from the dust. In addition, Chilipeppr does not do well with the stress-tests at all, even in the best case scenario of running it on a fast MacBook Pro (no RPi involved). The browser interface becomes non-resposnive and eventually crashes during the stress test.

    Anyway, I hope that helps some people that are looking for a similar solution!
     
  2. Matt Miller

    Matt Miller Well-Known
    Builder

    Joined:
    Jul 5, 2014
    Messages:
    9
    Likes Received:
    2
    Sonny,

    I'm going to give bCNC a try. I just ordered the new 7" Pi Foundation touchscreen to see how it'll all work together. Is there anything that's not in this thread https://github.com/vlachoudis/bCNC/issues/12 that I should know about?

    Thanks in advance,
    Matt
     
  3. Sonny Jeon

    Sonny Jeon Veteran
    Staff Member Moderator Builder

    Joined:
    Aug 6, 2015
    Messages:
    110
    Likes Received:
    35
    Not that I know of, but you should probably know that bCNC is under-going a major overhaul in its development branches to make it more powerful and flexible. Use the main branch until bugs are worked out in the new GUI. It's stable and works well.
     
  4. Matt Miller

    Matt Miller Well-Known
    Builder

    Joined:
    Jul 5, 2014
    Messages:
    9
    Likes Received:
    2
  5. Sonny Jeon

    Sonny Jeon Veteran
    Staff Member Moderator Builder

    Joined:
    Aug 6, 2015
    Messages:
    110
    Likes Received:
    35
    This is pretty interesting. The author of this software posted this on Grbl's issues threads a few weeks ago. It looks very polished. I think web-based interfaces are going to come into their own soon, but they still have a lot of technical issues when pushed hard. It's getting there quickly though. GrblWeb is constantly improving this by staying simple and addressing these problems when they come up.

    That said, there have been new developments with bCNC. Manual tool changes and macro programming are now supported. I haven't tried them, but a brand new release has been posted this last weekend. This really puts bCNC as the most advanced GUI out there for Grbl, but it still has some polishing to do. Let the author know of any issues. He's really quick to fix them. I would love to see bCNC's backend and something like GrblWeb/GrblServer as the front-end. It'll be a very good marriage I think.
     
  6. FatGut

    FatGut New
    Builder

    Joined:
    Feb 19, 2016
    Messages:
    10
    Likes Received:
    0
    Sonny,

    I wish I would have seen your initial post on the PI and Bcnc!! After having built the C-machine I got to admire it every day and watch it do "Nothing" My wife said "well it looks real good" I almost gave up as most of us are makers cant afford off the shelf packaged software / hardware that's why we "MAKE". I know basic to moderate electronics so for me the hardware was easy (Pi,Drivers,wiring,circuit building) I also knew going in that any make has its challenges but the "software" aspect for me was almost impossible!! I did finally get it work and cut a few small pieces, Still struggling with Bcnc getting things dialed in I walked away for awhile. Do not get me wrong I think Bcnc is fantastic software and thank Vasilis Vladchoudis for his continued work on Bcnc and by finding your post I am going to update my Bcnc software and jump back in to this exciting but frustrating project.
    Thanks for your post!
     
  7. Kirk Fraser

    Builder

    Joined:
    Oct 17, 2016
    Messages:
    2
    Likes Received:
    0
    Sonny,

    Please explain with RPi code. I have a new RPi 3B with FreeCAD and KiCad installed but I don't have a clue on the rest. I found two sources of RPi code for Universal G-Code Sender (UGCS) that gave obsolete code. I think I got the Java installed but not the UGCS itself. I have an old MaxNC mill that broke down so I bought an Arduino and CNC Shield and new motors that can use the 4 wire interface to save an expensive factory repair. I can do XYZ G-codes by hand but not arcs.

    You mention bCNC and Grbl. I assume the flow is draw in CAD, a CAD export to CAM (bCNC), then G-codes to UGCS and from there to the Arduino, CNC shield, to CNC Mill stepper motors. Where does Grbl go? How accurately does it work in Open Loop with no position sensors? Unfortunately the EBay vendor I bought the Arduino CNC boards from had no instructions!

    Is there a way to easily figure out the correct Raspian download codes from a Github entry?
    Any advice on LinuxCNC which some RPi forum posts recommend another version of?

    I downloaded the Github .zip files for bCNC and Garbl.

    Thank you.

    PS: One tip from my experience - my old RPi 1 died after a while because of the memory chip, not the RPi itself. The SD memory vendor I'm using now is ADATA which is working. Both Samsung and PNY have failed twice (4 cards) for me.
     
    #7 Kirk Fraser, Oct 17, 2016
    Last edited: Oct 17, 2016
  8. Sonny Jeon

    Sonny Jeon Veteran
    Staff Member Moderator Builder

    Joined:
    Aug 6, 2015
    Messages:
    110
    Likes Received:
    35
    There are lots of information on the web to explain most of this, but I'll give you a primer. Grbl is the motion controller, converting the g-code commands to moving the stepper motors according to plan. Grbl is firmware only, runs on the Arduino, and does not have a user interface. It requires the help of a GUI like bCNC to load and send g-code programs to it.

    bCNC is a g-code editor and uploads it to Grbl for it to execute. bCNC will interpret all of Grbl's feedback to show you what its doing (position, where it is in the job, and graphics). You still need a CAM program to convert a CAD model to a machine tool path. Hope that helps.
     
  9. Sonny Jeon

    Sonny Jeon Veteran
    Staff Member Moderator Builder

    Joined:
    Aug 6, 2015
    Messages:
    110
    Likes Received:
    35
    Thanks! I think the learning curve surprises most people when first starting out with CNC machining. It isn't 3d printing, where it's download a model, slice it, and hit print. There are lots of different tools, unique feed and speeds for each tool, figuring out how to hold your work, staying within the limits of your machine, and each material needs to be treated differently. On top of that, the CAM process isn't very straight forward and can be quite complicated depending on what you are doing, like cutting hard metals.

    There's been a lot of work to simplify this process, but there's still a long way to go. FWIW, bCNC is not something a beginner should use until they are familiar with their CNC machine. It's quite advanced and can be over-whelming for most people due to everything it can do. Using a simpler sender like UGS (works on an RPi3 well) is usually where I'd tell people to start.
     
  10. Kirk Fraser

    Builder

    Joined:
    Oct 17, 2016
    Messages:
    2
    Likes Received:
    0

Share This Page

  • About Us

    The OpenBuilds Team is dedicated helping you to Dream it - Build it - Share it! Collaborate on our forums and be sure to visit the Part Store for all your Building needs!
  • Like us on Facebook

  • Support Open Source FairShare Program!

    OpenBuilds FairShare Give Back Program provide resources to Open Source projects, developers and schools around the world. Invest in your future by helping others develop theirs!

    Donate to FairShare!