Skip to content
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

Support for Smoothieboard? #43

Open
funinthefalls opened this issue Feb 21, 2017 · 14 comments
Open

Support for Smoothieboard? #43

funinthefalls opened this issue Feb 21, 2017 · 14 comments

Comments

@funinthefalls
Copy link

The smoothieboard now emulates GRBL for GCode syntax, is there any way you could add support for the Smoothieboard ping pong serial connection?

@arthurwolf
Copy link

arthurwolf commented Feb 21, 2017

http://smoothieware.org/grbl-mode should make Smoothie very close to GRBL in terms of what commands it accepts.

However, there is only one main difference you need to take care of : Smoothie and GRBL do not exactly have the same serial protocol ( how they say when to send new lines, what a line is etc ).

If somebody wants to add Smoothie supports to CP ( I sent three free Smoothieboards to various people claiming they would do this over the years and it never happened ), I can find out what the exact differences are for them.

I really hope this can happen, Smoothie now has a very large userbase, and those users would really like to be able to use CP.

@wolfmanjm might have some info on this.

@chilipeppr
Copy link
Owner

chilipeppr commented Feb 21, 2017 via email

@arthurwolf
Copy link

arthurwolf commented Jun 15, 2017

  1. I don't have the answer off the top of my head, but these two scripts are the "reference" for how to talk to Smoothie :
    https://github.com/Smoothieware/Smoothieware/blob/edge/smoothie-stream.py
    https://github.com/Smoothieware/Smoothieware/blob/edge/fast-stream.py
    I believe those answer that question

  2. It is the same as GRBL in that regard, it has the same polling commands ( "?" I believe ? ) as GRBL ( unless GRBL has implemented "pushing" since last time I looked )

  3. Yes, see for example http://smoothieware.org/stopping-smoothie, we have suspend/resume commands if playing from the SD card, and if the host is sending the Gcode ( like chilipeppr does ) then you just need to stop sending Gcode.

More generally, the idea is that there was quite a lot of work done to make Smoothie "mostly" compatible with grbl's coms in grbl mode. bCNC for example, which was written for grbl, had very little to modify to get it to work with Smoothie, maybe you can ask it's author about what they had to do, that would probably save you a lot of effort. @vlachoudis ?

@chilipeppr
Copy link
Owner

chilipeppr commented Jun 15, 2017 via email

@arthurwolf
Copy link

We do have plans to have "instantaneous" ( it never really is, it's really "as fast as possible stop" ) stop.
Technically, by tuning some parameters ( segments per millimeters and queue length ), you can actually get it down to under half a second ( by reducing the length that is actually buffered to a mininum ), but that's a bit of cheating. You can also just use kill ( which stops instantly ) then home the machine.
I don't think how fast it stops is a critical part of making chilipeppr compatible with Smoothie though. To answer your question : It's a planned feature.

@chilipeppr
Copy link
Owner

chilipeppr commented Jun 15, 2017 via email

@arthurwolf
Copy link

arthurwolf commented Jun 15, 2017

I don't mean to be the "just do that" guy, but endstop cost only a few $, are in fact precise enough, and take only very little effort to install and wire. There's a reason pro machines all have them, you really really want to install endstops. We really don't, on Smoothie's side, intend to support "I don't have endstops" as a normal use case for the controller ( though it happens that there are ways to use it that way anyway ).
And trust me, I know where you are coming from, I've assembled DIY machines and spent years using them without endstops, I know how you feel. But as a controller board editor, we have to make some choices, and one of those is "you are supposed to have endstops on your CNC mill".

So, with Smoothie in it's current state, you have two choices to pause :

  1. Use suspend/resume ( or stop sending gcode ), which takes a long time to stop with the default config, but under a second to stop with some config tuning, and allows to jog and then resume without homing or loosing position.
  2. Use kill, which is instantaneous but requires you home using the endstops before starting again.

So, lots of options, including options where you can both pause fast, and not loose position, even without endstops.

@wolfmanjm
Copy link

I will add a pull request soon which adds the ! and ~ feed hold. However they are not instantaneous, but if you set the segments to 1mm then the maximum it will travel after a feed hold is 32mm, if you set the segment to 0.1mm then the maximum travel after a feed hold is 3.2mm. This is the best we can do for now, as instant hold is extremely difficult to implement.

@chilipeppr
Copy link
Owner

chilipeppr commented Jun 15, 2017 via email

@arthurwolf
Copy link

« we really do have instant stop, jog around, redo your touch plate process if you broke an endmill, and then resume without ever losing position. It's really nice »

Well, Smoothie has that too, as I said. It's just not perfectly instant, but if you edit your config it can be very fast ( few millimeters, barely more than your hand takes to get to the stop button ... ). Working on making it closer to instant.

« it's this issue that makes it not workable for me »

But we do have it ...

@chilipeppr
Copy link
Owner

chilipeppr commented Jun 15, 2017 via email

@arthurwolf
Copy link

I'm really exited about the possibility of chilipeppr supporting Smoothieboard.
Jim has done a ton of work on the grbl compatibility stuff so that we can get compatible with more software, and the community as a whole has done a lot of thinking on this too.
I've sent 3 smoothieboards over the years to various people saying they would make CP compatible with Smoothie but nothing has come of it yet, which has been a bit frustrating. If you need one I can send you one. We just want smoothie users to have access to CP :)

@chilipeppr
Copy link
Owner

chilipeppr commented Jun 15, 2017 via email

@arthurwolf
Copy link

I'd have to look quite hard to find who the other two were, I believe they were pointed out by people from the LW community as people who had contributed to CP and would be ready to work on a SB workspace.

We don't have a feature where we send data every X second, you have to ask with ? like with grbl.
However, one thing we do have, is that you can have two serial ports ( over the same USB cable ) instead of one, which makes life much much easier : you use one to stream gcode, and the other to ask ? whenever you want. Would that work ?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants