I am on Mac 1.83 SerialPortJsonServer (also tested 1.80 with a similar result).

I am on Mac 1.83 SerialPortJsonServer (also tested 1.80 with a similar result). I freshly opened chilipeppr and loaded the default CircleDiamondSquare calibration gcode (but the bug happens on all gcode files).

I press play and the machine starts moving. When I press feedhold it takes sometimes up to 10 seconds to actually stop the machine. I am pasting the debug output, but on the final line the “!” command was not sent until about 10 seconds after the button press happened. I think it is supposed to execute very next.

I wont be able to test on my windows machine until this weekend, but I know I have seen feedhold work immediately on windows before.

Also, I am on TinyG2 on a DUE running the latest edge code 86.03.

I will note that this may be a byproduct of the smart servos I am using. If I kill the serialportjson server entirely the motors continue to run for several seconds. Perhaps the motors are somehow buffering the motion directions?

I have the same issue. I was able to demo that behavior to @jlauer via a hangout.

With CP running from a Mac, SPJS running with-in debian. or Both CP and SPJS running from Debian.

You need to use the “tinyg” buffer for now when connecting to the serial port and not the “tinygg2” buffer as the 20,000 line buffer in “tinygg2” is too large and takes a while for that ! to get to the controller. Now, if you’re using 1.80 of SPJS there is no “tinygg2” buffer, but I recommend you use 1.83 because a bug was fixed in 1.83 that caused a crash.

It is possible that it’s your servos as I am not seeing this behavior. Yves, I’m not sure I saw that in our hangout together either?

In the very first one, When I was having the pausing issue. I started the job after I switched to Chrome, It worked with out the pause issue- but then when I clicked feedhold and nothing happened. Your response was ‘That’s Odd’

Just looked at your gist. You are getting too much json back. @Danal_Estes ​ I think your json verbosity is hurting things. TinyG is only supposed to send what changed and now it’s sending all data over and over.

@y_milord did it eventually pause?

Yeah i’d say 20~25 secs later.

Interesting enough, I attempted to recreate the issue to screen grab and I can’t jog the machine around. CP shows a good connection to SPJS. But on the left where is shows all the checkmarks it goes from yellow to green, than black then back to yellow.

Does the same from 1.82.

Hmmm… It is possible that something changed to cause this; at the same time, there is no verbosity change in the TinyG widget that is live at this moment. Footer verbosity was put in with error handling, and backed out that same day.

Nor did filtering change. $SV=2 (unfiltered) is in the init commands and was not updated.

The more likely candidate is the slight expansion of Status Reports. They now contain MPO (Machine Position) as well as POS (work position) reports.

Still, this seems a bit surprising to cause a problem. For example SR comes back every 250 milliseconds. At 115200 baud, one millisecond is enough for 11.52 characters. Prior to the MPO addition, a status report took about 10 to 12 milliseconds, leaving 240 to 238 slack before the next one. With the MPO, the status report might take 15 to 16 milliseconds… still leaving 235 to 234 slack.

Hmmm…

Looping in @Alden_Hart1 ​ and @Rob_Giseburt ​ on this thread.

Would really like to get to the bottom of this. I’m not sure where to start though. It does appear from the logs like the ! never hits the SPJS logs until well after it has been pressed. Does this point to chilipeppr as the culprit @jlauer ? I tested it again just now with the same results. I am afraid to cut anything for fear that feedhold won’t actually stop the machine like it should.

To help diagnose, and/or fix, this problem, SV was changed from sv:2 to sv:1 mid-day yesterday (Wednesday, 29 July 2015).

Having said that, I just noticed that you are running G2. Are you running chilipeppr in G2 mode? When chilipeppr is in G2 mode, no ‘sv’ command is sent as part of initialization. In fact, all the changes back to the implementation of the new widgets for machine vs. work… none of that has any effect on the initialization commands for G2.

There are a couple of ways to get to chilipeppr G2 mode. The clearest way to tell if you are there is to look at the url and see if it contains ‘v9=true’.

So… please let us know if you are in G2 mode or not, and please let us know if the ‘sv’ change helps anything. Meanwhile, I’ll try to test on a Mac soon.

I am not in g2 mode. I was told it wasn’t needed here https://plus.google.com/+AnthonyWebb7/posts/AY1N3mo7caa

Also I reported that selecting “tinygg2” from the drop down menu when selecting the port wasn’t working and was told to just use tinyg there as well.

Do both of those places in chilipeppr need to be set up for the g2?

Excellent, thanks.

It is worth trying the workspace and the serial dropdown both ways… and therefore, there are 4 combinations. “Proper” choice would be the G2 workspace, and the G2 serial… but it might work with any of the other combinations and get you rolling while we figure out what’s going on.

The G2 does have issues right now and is a work in progress, however, it is usable. The main problem is that feedhold is “mushy”. There’s one major chunk of work that is on the table to get it perfect.

Serial Port JSON Server and ChiliPeppr need to both be upgraded to support dual port mode. Version 1.83 was the first step towards that being a reality. You probably notice that CP now aggregates the two ports to one item in the SPJS widget. That was a ton of work to achieve, but needed so that CP can intelligently open up the first port for control, and the second port for data. Once that works the feedhold is sent to the control port and should work instantly while Gcode is sent to the data channel.

If anyone is up for helping out on this improvement I’d love the help so we can get there quicker.

I would be willing to dive in and help where I can. I’m pretty keen on getting it working. What can I do to help? @jlauer

Well, I think the first thing I need is that when a user asks for a serial port open with the tinygg2 buffer, SPJS actually opens both ports and makes one primary and the other secondary. Then it has to be smart enough to steer the !~% commands to the control port (the 1st one opened). So it’s an SPJS modification which means Go.

Dang, I dont think I would be too much help on the go side of things (though I could certainly try). I am pretty proficient with JS/Node so if you find tasks on that end I can certainly help.

You would think that the folks at synthetos would be keen on getting chilipeppr working, I dont believe that TGFX is an option any more is it? Without a functional chilipeppr the G2 efforts seem wasted, unless there are other programs that interface to G2? I’m unaware of any, but I do know I am dead in the water for now.