Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
communication [2017/01/25 22:14]
arthur
communication [2018/11/12 18:44] (current)
146.199.159.58
Line 2: Line 2:
  
 For a list of communication modules and documentation on their use and configuration,​ please look at the list on the [[http://​smoothieware.org/​|homepage]]. For a list of communication modules and documentation on their use and configuration,​ please look at the list on the [[http://​smoothieware.org/​|homepage]].
 +
 +Developers need to be aware that smoothie uses the "//​standard//"​ reprap "​ping-pong"​ protocol. This means that you **MUST** wait for ok to be sent before sending each line of gcode. If this is not strictly adhered to then odd things may happen.
 +Developers need to be aware that receipt of ok means the line was received but it **DOES NOT** mean the line has been executed or even planned. In order to get decent planning the planning buffer needs to be filled so it can plan ahead, so ok does not wait for each line to be actually executed. For efficiency purposes G1 commands send ok immediately on receipt before they are even put in the planning queue. Whereas most other G codes will only send OK when they have been entered into the buffer. If the buffer is full then ok will not be sent until there is room.
 +If you need to know when a gcode has actually been executed, then you would send a M400 which does not send ok until the queue is empty and the last g code had finished moving.
 +
 +In addition if the planning queue is empty a gcode will not be executed immediately as it will try to wait a short amount of time to allow the buffer to fill up before executing the gcodes. However there is a special jog command ''​$J''​ which bypasses this delay and executes its move immediately,​ this is useful for pendants etc.